From 623befe1a878d04a5d3b5ce57358ab81ee4faac4 Mon Sep 17 00:00:00 2001 From: Stephen Blott Date: Sun, 2 Nov 2014 12:36:00 +0000 Subject: Don't skip installing listeners. Fix listener installation bug. To see bug, do: - open vimium options page - use 'b' to select and go to a bookmark - use to return to options page - vimium key bindings are now *not* installed Bug was introduced in 28e9c8374bfc7a4fd479dbb958a4a87331fb0857. --- content_scripts/vimium_frontend.coffee | 16 ++++------------ 1 file changed, 4 insertions(+), 12 deletions(-) diff --git a/content_scripts/vimium_frontend.coffee b/content_scripts/vimium_frontend.coffee index 8f4c0f2a..118f985e 100644 --- a/content_scripts/vimium_frontend.coffee +++ b/content_scripts/vimium_frontend.coffee @@ -135,29 +135,21 @@ initializePreDomReady = -> # Ensure the sendResponse callback is freed. false - installEventListeners() - # Wrapper to install event listeners. Syntactic sugar. installListener = (element, event, callback) -> element.addEventListener(event, -> if isEnabledForUrl then callback.apply(this, arguments) else true , true) -# -# This is called once the background page has told us that Vimium should be enabled for the current URL. -# We enable/disable Vimium by toggling isEnabledForUrl. -# -initializeWhenEnabled = (newPassKeys) -> - isEnabledForUrl = true - passKeys = newPassKeys - # # Installing or uninstalling listeners is error prone. Instead we elect to check isEnabledForUrl each time so # we know whether the listener should run or not. # Run this as early as possible, so the page can't register any event handlers before us. # installedListeners = false -installEventListeners = -> +initializeWhenEnabled = (newPassKeys) -> + isEnabledForUrl = true + passKeys = newPassKeys if (!installedListeners) # Key event handlers fire on window before they do on document. Prefer window for key events so the page # can't set handlers to grab the keys before us. @@ -171,9 +163,9 @@ installEventListeners = -> installedListeners = true setState = (request) -> + initializeWhenEnabled(request.passKeys) if request.enabled isEnabledForUrl = request.enabled passKeys = request.passKeys - initializeWhenEnabled(passKeys) if isEnabledForUrl # # The backend needs to know which frame has focus. -- cgit v1.2.3 From 7e51e97faa4bc407ec411dd47572b1e36ad2be1e Mon Sep 17 00:00:00 2001 From: Stephen Blott Date: Sun, 2 Nov 2014 12:53:15 +0000 Subject: Fix refresh open tabs and state. Fixes refresh of state bug introduced in 046650ba22ac12ebb18d1eb109fe694016eb77c0. --- background_scripts/main.coffee | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/background_scripts/main.coffee b/background_scripts/main.coffee index 898f46f1..4f2edfc5 100644 --- a/background_scripts/main.coffee +++ b/background_scripts/main.coffee @@ -393,10 +393,9 @@ chrome.tabs.onUpdated.addListener (tabId, changeInfo, tab) -> allFrames: true code: Settings.get("userDefinedLinkHintCss") runAt: "document_start" - chrome.tabs.insertCSS tabId, cssConf, -> - if not chrome.runtime.lastError - updateOpenTabs(tab) - updateActiveState(tabId) + chrome.tabs.insertCSS tabId, cssConf, -> chrome.runtime.lastError + updateOpenTabs(tab) + updateActiveState(tabId) chrome.tabs.onAttached.addListener (tabId, attachedInfo) -> # We should update all the tabs in the old window and the new window. -- cgit v1.2.3