From 30641f1b75a2a21b3bc3b3605bae634be7e809c9 Mon Sep 17 00:00:00 2001 From: Shin'ya Ueoka Date: Sat, 7 Oct 2017 22:31:37 +0900 Subject: load settings from content --- src/components/background.js | 27 ++++++++++----------------- 1 file changed, 10 insertions(+), 17 deletions(-) (limited to 'src/components/background.js') diff --git a/src/components/background.js b/src/components/background.js index 79a7a6a..4961d85 100644 --- a/src/components/background.js +++ b/src/components/background.js @@ -19,8 +19,6 @@ export default class BackgroundComponent { }); } }); - browser.tabs.onUpdated.addListener(this.onTabUpdated.bind(this)); - browser.tabs.onActivated.addListener(this.onTabActivated.bind(this)); } update() { @@ -59,28 +57,23 @@ export default class BackgroundComponent { text: e.message, }); }); + case messages.SETTINGS_QUERY: + return Promise.resolve(this.store.getState().setting.settings); case messages.CONSOLE_QUERY_COMPLETIONS: return commands.complete(message.text, this.settings); case messages.SETTINGS_RELOAD: this.store.dispatch(settingsActions.load()); + return this.broadcastSettingsChanged(); } } - onTabActivated(info) { - this.syncSettings(info.tabId); - } - - onTabUpdated(id, info) { - if (info.status === 'complete') { - this.syncSettings(id); - } - } - - syncSettings(id) { - let { settings } = this.store.getState().setting; - return browser.tabs.sendMessage(id, { - type: messages.CONTENT_SET_SETTINGS, - settings, + broadcastSettingsChanged() { + return browser.tabs.query({}).then((tabs) => { + for (let tab of tabs) { + browser.tabs.sendMessage(tab.id, { + type: messages.SETTINGS_CHANGED, + }); + } }); } } -- cgit v1.2.3