diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/content/index.js | 52 |
1 files 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(); |