| Index: lib/stats.js |
| =================================================================== |
| --- a/lib/stats.js |
| +++ b/lib/stats.js |
| @@ -24,26 +24,26 @@ |
| let {FilterNotifier} = require("filterNotifier"); |
| let badgeColor = "#646464"; |
| -let statsPerTab = new TabMap(true); |
| +let statsPerPage = new ext.PageMap(); |
| /** |
| - * Get statistics for specified tab |
| + * Get statistics for specified page |
| * @param {String} key field key |
| - * @param {Number} tabId tab ID (leave undefined for total stats) |
| + * @param {Page} page field page |
| * @return {Number} field value |
| */ |
| -let getStats = exports.getStats = function getStats(key, tab) |
| +let getStats = exports.getStats = function getStats(key, page) |
| { |
| - if (!tab) |
| + if (!page) |
| return (key in Prefs.stats_total ? Prefs.stats_total[key] : 0); |
| - let tabStats = statsPerTab.get(tab); |
| - return tabStats ? tabStats.blocked : 0; |
| + let pageStats = statsPerPage.get(page); |
| + return pageStats ? pageStats.blocked : 0; |
| }; |
| -FilterNotifier.addListener(function(action, item, newValue, oldValue, tab) |
| +FilterNotifier.addListener(function(action, item, newValue, oldValue, page) |
| { |
| - if (action != "filter.hitCount" || !tab) |
| + if (action != "filter.hitCount" || !page) |
| return; |
| let blocked = item instanceof BlockingFilter; |
| @@ -57,66 +57,47 @@ |
| Prefs.stats_total.blocked = 1; |
| Prefs.stats_total = Prefs.stats_total; |
| - let tabStats = statsPerTab.get(tab); |
| - if (!tabStats) |
| + let pageStats = statsPerPage.get(page); |
| + if (!pageStats) |
| { |
| - tabStats = {}; |
| - statsPerTab.set(tab, tabStats); |
| + pageStats = {}; |
| + statsPerPage.set(page, pageStats); |
| } |
| - if ("blocked" in tabStats) |
| - tabStats.blocked++; |
| + if ("blocked" in pageStats) |
| + pageStats.blocked++; |
| else |
| - tabStats.blocked = 1; |
| + pageStats.blocked = 1; |
| // Update number in icon |
| if (Prefs.show_statsinicon) |
| { |
| - tab.browserAction.setBadge({ |
| + page.browserAction.setBadge({ |
| color: badgeColor, |
| - number: tabStats.blocked |
| + number: pageStats.blocked |
| }); |
| } |
| } |
| }); |
| -/** |
| - * Execute function for each tab in any window |
| - * @param {Function} func function to be executed |
| - */ |
| -function forEachTab(func) |
| -{ |
| - ext.windows.getAll(function(windows) |
| - { |
| - for each (let window in windows) |
| - { |
| - window.getAllTabs(function(tabs) |
| - { |
| - for (let i = 0; i < tabs.length; i++) |
| - func(tabs[i]); |
| - }); |
| - } |
| - }); |
| -} |
| - |
| Prefs.addListener(function(name) |
| { |
| if (name != "show_statsinicon") |
| return; |
| - forEachTab(function(tab) |
| + ext.pages.query({}, function(page) |
| { |
| let badge = null; |
| if (Prefs.show_statsinicon) |
| { |
| - let tabStats = statsPerTab.get(tab); |
| - if (tabStats && "blocked" in tabStats) |
| + let pageStats = statsPerPage.get(page); |
| + if (pageStats && "blocked" in pageStats) |
| { |
| badge = { |
| color: badgeColor, |
| - number: tabStats.blocked |
| + number: pageStats.blocked |
| }; |
| } |
| } |
| - tab.browserAction.setBadge(badge); |
| + page.browserAction.setBadge(badge); |
| }); |
| }); |