From b4a5aaf9d2f2bd4254807d24125fd06e80276a8d Mon Sep 17 00:00:00 2001 From: Thomas Rientjes <synzvato@protonmail.com> Date: Wed, 9 Aug 2017 19:49:04 -0400 Subject: [PATCH] Refactor existing codebase --- core/interceptor.js | 6 +++--- core/state-manager.js | 23 ++++++++++++++++------- manifest.json | 1 + 3 files changed, 20 insertions(+), 10 deletions(-) diff --git a/core/interceptor.js b/core/interceptor.js index 17ae2c8..78cb9ae 100644 --- a/core/interceptor.js +++ b/core/interceptor.js @@ -29,11 +29,11 @@ const HTTP_EXPRESSION = /^http?:\/\//; * Public Methods */ -interceptor.handleRequest = function (requestDetails, tabIdentifier, tabUrl) { +interceptor.handleRequest = function (requestDetails, tabIdentifier, tab) { - let validCandidate, targetDetails, targetPath, amountInjected; + let validCandidate, targetDetails, targetPath; - validCandidate = requestAnalyzer.isValidCandidate(requestDetails, tabUrl); + validCandidate = requestAnalyzer.isValidCandidate(requestDetails, tab); if (!validCandidate) { diff --git a/core/state-manager.js b/core/state-manager.js index b8675ff..58bddaf 100644 --- a/core/state-manager.js +++ b/core/state-manager.js @@ -111,13 +111,22 @@ stateManager._removeTab = function (tabIdentifier) { stateManager._updateTab = function (details) { - let tabIdentifier = details.tabId; + let tabIdentifier, frameIdentifier; - if (tabIdentifier !== -1) { + tabIdentifier = details.tabId; + frameIdentifier = details.frameId; - if (stateManager.tabs[tabIdentifier]) { - stateManager.tabs[tabIdentifier].injections = {}; - } + if (tabIdentifier === -1 || frameIdentifier !== 0) { + return; + } + + chrome.browserAction.setBadgeText({ + tabId: tabIdentifier, + text: '' + }); + + if (stateManager.tabs[tabIdentifier]) { + stateManager.tabs[tabIdentifier].injections = {}; } }; @@ -157,8 +166,8 @@ chrome.tabs.query({}, function (tabs) { chrome.tabs.onCreated.addListener(stateManager._createTab); chrome.tabs.onRemoved.addListener(stateManager._removeTab); -chrome.webRequest.onBeforeRequest.addListener(stateManager._updateTab, { - urls: ['<all_urls>'], types: ['main_frame'] +chrome.webNavigation.onCommitted.addListener(stateManager._updateTab, { + url: [{urlContains: ':'}] }); chrome.webRequest.onErrorOccurred.addListener(function (requestDetails) { diff --git a/manifest.json b/manifest.json index a79f948..c5387e2 100644 --- a/manifest.json +++ b/manifest.json @@ -20,6 +20,7 @@ "privacy", "storage", "tabs", + "webNavigation", "webRequest", "webRequestBlocking" ], -- GitLab