Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code

Unified Diff: lib/stats.js

Issue 29317001: Relocated icon and redesigned icon popup (Closed)
Patch Set: Rebased Created Nov. 19, 2013, 1:43 p.m.
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: lib/stats.js
===================================================================
--- a/lib/stats.js
+++ b/lib/stats.js
@@ -23,6 +23,8 @@
let {BlockingFilter} = require("filterClasses");
let {FilterNotifier} = require("filterNotifier");
+let badgeColor = [100, 100, 100, 255];
+
/**
* Get statistics for specified tab
* @param {String} key field key
@@ -43,7 +45,7 @@
if (action != "filter.hitCount")
return;
- var blocked = item instanceof BlockingFilter;
+ let blocked = item instanceof BlockingFilter;
// Increment counts
if (blocked)
@@ -62,5 +64,57 @@
else
frameData.blocked = 1;
}
+
+ // Update number in icon
+ if (Prefs.show_iconnumber)
+ {
+ tab.browserAction.setBadgeBackgroundColor(badgeColor);
+ tab.browserAction.setBadgeText(frameData.blocked.toString());
+ }
}
});
+
+/**
+ * Execute function for each tab in any window
+ * @param {Function} func function to be executed
+ */
+function forEachTab(func)
+{
+ ext.windows.getAll(function(windows)
+ {
+ for (let i = 0; i < windows.length; i++)
+ {
+ windows[i].getAllTabs(function(tabs)
+ {
+ for (let i = 0; i < tabs.length; i++)
+ func(tabs[i]);
+ });
+ }
+ });
+}
+
+Prefs.addListener(function(name)
+{
+ if (name != "show_iconnumber")
+ return;
+
+ if (Prefs.show_iconnumber)
+ {
+ // Add number to icon
+ forEachTab(function(tab) {
+ tab.browserAction.setBadgeBackgroundColor(badgeColor);
+
+ let frameData = getFrameData(tab, 0);
+ if (frameData && "blocked" in frameData)
+ tab.browserAction.setBadgeText(frameData.blocked.toString());
+ });
+ }
+ else
+ {
+ // Remove number from icon
+ forEachTab(function(tab)
+ {
+ tab.browserAction.setBadgeText("");
+ });
+ }
+});

Powered by Google App Engine
This is Rietveld