From 70ab186541ef19592fdcafc859227b6753451ffa Mon Sep 17 00:00:00 2001 From: Shin'ya Ueoka Date: Sat, 13 Apr 2019 09:52:04 +0900 Subject: [PATCH] Relaod settings on local storage changed instead of message --- src/background/index.js | 11 ++++++++++- .../infrastructures/ContentMessageListener.js | 6 ------ src/settings/actions/setting.js | 4 ---- src/shared/messages.js | 1 - 4 files changed, 10 insertions(+), 12 deletions(-) diff --git a/src/background/index.js b/src/background/index.js index 29aa92b..f9efd4d 100644 --- a/src/background/index.js +++ b/src/background/index.js @@ -2,7 +2,8 @@ import ContentMessageListener from './infrastructures/ContentMessageListener'; import SettingController from './controllers/SettingController'; import VersionController from './controllers/VersionController'; -new SettingController().reload(); +let settingController = new SettingController(); +settingController.reload(); browser.runtime.onInstalled.addListener((details) => { if (details.reason !== 'install' && details.reason !== 'update') { @@ -12,3 +13,11 @@ browser.runtime.onInstalled.addListener((details) => { }); new ContentMessageListener().run(); +browser.storage.onChanged.addListener((changes, area) => { + if (area !== 'local') { + return; + } + if (changes.settings) { + settingController.reload(); + } +}); diff --git a/src/background/infrastructures/ContentMessageListener.js b/src/background/infrastructures/ContentMessageListener.js index 1179a8c..5b0f62e 100644 --- a/src/background/infrastructures/ContentMessageListener.js +++ b/src/background/infrastructures/ContentMessageListener.js @@ -51,8 +51,6 @@ export default class ContentMessageListener { return this.onConsoleEnterCommand(message.text); case messages.SETTINGS_QUERY: return this.onSettingsQuery(); - case messages.SETTINGS_RELOAD: - return this.onSettingsReload(); case messages.FIND_GET_KEYWORD: return this.onFindGetKeyword(); case messages.FIND_SET_KEYWORD: @@ -87,10 +85,6 @@ export default class ContentMessageListener { return this.settingController.getSetting(); } - onSettingsReload() { - return this.settingController.reload(); - } - onFindGetKeyword() { return this.findController.getKeyword(); } diff --git a/src/settings/actions/setting.js b/src/settings/actions/setting.js index 3bb24be..0277159 100644 --- a/src/settings/actions/setting.js +++ b/src/settings/actions/setting.js @@ -1,5 +1,4 @@ import actions from 'settings/actions'; -import messages from 'shared/messages'; import * as validator from 'shared/settings/validator'; import KeymapsForm from '../components/form/keymaps-form'; import * as settingsValues from 'shared/settings/values'; @@ -24,9 +23,6 @@ const save = async(settings) => { }; } await settingsStorage.save(settings); - await browser.runtime.sendMessage({ - type: messages.SETTINGS_RELOAD - }); return set(settings); }; diff --git a/src/shared/messages.js b/src/shared/messages.js index e86600e..ddf3368 100644 --- a/src/shared/messages.js +++ b/src/shared/messages.js @@ -59,7 +59,6 @@ export default { OPEN_URL: 'open.url', - SETTINGS_RELOAD: 'settings.reload', SETTINGS_CHANGED: 'settings.changed', SETTINGS_QUERY: 'settings.query',