|
|
@@ -21,7 +21,7 @@
|
|
|
* Source.
|
|
|
*/
|
|
|
|
|
|
-/* global window, top, document, addEventListener, MessageChannel, browser, setTimeout */
|
|
|
+/* global window */
|
|
|
|
|
|
this.singlefile.lib.frameTree.content.frames = this.singlefile.lib.frameTree.content.frames || (() => {
|
|
|
|
|
|
@@ -37,14 +37,21 @@ this.singlefile.lib.frameTree.content.frames = this.singlefile.lib.frameTree.con
|
|
|
const TIMEOUT_INIT_REQUEST_MESSAGE = 750;
|
|
|
const TOP_WINDOW_ID = "0";
|
|
|
const WINDOW_ID_SEPARATOR = ".";
|
|
|
- const TOP_WINDOW = window == top;
|
|
|
+ const TOP_WINDOW = window == window.top;
|
|
|
+
|
|
|
+ const addEventListener = window.addEventListener;
|
|
|
+ const top = window.top;
|
|
|
+ const MessageChannel = window.MessageChannel;
|
|
|
+ const document = window.document;
|
|
|
+ const browser = window.browser;
|
|
|
+ const setTimeout = window.setTimeout;
|
|
|
|
|
|
const sessions = new Map();
|
|
|
let windowId;
|
|
|
|
|
|
if (TOP_WINDOW) {
|
|
|
windowId = TOP_WINDOW_ID;
|
|
|
- if (this.browser && browser.runtime && browser.runtime.onMessage && browser.runtime.onMessage.addListener) {
|
|
|
+ if (browser && browser.runtime && browser.runtime.onMessage && browser.runtime.onMessage.addListener) {
|
|
|
browser.runtime.onMessage.addListener(message => {
|
|
|
if (message.method == INIT_RESPONSE_MESSAGE) {
|
|
|
initResponse(message);
|
|
|
@@ -66,7 +73,7 @@ this.singlefile.lib.frameTree.content.frames = this.singlefile.lib.frameTree.con
|
|
|
initRequest(message);
|
|
|
} else if (message.method == CLEANUP_REQUEST_MESSAGE) {
|
|
|
cleanupRequest(message);
|
|
|
- } else if ((!this.browser || !browser.runtime) && message.method == INIT_RESPONSE_MESSAGE) {
|
|
|
+ } else if ((!browser || !browser.runtime) && message.method == INIT_RESPONSE_MESSAGE) {
|
|
|
const port = event.ports[0];
|
|
|
port.onmessage = event => initResponse(event.data);
|
|
|
}
|
|
|
@@ -244,7 +251,7 @@ this.singlefile.lib.frameTree.content.frames = this.singlefile.lib.frameTree.con
|
|
|
}
|
|
|
|
|
|
function sendMessage(targetWindow, message, useChannel) {
|
|
|
- if (targetWindow == top && this.browser && browser.runtime && browser.runtime.sendMessage) {
|
|
|
+ if (targetWindow == top && browser && browser.runtime && browser.runtime.sendMessage) {
|
|
|
browser.runtime.sendMessage(message);
|
|
|
} else {
|
|
|
if (useChannel) {
|