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 | |
| parent | e19ff7a58ec97de3524a6eb32d5f6e0f57696354 (diff) | |
| download | vimium-d6f8e7301ed43a64df77e9bfa0ef9dd7a263faeb.tar.bz2 | |
Simplify domReady handling.
Diffstat (limited to 'background_scripts')
| -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. |
