 Issue 6346177440120832:
  Added abstraction for frames, to fix domain-based rules, whitelisting and ad counter on Safari  (Closed)
    
  
    Issue 6346177440120832:
  Added abstraction for frames, to fix domain-based rules, whitelisting and ad counter on Safari  (Closed) 
  | Index: lib/stats.js | 
| =================================================================== | 
| --- a/lib/stats.js | 
| +++ b/lib/stats.js | 
| @@ -24,6 +24,7 @@ | 
| let {FilterNotifier} = require("filterNotifier"); | 
| let badgeColor = "#646464"; | 
| +let statsPerTab = new TabMap(true); | 
| /** | 
| * Get statistics for specified tab | 
| @@ -36,8 +37,8 @@ | 
| if (!tab) | 
| return (key in Prefs.stats_total ? Prefs.stats_total[key] : 0); | 
| - let frameData = getFrameData(tab, 0); | 
| - return (frameData && key in frameData ? frameData[key] : 0); | 
| + let tabStats = statsPerTab.get(tab); | 
| + return tabStats && tabStats.blocked || 0; | 
| 
Felix Dahlke
2014/01/18 13:39:19
We're typically not using and/or as branching oper
 
Sebastian Noack
2014/01/19 10:19:40
Done.
 | 
| }; | 
| FilterNotifier.addListener(function(action, item, newValue, oldValue, tab) | 
| @@ -56,21 +57,23 @@ | 
| Prefs.stats_total.blocked = 1; | 
| Prefs.stats_total = Prefs.stats_total; | 
| - let frameData = getFrameData(tab, 0); | 
| - if (frameData) | 
| + let tabStats = statsPerTab.get(tab); | 
| + if (!tabStats) | 
| { | 
| - if ("blocked" in frameData) | 
| - frameData.blocked++; | 
| - else | 
| - frameData.blocked = 1; | 
| + tabStats = {}; | 
| + statsPerTab.set(tab, tabStats); | 
| } | 
| + if ("blocked" in tabStats) | 
| + tabStats.blocked++; | 
| + else | 
| + tabStats.blocked = 1; | 
| // Update number in icon | 
| if (Prefs.show_statsinicon) | 
| { | 
| tab.browserAction.setBadge({ | 
| color: badgeColor, | 
| - number: frameData.blocked | 
| + number: tabStats.blocked | 
| }); | 
| } | 
| } | 
| @@ -105,12 +108,12 @@ | 
| let badge = null; | 
| if (Prefs.show_statsinicon) | 
| { | 
| - let frameData = getFrameData(tab, 0); | 
| - if (frameData && "blocked" in frameData) | 
| + let tabStats = statsPerTab.get(tab); | 
| + if (tabStats && "blocked" in tabStats) | 
| { | 
| badge = { | 
| color: badgeColor, | 
| - number: frameData.blocked | 
| + number: tabStats.blocked | 
| }; | 
| } | 
| } |