aboutsummaryrefslogtreecommitdiffstats
path: root/background_scripts
diff options
context:
space:
mode:
authorStephen Blott2016-03-16 15:02:25 +0000
committerStephen Blott2016-03-17 11:17:03 +0000
commitd6f8e7301ed43a64df77e9bfa0ef9dd7a263faeb (patch)
treeb7eca3d237549205db25864ab187a270d4421f7b /background_scripts
parente19ff7a58ec97de3524a6eb32d5f6e0f57696354 (diff)
downloadvimium-d6f8e7301ed43a64df77e9bfa0ef9dd7a263faeb.tar.bz2
Simplify domReady handling.
Diffstat (limited to 'background_scripts')
-rw-r--r--background_scripts/main.coffee27
1 files changed, 9 insertions, 18 deletions
diff --git a/background_scripts/main.coffee b/background_scripts/main.coffee
index 6b845ff1..25aaef7b 100644
--- a/background_scripts/main.coffee
+++ b/background_scripts/main.coffee
@@ -63,20 +63,8 @@ handleCompletions = (sender) -> (request, port) ->
completionHandlers[request.handler] completers[request.name], request, port
chrome.runtime.onConnect.addListener (port, name) ->
- sender = port.sender
- senderTabId = sender.tab?.id
- # If this is a tab we've been waiting to open, execute any "tab loaded" handlers, e.g. to restore
- # the tab's scroll position. Wait until domReady before doing this; otherwise operations like restoring
- # the scroll position will not be possible.
- if (port.name == "domReady" && senderTabId != null)
- if (tabLoadedHandlers[senderTabId])
- toCall = tabLoadedHandlers[senderTabId]
- # Delete first to be sure there's no circular events.
- delete tabLoadedHandlers[senderTabId]
- toCall.call()
-
if (portHandlers[port.name])
- port.onMessage.addListener portHandlers[port.name] sender, port
+ port.onMessage.addListener portHandlers[port.name] port.sender, port
chrome.runtime.onMessage.addListener((request, sender, sendResponse) ->
if (sendRequestHandlers[request.handler])
@@ -382,17 +370,20 @@ Frames =
# Return our onMessage handler for this port.
(request, port) =>
- response = this[request.handler] {request, tabId, frameId, port}
- port.postMessage response if response != false
+ this[request.handler] {request, tabId, frameId, port}
- isEnabledForUrl: ({request, tabId}) ->
+ isEnabledForUrl: ({request, tabId, port}) ->
urlForTab[tabId] = request.url if request.frameIsFocused
rule = Exclusions.getRule request.url
- # Send a response...
- extend request,
+ port.postMessage extend request,
isEnabledForUrl: not rule or 0 < rule.passKeys.length
passKeys: rule?.passKeys ? ""
+ domReady: ({tabId, frameId}) ->
+ if frameId == 0
+ tabLoadedHandlers[tabId]?()
+ delete tabLoadedHandlers[tabId]
+
handleFrameFocused = (request, sender) ->
[tabId, frameId] = [sender.tab.id, sender.frameId]
# This might be the first time we've heard from this tab.