aboutsummaryrefslogtreecommitdiffstats
path: root/vimiumFrontend.js
diff options
context:
space:
mode:
authorJez Ng2012-01-25 12:53:19 -0500
committerJez Ng2012-01-26 02:48:00 -0500
commit8e746c4125066e7eda03126f0fd86c421eacfc44 (patch)
treef0bc75b677e882f6c4c33f05befb9639da5f9234 /vimiumFrontend.js
parentb8789c56b0ee96ee1eca75291028017c4f9d89cc (diff)
downloadvimium-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.js20
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();