| Index: lib/contentFiltering.js |
| =================================================================== |
| --- a/lib/contentFiltering.js |
| +++ b/lib/contentFiltering.js |
| @@ -100,28 +100,29 @@ |
| function updateFrameStyles(tabId, frameId, styleSheet, groupName = "standard", |
| appendOnly = false) |
| { |
| let frame = ext.getFrame(tabId, frameId); |
| if (!frame) |
| return false; |
| - if (!frame.injectedStyleSheets) |
| - frame.injectedStyleSheets = new Map(); |
| + if (!frame.state.injectedStyleSheets) |
| + frame.state.injectedStyleSheets = new Map(); |
| - let oldStyleSheet = frame.injectedStyleSheets.get(groupName); |
| + let oldStyleSheet = frame.state.injectedStyleSheets.get(groupName); |
| if (appendOnly && oldStyleSheet) |
| styleSheet = oldStyleSheet + styleSheet; |
| // Ideally we would compare the old and new style sheets and skip this code |
| - // if they're the same, but the old style sheet can be a leftover from a |
| - // previous instance of the frame. We must add the new style sheet |
| - // regardless. |
| + // if they're the same. But first we need to ensure that there are no edge |
| + // cases that would cause the old style sheet to be a leftover from a |
| + // previous instance of the frame (see issue #7180). For now, we add the new |
| + // style sheet regardless. |
| // Add the new style sheet first to keep previously hidden elements from |
| // reappearing momentarily. |
| if (styleSheet && !addStyleSheet(tabId, frameId, styleSheet)) |
| return false; |
| // Sometimes the old and new style sheets can be exactly the same. In such a |
| // case, do not remove the "old" style sheet, because it is in fact the new |
| @@ -129,17 +130,17 @@ |
| if (oldStyleSheet && oldStyleSheet != styleSheet) |
| removeStyleSheet(tabId, frameId, oldStyleSheet); |
| // The standard style sheet is ~660 KB per frame (as of Adblock Plus 3.3.2). |
| // Keeping it in memory would only really be useful on Firefox, which allows |
| // us to remove it via the tabs.removeCSS API. By choosing not to hold on to |
| // it, we save potentially several megabytes per tab (#6967). |
| if (groupName != "standard") |
| - frame.injectedStyleSheets.set(groupName, styleSheet); |
| + frame.state.injectedStyleSheets.set(groupName, styleSheet); |
| return true; |
| } |
| function getExecutableCode(script) |
| { |
| let code = executableCode.get(script); |
| if (code) |
| return code; |