diff options
| author | mrmr1993 | 2015-04-27 19:29:39 +0100 | 
|---|---|---|
| committer | mrmr1993 | 2015-05-29 12:06:00 +0100 | 
| commit | d7a0daf5fa2c0a3302a8fc6b9fa0744cfa17ab42 (patch) | |
| tree | 0079be406f4d8a116f4b7b5a6663290d3e005c60 | |
| parent | 31873e39772c538cab418d03c244b4cac1addba0 (diff) | |
| download | vimium-d7a0daf5fa2c0a3302a8fc6b9fa0744cfa17ab42.tar.bz2 | |
Move registration of postUpdateHooks to the corresponding source files
This completely decouples settings.coffee from all other background
source files, so that it can (eventually) also be used in the frontend.
| -rw-r--r-- | background_scripts/commands.coffee | 6 | ||||
| -rw-r--r-- | background_scripts/exclusions.coffee | 4 | ||||
| -rw-r--r-- | background_scripts/settings.coffee | 13 | ||||
| -rw-r--r-- | manifest.json | 2 | ||||
| -rw-r--r-- | tests/unit_tests/commands_test.coffee | 1 | 
5 files changed, 15 insertions, 11 deletions
| diff --git a/background_scripts/commands.coffee b/background_scripts/commands.coffee index abfbd9e2..5857665c 100644 --- a/background_scripts/commands.coffee +++ b/background_scripts/commands.coffee @@ -359,5 +359,11 @@ commandDescriptions =  Commands.init() +# Register postUpdateHook for keyMappings setting. +Settings.postUpdateHooks["keyMappings"] = (value) -> +  Commands.clearKeyMappingsAndSetDefaults() +  Commands.parseCustomKeyMappings value +  refreshCompletionKeysAfterMappingSave() +  root = exports ? window  root.Commands = Commands diff --git a/background_scripts/exclusions.coffee b/background_scripts/exclusions.coffee index 5ec76e2a..21342d61 100644 --- a/background_scripts/exclusions.coffee +++ b/background_scripts/exclusions.coffee @@ -73,3 +73,7 @@ if not Settings.has("exclusionRules") and Settings.has("excludedUrls")    # We'll keep a backup of the "excludedUrls" setting, just in case.    Settings.set("excludedUrlsBackup", Settings.get("excludedUrls")) if not Settings.has("excludedUrlsBackup")    Settings.clear("excludedUrls") + +# Register postUpdateHook for exclusionRules setting. +Settings.postUpdateHooks["exclusionRules"] = (value) -> +  Exclusions.postUpdateHook value diff --git a/background_scripts/settings.coffee b/background_scripts/settings.coffee index 44676ad7..6b33d239 100644 --- a/background_scripts/settings.coffee +++ b/background_scripts/settings.coffee @@ -75,17 +75,10 @@ root.Settings = Settings =    has: (key) -> key of localStorage -  # For settings which require action when their value changes, add hooks here called from -  # options/options.coffee (when the options page is saved), and from background_scripts/sync.coffee (when an +  # For settings which require action when their value changes, add hooks to this object, to be called from +  # options/options.coffee (when the options page is saved), and by Settings.storeAndPropagate (when an    # update propagates from chrome.storage.sync). -  postUpdateHooks: -    keyMappings: (value) -> -      root.Commands.clearKeyMappingsAndSetDefaults() -      root.Commands.parseCustomKeyMappings value -      root.refreshCompletionKeysAfterMappingSave() - -    exclusionRules: (value) -> -      root.Exclusions.postUpdateHook value +  postUpdateHooks: {}    # postUpdateHooks convenience wrapper    performPostUpdateHook: (key, value) -> diff --git a/manifest.json b/manifest.json index 5b65b6fd..390b8c8c 100644 --- a/manifest.json +++ b/manifest.json @@ -9,9 +9,9 @@    "background": {      "scripts": [        "lib/utils.js", +      "background_scripts/settings.js",        "background_scripts/commands.js",        "lib/clipboard.js", -      "background_scripts/settings.js",        "background_scripts/exclusions.js",        "background_scripts/completion_engines.js",        "background_scripts/completion_search.js", diff --git a/tests/unit_tests/commands_test.coffee b/tests/unit_tests/commands_test.coffee index daaef016..e55dc0f2 100644 --- a/tests/unit_tests/commands_test.coffee +++ b/tests/unit_tests/commands_test.coffee @@ -1,5 +1,6 @@  require "./test_helper.js"  extend global, require "./test_chrome_stubs.js" +global.Settings = {postUpdateHooks: {}}  {Commands} = require "../../background_scripts/commands.js"  context "Key mappings", | 
