diff options
| author | Jez Ng | 2012-01-25 12:53:19 -0500 |
|---|---|---|
| committer | Jez Ng | 2012-01-26 02:48:00 -0500 |
| commit | 8e746c4125066e7eda03126f0fd86c421eacfc44 (patch) | |
| tree | f0bc75b677e882f6c4c33f05befb9639da5f9234 /vimiumFrontend.js | |
| parent | b8789c56b0ee96ee1eca75291028017c4f9d89cc (diff) | |
| download | vimium-8e746c4125066e7eda03126f0fd86c421eacfc44.tar.bz2 | |
Re-enable Vimium on the options page.
The options page now modifies localStorage using the same settings
interface as the content scripts.
Diffstat (limited to 'vimiumFrontend.js')
| -rw-r--r-- | vimiumFrontend.js | 20 |
1 files changed, 15 insertions, 5 deletions
diff --git a/vimiumFrontend.js b/vimiumFrontend.js index a175f0eb..3d1c9c87 100644 --- a/vimiumFrontend.js +++ b/vimiumFrontend.js @@ -47,6 +47,8 @@ var settings = { loadedValues: 0, valuesToLoad: ["scrollStepSize", "linkHintCharacters", "filterLinkHints", "previousPatterns", "nextPatterns", "findModeRawQuery"], + isLoaded: false, + eventListeners: {}, init: function () { this.port = chrome.extension.connect({ name: "settings" }); @@ -77,13 +79,20 @@ var settings = { settings.values[args.key] = args.value; // since load() can be called more than once, loadedValues can be greater than valuesToLoad, but we test // for equality so initializeOnReady only runs once - if (++settings.loadedValues == settings.valuesToLoad.length) - settings.initializeOnReady(); + if (++settings.loadedValues == settings.valuesToLoad.length) { + settings.isLoaded = true; + var listener; + while (listener = settings.eventListeners["load"].pop()) + listener(); + } + }, + + addEventListener: function(eventName, callback) { + if (!(eventName in this.eventListeners)) + this.eventListeners[eventName] = []; + this.eventListeners[eventName].push(callback); }, - initializeOnReady: function () { - linkHints.init(); - } }; /* @@ -98,6 +107,7 @@ var googleRegex = /:\/\/[^/]*google[^/]+/; * Complete initialization work that sould be done prior to DOMReady. */ function initializePreDomReady() { + settings.addEventListener("load", linkHints.init.bind(linkHints)); settings.load(); checkIfEnabledForUrl(); |
