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(); | 
