| 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; | 
|  |