Fix webcomponents polyfill loading

This commit is contained in:
hensm
2019-07-02 05:08:49 +01:00
parent 5fd0649200
commit 98656874f1
4 changed files with 23 additions and 10 deletions

View File

@@ -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

View File

@@ -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);
/**

View File

@@ -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 (<google-cast-launcher>).
*/
if (isFramework) {
loadScript(browser.runtime.getURL("vendor/webcomponents-lite.js"));
}
// Message port to background script

View File

@@ -47,12 +47,6 @@ if (document.currentScript) {
isFramework = true;
/**
* Framework API library requires webcomponents for the cast
* button custom element (<google-cast-launcher>).
*/
loadScript(browser.runtime.getURL("vendor/webcomponents-lite.js"));
const script = loadScript(CAST_FRAMEWORK_SCRIPT_URL);
script.addEventListener("load", ev => {
callPageReadyFunction();