aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStephen Blott2015-04-21 13:51:24 +0100
committerStephen Blott2015-04-21 13:52:50 +0100
commit85e9cdc865604980dcfe3eed364d621ff8075172 (patch)
tree0e818b0b55a878b40c022e0b49b401884bc14581
parentc64cc382aec1ef500d50417b5214854e28e4b952 (diff)
downloadvimium-85e9cdc865604980dcfe3eed364d621ff8075172.tar.bz2
mainFrame; simplify logic.
-rw-r--r--content_scripts/vimium_frontend.coffee11
1 files changed, 8 insertions, 3 deletions
diff --git a/content_scripts/vimium_frontend.coffee b/content_scripts/vimium_frontend.coffee
index 27d864fb..fde3d167 100644
--- a/content_scripts/vimium_frontend.coffee
+++ b/content_scripts/vimium_frontend.coffee
@@ -167,7 +167,7 @@ initializePreDomReady = ->
requestHandlers =
showHUDforDuration: (request) -> HUD.showForDuration request.text, request.duration
toggleHelpDialog: (request) -> toggleHelpDialog(request.dialogHtml, request.frameId)
- focusFrame: (request) -> if (request.frameId in [ frameId, 0 ]) then focusThisFrame(request.highlight)
+ focusFrame: (request) -> if (frameId == request.frameId) then focusThisFrame(request.highlight)
refreshCompletionKeys: refreshCompletionKeys
getScrollPosition: -> scrollX: window.scrollX, scrollY: window.scrollY
setScrollPosition: (request) -> setScrollPosition request.scrollX, request.scrollY
@@ -180,10 +180,15 @@ initializePreDomReady = ->
# 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 or (request.frameId == 0 and request.name in [ "focusFrame" ])
# 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)
+ shouldHandleRequest = isEnabledForUrl
+ # Requests with a frameId of zero are sent to and only received by the tab's main frame. We *always*
+ # handle the listed requests in that frame (even if Vimium is otherwise disabled).
+ if request.frameId == 0 and request.name in [ "focusFrame" ]
+ request.frameId = frameId
+ shouldHandleRequest = true
+ sendResponse requestHandlers[request.name](request, sender) if shouldHandleRequest
# Ensure the sendResponse callback is freed.
false