From 042aa94936c9114f0a0fd05fb0a91df8f5565ecd Mon Sep 17 00:00:00 2001 From: Shin'ya Ueoka Date: Sun, 15 Oct 2017 07:37:42 +0900 Subject: [PATCH] console only top window --- src/content/index.js | 52 ++++++++++++++++++++++++++++++++------------ 1 file changed, 38 insertions(+), 14 deletions(-) diff --git a/src/content/index.js b/src/content/index.js index 65be89f..4d1658e 100644 --- a/src/content/index.js +++ b/src/content/index.js @@ -28,8 +28,6 @@ store.subscribe(() => { } }); -consoleFrames.initialize(window.document); - const reloadSettings = () => { return browser.runtime.sendMessage({ type: messages.SETTINGS_QUERY, @@ -38,17 +36,43 @@ const reloadSettings = () => { }); }; -browser.runtime.onMessage.addListener((action) => { - switch (action.type) { - case messages.CONSOLE_HIDE_COMMAND: - window.focus(); - consoleFrames.blur(window.document); - return Promise.resolve(); - case messages.SETTINGS_CHANGED: - return reloadSettings(); - default: - return Promise.resolve(); - } -}); +// TODO: the followin methods should be implemented in each top component and +// frame component +const initTopComponents = () => { + consoleFrames.initialize(window.document); + + browser.runtime.onMessage.addListener((action) => { + switch (action.type) { + case messages.CONSOLE_HIDE_COMMAND: + window.focus(); + consoleFrames.blur(window.document); + return Promise.resolve(); + case messages.SETTINGS_CHANGED: + return reloadSettings(); + default: + return Promise.resolve(); + } + }); +}; + +const initFrameConponents = () => { + browser.runtime.onMessage.addListener((action) => { + switch (action.type) { + case messages.CONSOLE_HIDE_COMMAND: + window.focus(); + return Promise.resolve(); + case messages.SETTINGS_CHANGED: + return reloadSettings(); + default: + return Promise.resolve(); + } + }); +}; + +if (window.self === window.top) { + initTopComponents(); +} else { + initFrameConponents(); +} reloadSettings();