Skip to content

Commit 25719dd

Browse files
committed
Fixed cleaning up reloadingTabs in StreamFilter.onstart() was still breaking some feeds sometimes.
1 parent 7e3decc commit 25719dd

File tree

1 file changed

+8
-10
lines changed

1 file changed

+8
-10
lines changed

src/bg/RequestUtil.js

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,15 @@
88

99
let pendingRequests = new Map();
1010

11-
let reloadingTabs = new Set();
11+
let reloadingTabs = new Map();
1212
let tabKey = (tabId, url) => `${tabId}:${url}`;
1313

1414
let cleanup = r => {
1515
pendingRequests.delete(r.requestId);
16+
let key = tabKey(r.tabId, r.url);
17+
if (reloadingTabs.get(key) === false) {
18+
reloadingTabs.delete(key);
19+
}
1620
};
1721
let filter = {
1822
urls: ["<all_urls>"],
@@ -66,14 +70,8 @@
6670
if (frameId === 0) {
6771
let key = tabKey(tabId, url);
6872
debug("Checking whether %s is a reloading tab...", key);
69-
if (reloadingTabs.has(key)) {
70-
debug("Skipping dynamic script injection for reloading feed tab", key);
71-
let filter = browser.webRequest.filterResponseData(requestId);
72-
filter.onstart = e => {
73-
reloadingTabs.delete(key);
74-
filter.write(NULL);
75-
filter.disconnect();
76-
}
73+
if (reloadingTabs.get(key)) {
74+
reloadingTabs.set(key, false); // doom it for removal in cleanup
7775
return;
7876
}
7977
}
@@ -97,7 +95,7 @@
9795
if (mustCheckFeed && !scriptsRan) {
9896
mustReload = true;
9997
debug(`Marking as "must reload"`, tabId, url);
100-
reloadingTabs.add(tabKey(tabId, url));
98+
reloadingTabs.set(tabKey(tabId, url), true);
10199
}
102100
if (buffer && buffer.length) {
103101
debug("Flushing %s buffer chunks", buffer.length);

0 commit comments

Comments
 (0)