diff options
| author | Stephen Blott | 2016-03-16 15:02:25 +0000 | 
|---|---|---|
| committer | Stephen Blott | 2016-03-17 11:17:03 +0000 | 
| commit | d6f8e7301ed43a64df77e9bfa0ef9dd7a263faeb (patch) | |
| tree | b7eca3d237549205db25864ab187a270d4421f7b /background_scripts/main.coffee | |
| parent | e19ff7a58ec97de3524a6eb32d5f6e0f57696354 (diff) | |
| download | vimium-d6f8e7301ed43a64df77e9bfa0ef9dd7a263faeb.tar.bz2 | |
Simplify domReady handling.
Diffstat (limited to 'background_scripts/main.coffee')
| -rw-r--r-- | background_scripts/main.coffee | 27 | 
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. | 
