From 98656874f14eb309513ae6f2cb4a25d4bc23e328 Mon Sep 17 00:00:00 2001 From: hensm Date: Tue, 2 Jul 2019 05:08:49 +0100 Subject: [PATCH] Fix webcomponents polyfill loading --- ext/src/main.ts | 9 +++++++++ ext/src/shim/content.ts | 5 +---- ext/src/shim/contentBridge.ts | 13 +++++++++++++ ext/src/shim/index.ts | 6 ------ 4 files changed, 23 insertions(+), 10 deletions(-) diff --git a/ext/src/main.ts b/ext/src/main.ts index f9c8172..078a39a 100755 --- a/ext/src/main.ts +++ b/ext/src/main.ts @@ -257,6 +257,15 @@ browser.menus.onShown.addListener(info => { */ browser.webRequest.onBeforeRequest.addListener( async details => { + await browser.tabs.executeScript(details.tabId, { + code: ` + window.isFramework = ${ + details.url === CAST_FRAMEWORK_LOADER_SCRIPT_URL}; + ` + , frameId: details.frameId + , runAt: "document_start" + }); + await browser.tabs.executeScript(details.tabId, { file: "shim/contentBridge.js" , frameId: details.frameId diff --git a/ext/src/shim/content.ts b/ext/src/shim/content.ts index 2de200f..d630174 100644 --- a/ext/src/shim/content.ts +++ b/ext/src/shim/content.ts @@ -4,10 +4,7 @@ import { CAST_LOADER_SCRIPT_URL , CAST_SCRIPT_URLS } from "../endpoints"; -const _window = (window.wrappedJSObject as any); - -_window.chrome = cloneInto({}, window); -_window.navigator.presentation = cloneInto({}, window); +(window.wrappedJSObject as any).chrome = cloneInto({}, window); /** diff --git a/ext/src/shim/contentBridge.ts b/ext/src/shim/contentBridge.ts index fc1ea08..50c7bc1 100644 --- a/ext/src/shim/contentBridge.ts +++ b/ext/src/shim/contentBridge.ts @@ -1,6 +1,19 @@ "use strict"; import { onMessageResponse, sendMessage } from "./eventMessageChannel"; +import { loadScript } from "../lib/utils"; + + +const { isFramework } + : { isFramework: boolean } = (window as any); + +/** + * Framework API library requires webcomponents for the cast + * button custom element (). + */ +if (isFramework) { + loadScript(browser.runtime.getURL("vendor/webcomponents-lite.js")); +} // Message port to background script diff --git a/ext/src/shim/index.ts b/ext/src/shim/index.ts index 9ce90d1..c7aab2c 100755 --- a/ext/src/shim/index.ts +++ b/ext/src/shim/index.ts @@ -47,12 +47,6 @@ if (document.currentScript) { isFramework = true; - /** - * Framework API library requires webcomponents for the cast - * button custom element (). - */ - loadScript(browser.runtime.getURL("vendor/webcomponents-lite.js")); - const script = loadScript(CAST_FRAMEWORK_SCRIPT_URL); script.addEventListener("load", ev => { callPageReadyFunction();