diff options
-rw-r--r-- | src/components/background.js | 20 | ||||
-rw-r--r-- | src/content/index.js | 4 | ||||
-rw-r--r-- | src/content/messages.js | 1 |
3 files changed, 25 insertions, 0 deletions
diff --git a/src/components/background.js b/src/components/background.js index 487e3af..de44dae 100644 --- a/src/components/background.js +++ b/src/components/background.js @@ -19,6 +19,8 @@ export default class BackgroundComponent { }); } }); + browser.tabs.onUpdated.addListener(this.onTabUpdated.bind(this)); + browser.tabs.onActivated.addListener(this.onTabActivated.bind(this)); } update() { @@ -62,4 +64,22 @@ export default class BackgroundComponent { this.store.dispatch(settingsActions.load()); } } + + onTabActivated(info) { + this.syncSettings(info.tabId); + } + + onTabUpdated(id, info) { + if (info.url) { + this.syncSettings(id); + } + } + + syncSettings(id) { + let { settings } = this.store.getState().setting; + return browser.tabs.sendMessage(id, { + type: messages.CONTENT_SET_SETTINGS, + settings, + }); + } } diff --git a/src/content/index.js b/src/content/index.js index b29118d..cd1a0af 100644 --- a/src/content/index.js +++ b/src/content/index.js @@ -2,6 +2,7 @@ import './console-frame.scss'; import * as consoleFrames from './console-frames'; import * as scrolls from 'content/scrolls'; import * as navigates from 'content/navigates'; +import * as settingActions from 'actions/setting'; import * as followActions from 'actions/follow'; import { createStore } from 'store'; import ContentInputComponent from 'components/content-input'; @@ -64,6 +65,9 @@ browser.runtime.onMessage.addListener((action) => { case messages.CONTENT_OPERATION: execOperation(action.operation); return Promise.resolve(); + case messages.CONTENT_SET_SETTINGS: + store.dispatch(settingActions.set(action.settings)); + return Promise.resolve(); default: return Promise.resolve(); } diff --git a/src/content/messages.js b/src/content/messages.js index 0e66fa0..8d416c7 100644 --- a/src/content/messages.js +++ b/src/content/messages.js @@ -1,5 +1,6 @@ export default { CONTENT_OPERATION: 'content.operation', + CONTENT_SET_SETTINGS: 'content.set.settings', CONSOLE_BLURRED: 'console.blured', CONSOLE_ENTERED: 'console.entered', |