| Index: ext/background.js |
| =================================================================== |
| --- a/ext/background.js |
| +++ b/ext/background.js |
| @@ -259,20 +259,17 @@ |
| {types: ["main_frame", "sub_frame"], urls: ["http://*/*", "https://*/*"]}, |
| ["responseHeaders"]); |
| - browser.webNavigation.onBeforeNavigate.addListener(details => |
| + browser.webNavigation.onCommitted.addListener(details => |
| { |
| - // Since we can only listen for HTTP(S) responses using |
| - // webRequest.onHeadersReceived we must update the page structure here for |
| - // other navigations. |
| - let {url} = details; |
| - if (!(url.startsWith("http:") || |
| - url.startsWith("https:") && |
|
Sebastian Noack
2018/04/18 11:25:36
The assumption that every document with an HTTP(S)
kzar
2018/05/02 12:06:52
Initially I worried you removed the whole onHeader
Sebastian Noack
2018/05/02 14:32:15
During onBeforeNavigate we don't know yet whether
kzar
2018/05/02 15:26:52
OK, yea that makes sense. I can't think of a bette
Sebastian Noack
2018/05/02 15:34:49
Well, if blob: URLs are opaque to the webRequest A
kzar
2018/05/02 15:46:35
Well if you paste this snippet from my Chromium is
Sebastian Noack
2018/05/02 16:27:55
I tested it, and the onCommitted listener is emitt
|
| - // Chrome doesn't dispatch webRequest.onHeadersReceived |
| - // for Web Store URLs. |
| - // https://crrev.com/76882bf/extensions/common/extension_urls.cc#33 |
| - !url.startsWith("https://chrome.google.com/webstore/"))) |
|
Sebastian Noack
2018/04/18 11:25:36
This special case is redundant now, since onCommit
kzar
2018/05/02 12:06:52
Acknowledged.
|
| + // We have to update the frame structure for documents that weren't |
| + // loaded over HTTP (including documents cached by Service Workers), |
| + // when the navigation occurs. However, we must be careful to not |
| + // update the state of the same document twice, otherewise the number |
| + // of any ads blocked already and any recorded sitekey could get lost. |
| + let frame = ext.getFrame(details.tabId, details.frameId); |
| + if (!frame || frame.url.href != details.url) |
| { |
| - updatePageFrameStructure(details.frameId, details.tabId, url, |
| + updatePageFrameStructure(details.frameId, details.tabId, details.url, |
| details.parentFrameId); |
| } |
| }); |