Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion manifest.json
Original file line number Diff line number Diff line change
@@ -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",
Expand Down
18 changes: 18 additions & 0 deletions src/background/background.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@

var ruleDomains = {};
var syncFunctions = [];
var badgeMap = new Map();

var logOnTab = function(tabId, message, important) {
if (localStorage.showLogs === "true") {
Expand Down Expand Up @@ -33,6 +34,8 @@

var updateTabCallback = function(tabId, changeinfo, tab) {
urls[tabId] = tab.url;
badgeMap.set(tabId, 0);
updateBadge(tabId, '');
};

// Not all tabs will fire an update event. If the page is pre-rendered,
Expand All @@ -48,6 +51,7 @@
closeListeners.forEach(function(fn) {
fn(urls[tabId]);
});
badgeMap.delete(tabId);
delete urls[tabId];
};

Expand Down Expand Up @@ -227,6 +231,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) {
Expand All @@ -240,6 +247,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);

Expand Down Expand Up @@ -357,6 +368,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();
Expand Down
4 changes: 4 additions & 0 deletions src/ui/devtoolstab.html
Original file line number Diff line number Diff line change
Expand Up @@ -208,6 +208,10 @@ <h1>Resource Override</h1>
<div class="optionText">Show DevTools Tab:</div>
<div class="optionCheckbox"><input type="checkbox" id="showDevTools"></div>
</div>
<div class="optionRow">
<div class="optionText">Show Badge Count:</div>
<div class="optionCheckbox"><input type="checkbox" id="showBadgeCount"></div>
</div>
<div class="optionRow">
<div class="optionText" id="showSuggestionsText">Show Suggestions:</div>
<div class="optionCheckbox"><input type="checkbox" id="showSuggestions"></div>
Expand Down
15 changes: 15 additions & 0 deletions src/ui/options.js
Original file line number Diff line number Diff line change
Expand Up @@ -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();
Expand Down Expand Up @@ -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");
});

})();