From 09e807a1b0929997b74dd5e60081ec0e7a54843b Mon Sep 17 00:00:00 2001 From: Steve Sioli Date: Fri, 19 Oct 2018 12:58:10 -0700 Subject: [PATCH 1/8] Bump to version `1.1.0` --- manifest.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/manifest.json b/manifest.json index e2c3c983..6fec598b 100644 --- a/manifest.json +++ b/manifest.json @@ -1,6 +1,6 @@ { "name": "Resource Override", - "version": "1.0.0", + "version": "1.1.0", "description": "An extension to help you gain full control of any website by redirecting traffic, replacing, editing, or inserting new content.", "icons": { "16": "icons/icon-16x16.png", From 0febd0a3c7847b1976476940b3214daa742ded3f Mon Sep 17 00:00:00 2001 From: Steve Sioli Date: Fri, 19 Oct 2018 13:34:34 -0700 Subject: [PATCH 2/8] Add new `Map` to track rule matches per tab --- src/background/background.js | 1 + 1 file changed, 1 insertion(+) diff --git a/src/background/background.js b/src/background/background.js index 9e84e6d9..6a8e5a67 100644 --- a/src/background/background.js +++ b/src/background/background.js @@ -5,6 +5,7 @@ var ruleDomains = {}; var syncFunctions = []; + var badgeMap = new Map(); var logOnTab = function(tabId, message, important) { if (localStorage.showLogs === "true") { From 14153a22701549fabe27865f731446e5bba0f431 Mon Sep 17 00:00:00 2001 From: Steve Sioli Date: Fri, 19 Oct 2018 13:36:02 -0700 Subject: [PATCH 3/8] Define `updateBadge` method to set badge text and background color. --- src/background/background.js | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/background/background.js b/src/background/background.js index 6a8e5a67..95a85eb0 100644 --- a/src/background/background.js +++ b/src/background/background.js @@ -358,6 +358,13 @@ return headerObjToReturn; }; + var updateBadge = function(tabId, text) { + if (localStorage.showBadgeCount === "false") return; + var color = '#099'; + chrome.browserAction.setBadgeText(text && { text, tabId }); + chrome.browserAction.setBadgeBackgroundColor({ color, tabId }); + }; + // Called when the user clicks on the browser action icon. chrome.browserAction.onClicked.addListener(function(tab) { openOrFocusOptionsPage(); From 163c01a081b75bf9d9ead80d25e9da396f41931c Mon Sep 17 00:00:00 2001 From: Steve Sioli Date: Fri, 19 Oct 2018 13:37:54 -0700 Subject: [PATCH 4/8] Add new option to show badge count --- src/ui/devtoolstab.html | 4 ++++ src/ui/options.js | 15 +++++++++++++++ 2 files changed, 19 insertions(+) diff --git a/src/ui/devtoolstab.html b/src/ui/devtoolstab.html index 5ea970c1..220b3815 100644 --- a/src/ui/devtoolstab.html +++ b/src/ui/devtoolstab.html @@ -208,6 +208,10 @@

Resource Override

Show DevTools Tab:
+
+
Show Badge Count:
+
+
Show Suggestions:
diff --git a/src/ui/options.js b/src/ui/options.js index dcb50041..5a925ffe 100644 --- a/src/ui/options.js +++ b/src/ui/options.js @@ -44,6 +44,14 @@ }); }); + ui.showBadgeCount.on("click", function(e) { + chrome.extension.sendMessage({ + action: "setSetting", + setting: "showBadgeCount", + value: ui.showBadgeCount.prop("checked") + }); + }); + ui.saveRulesLink.on("click", function(e) { e.preventDefault(); const data = app.export(); @@ -100,4 +108,11 @@ ui.showLogs.prop("checked", data === "true"); }); + chrome.extension.sendMessage({ + action: "getSetting", + setting: "showBadgeCount" + }, function(data) { + ui.showBadgeCount.prop("checked", data === "true"); + }); + })(); From 0f8023e2eca5b580b236aa50c1281767b678e605 Mon Sep 17 00:00:00 2001 From: Steve Sioli Date: Fri, 19 Oct 2018 13:40:22 -0700 Subject: [PATCH 5/8] Update badge count if rule is matched --- src/background/background.js | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/background/background.js b/src/background/background.js index 95a85eb0..151a2dac 100644 --- a/src/background/background.js +++ b/src/background/background.js @@ -228,6 +228,9 @@ var matchedObj = match(ruleObj.match, requestUrl); var newUrl = matchReplace(matchedObj, ruleObj.replace, requestUrl); if (matchedObj.matched) { + var badgeCount = badgeMap.get(tabId) || 0; + badgeMap.set(tabId, ++badgeCount); + updateBadge(tabId, '' + badgeCount); logOnTab(tabId, "URL Override Matched: " + requestUrl + " to: " + newUrl + " match url: " + ruleObj.match, true); if (requestUrl !== newUrl) { @@ -241,6 +244,10 @@ } else if (ruleObj.type === "fileOverride" && match(ruleObj.match, requestUrl).matched) { + var badgeCount = badgeMap.get(tabId) || 0; + badgeMap.set(tabId, ++badgeCount); + updateBadge(tabId, '' + badgeCount); + logOnTab(tabId, "File Override Matched: " + requestUrl + " match url: " + ruleObj.match, true); From 405f1a740efa119524a4fbd6891c3c726791c42c Mon Sep 17 00:00:00 2001 From: Steve Sioli Date: Fri, 19 Oct 2018 13:40:51 -0700 Subject: [PATCH 6/8] Rest badge count to `0` on tab update --- src/background/background.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/background/background.js b/src/background/background.js index 151a2dac..39090253 100644 --- a/src/background/background.js +++ b/src/background/background.js @@ -34,6 +34,8 @@ var updateTabCallback = function(tabId, changeinfo, tab) { urls[tabId] = tab.url; + badgeMap.set(tabId, 0); + updateBadge(details.tabId, ''); }; // Not all tabs will fire an update event. If the page is pre-rendered, From 8981832e18227585c0348a030c3ea3306588b09f Mon Sep 17 00:00:00 2001 From: Steve Sioli Date: Fri, 19 Oct 2018 13:41:33 -0700 Subject: [PATCH 7/8] Remove tab from map when closed --- src/background/background.js | 1 + 1 file changed, 1 insertion(+) diff --git a/src/background/background.js b/src/background/background.js index 39090253..754f15e3 100644 --- a/src/background/background.js +++ b/src/background/background.js @@ -51,6 +51,7 @@ closeListeners.forEach(function(fn) { fn(urls[tabId]); }); + badgeMap.delete(tabId); delete urls[tabId]; }; From 05f6318018d865e0ef9829b7ca5ed20b90e0b249 Mon Sep 17 00:00:00 2001 From: Steve Sioli Date: Fri, 19 Oct 2018 13:45:28 -0700 Subject: [PATCH 8/8] Fix incorrect reference in `updateTabCallback` --- src/background/background.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/background/background.js b/src/background/background.js index 754f15e3..f90cd339 100644 --- a/src/background/background.js +++ b/src/background/background.js @@ -35,7 +35,7 @@ var updateTabCallback = function(tabId, changeinfo, tab) { urls[tabId] = tab.url; badgeMap.set(tabId, 0); - updateBadge(details.tabId, ''); + updateBadge(tabId, ''); }; // Not all tabs will fire an update event. If the page is pre-rendered,