aboutsummaryrefslogtreecommitdiffstats
path: root/content_scripts/vimium_frontend.coffee
diff options
context:
space:
mode:
Diffstat (limited to 'content_scripts/vimium_frontend.coffee')
-rw-r--r--content_scripts/vimium_frontend.coffee42
1 files changed, 23 insertions, 19 deletions
diff --git a/content_scripts/vimium_frontend.coffee b/content_scripts/vimium_frontend.coffee
index 7b99287e..862118bc 100644
--- a/content_scripts/vimium_frontend.coffee
+++ b/content_scripts/vimium_frontend.coffee
@@ -175,12 +175,13 @@ initializePreDomReady = ->
currentKeyQueue: (request) ->
keyQueue = request.keyQueue
handlerStack.bubbleEvent "registerKeyQueue", { keyQueue: keyQueue }
+ updateEnabledForUrlState: updateEnabledForUrlState
chrome.runtime.onMessage.addListener (request, sender, sendResponse) ->
# In the options page, we will receive requests from both content and background scripts. ignore those
# from the former.
return if sender.tab and not sender.tab.url.startsWith 'chrome-extension://'
- return unless isEnabledForUrl
+ return unless isEnabledForUrl or request.name in ["updateEnabledForUrlState"]
# These requests are delivered to the options page, but there are no handlers there.
return if request.handler in [ "registerFrame", "frameFocused", "unregisterFrame" ]
sendResponse requestHandlers[request.name](request, sender)
@@ -550,24 +551,27 @@ onKeyup = (event) ->
checkIfEnabledForUrl = ->
url = window.location.toString()
- chrome.runtime.sendMessage { handler: "isEnabledForUrl", url: url }, (response) ->
- {isEnabledForUrl, passKeys} = response
- if isEnabledForUrl
- initializeWhenEnabled()
- else if HUD.isReady()
- # Quickly hide any HUD we might already be showing, e.g. if we entered insert mode on page load.
- HUD.hide()
- handlerStack.bubbleEvent "registerStateChange",
- enabled: isEnabledForUrl
- passKeys: passKeys
- # Update the page icon, if necessary.
- if document.hasFocus()
- chrome.runtime.sendMessage
- handler: "setIcon"
- icon:
- if isEnabledForUrl and not passKeys then "enabled"
- else if isEnabledForUrl then "partial"
- else "disabled"
+ chrome.runtime.sendMessage { handler: "isEnabledForUrl", url: url }, updateEnabledForUrlState
+
+updateEnabledForUrlState = (response) ->
+ {isEnabledForUrl, passKeys} = response
+ if isEnabledForUrl
+ initializeWhenEnabled()
+ else if HUD.isReady()
+ # Quickly hide any HUD we might already be showing, e.g. if we entered insert mode on page load.
+ HUD.hide()
+ handlerStack.bubbleEvent "registerStateChange",
+ enabled: isEnabledForUrl
+ passKeys: passKeys
+ # Update the page icon, if necessary.
+ if document.hasFocus()
+ chrome.runtime.sendMessage
+ handler: "setIcon"
+ icon:
+ if isEnabledForUrl and not passKeys then "enabled"
+ else if isEnabledForUrl then "partial"
+ else "disabled"
+ null
# Exported to window, but only for DOM tests.