aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/components/background.js20
-rw-r--r--src/content/index.js4
-rw-r--r--src/content/messages.js1
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',