Skip to content

Commit 2ced2d2

Browse files
danielhjacobsHerschel
authored andcommitted
web: Don't polyfill with self-hosted Ruffle while extension is loading
1 parent f6a1392 commit 2ced2d2

File tree

3 files changed

+19
-3
lines changed

3 files changed

+19
-3
lines changed

web/packages/core/src/plugin-polyfill.ts

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -150,6 +150,15 @@ export const FLASH_PLUGIN = new RufflePlugin(
150150
"ruffle.js"
151151
);
152152

153+
/**
154+
* A fake plugin designed to allow early detection of if the Ruffle extension is in use.
155+
*/
156+
export const RUFFLE_EXTENSION = new RufflePlugin(
157+
"Ruffle Extension",
158+
"Ruffle Extension",
159+
"ruffle.js"
160+
);
161+
153162
FLASH_PLUGIN.install({
154163
type: FUTURESPLASH_MIMETYPE,
155164
description: "Shockwave Flash",

web/packages/core/src/polyfills.ts

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -199,7 +199,12 @@ export function pluginPolyfill(): void {
199199
*/
200200
export function polyfill(isExt: boolean): void {
201201
isExtension = isExt;
202-
polyfillFlashInstances();
203-
polyfillFrames();
204-
initMutationObserver();
202+
const usingExtension =
203+
navigator.plugins.namedItem("Ruffle Extension")?.filename ===
204+
"ruffle.js";
205+
if (isExtension || !usingExtension) {
206+
polyfillFlashInstances();
207+
polyfillFrames();
208+
initMutationObserver();
209+
}
205210
}

web/packages/extension/src/plugin-polyfill.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@
33
import {
44
installPlugin,
55
FLASH_PLUGIN,
6+
RUFFLE_EXTENSION,
67
} from "ruffle-core/dist/plugin-polyfill.js";
78

89
installPlugin(FLASH_PLUGIN);
10+
installPlugin(RUFFLE_EXTENSION);

0 commit comments

Comments
 (0)