From 56cece3336b215882572b1fcf038cb4892cbaf23 Mon Sep 17 00:00:00 2001 From: relrelb Date: Tue, 9 Mar 2021 22:33:20 +0200 Subject: [PATCH] web: Use publicPath() instead of ruffleRuntimePath Similarly to how selfhosted currently does. --- web/packages/core/src/globals.d.ts | 2 -- web/packages/core/src/load-ruffle.ts | 37 +++++--------------------- web/packages/core/src/ruffle-player.ts | 2 +- web/packages/extension/.eslintrc.json | 1 + web/packages/extension/js/index.js | 3 ++- web/packages/extension/js/lv0.js | 4 +-- 6 files changed, 12 insertions(+), 37 deletions(-) diff --git a/web/packages/core/src/globals.d.ts b/web/packages/core/src/globals.d.ts index e70fb0a5c..040edfc33 100644 --- a/web/packages/core/src/globals.d.ts +++ b/web/packages/core/src/globals.d.ts @@ -1,9 +1,7 @@ /* eslint @typescript-eslint/naming-convention:off */ declare let __webpack_public_path__: string; -declare let ruffleRuntimePath: string; interface Error { - ruffleIsExtension?: boolean; ruffleIndexError?: number; } diff --git a/web/packages/core/src/load-ruffle.ts b/web/packages/core/src/load-ruffle.ts index c89706bb2..3c895a243 100644 --- a/web/packages/core/src/load-ruffle.ts +++ b/web/packages/core/src/load-ruffle.ts @@ -22,36 +22,13 @@ async function fetchRuffle(): Promise<{ new (...args: any[]): Ruffle }> { // libraries, if needed. setPolyfillsOnLoad(); - let isExtension = true; - - try { - // If ruffleRuntimePath is defined then we are executing inside the extension - // closure. In that case, we configure our local Webpack instance. - __webpack_public_path__ = ruffleRuntimePath + "dist/"; - } catch (e) { - // Checking an undefined closure variable usually throws ReferenceError, - // so we need to catch it here and continue onward. - if (!(e instanceof ReferenceError)) { - throw e; - } - isExtension = false; - } - - // We currently assume that if we are not executing inside the extension, - // then we can use webpack to get Ruffle. - - try { - // wasm files are set to use file-loader, - // so this package will resolve to the URL of the wasm file. - const ruffleWasm = await import( - /* webpackMode: "eager" */ - "../pkg/ruffle_web_bg.wasm" - ); - await init(ruffleWasm.default); - } catch (e) { - e.ruffleIsExtension = isExtension; - throw e; - } + // wasm files are set to use file-loader, + // so this package will resolve to the URL of the wasm file. + const ruffleWasm = await import( + /* webpackMode: "eager" */ + "../pkg/ruffle_web_bg.wasm" + ); + await init(ruffleWasm.default); return Ruffle; } diff --git a/web/packages/core/src/ruffle-player.ts b/web/packages/core/src/ruffle-player.ts index 6e1bf2dec..c9513cd77 100644 --- a/web/packages/core/src/ruffle-player.ts +++ b/web/packages/core/src/ruffle-player.ts @@ -346,7 +346,7 @@ export class RufflePlayer extends HTMLElement { // Serious duck typing. In error conditions, let's not make assumptions. if (window.location.protocol === "file:") { e.ruffleIndexError = PanicError.FileProtocol; - } else if (!e.ruffleIsExtension) { + } else { e.ruffleIndexError = PanicError.WasmNotFound; const message = String(e.message).toLowerCase(); if (message.includes("mime")) { diff --git a/web/packages/extension/.eslintrc.json b/web/packages/extension/.eslintrc.json index 89d16b66b..9788925b3 100644 --- a/web/packages/extension/.eslintrc.json +++ b/web/packages/extension/.eslintrc.json @@ -4,6 +4,7 @@ "webextensions": true }, "globals": { + "__webpack_public_path__": true, "obfuscatedEventPrefix": true } } diff --git a/web/packages/extension/js/index.js b/web/packages/extension/js/index.js index c661ba5ad..95f57a159 100644 --- a/web/packages/extension/js/index.js +++ b/web/packages/extension/js/index.js @@ -1,10 +1,11 @@ -import { PublicAPI, SourceAPI } from "ruffle-core"; +import { PublicAPI, SourceAPI, publicPath } from "ruffle-core"; window.RufflePlayer = PublicAPI.negotiate( window.RufflePlayer, "extension", new SourceAPI("extension") ); +__webpack_public_path__ = publicPath(window.RufflePlayer.config, "extension"); if (obfuscatedEventPrefix) { document.addEventListener(obfuscatedEventPrefix + "_request", function (e) { diff --git a/web/packages/extension/js/lv0.js b/web/packages/extension/js/lv0.js index e0610116c..d9b7209bd 100644 --- a/web/packages/extension/js/lv0.js +++ b/web/packages/extension/js/lv0.js @@ -154,9 +154,7 @@ getSyncStorage(["ruffleEnable", "ignoreOptout"], function (data) { let ruffleSrcResp = await fetch(extPath + "dist/ruffle.js"); if (ruffleSrcResp.ok) { let ruffleSource = - '(function () { var ruffleRuntimePath = "' + - extPath + - '";\nvar obfuscatedEventPrefix = "' + + '(function () { var obfuscatedEventPrefix = "' + obfuscatedEventPrefix + '";\n' + (await ruffleSrcResp.text()) +