diff --git a/core/main.js b/core/main.js index 78699469350189f238a2cc703bea034932aba3a7..d562f7cc0b8b49db40454ab76bf3d70e5d174725 100644 --- a/core/main.js +++ b/core/main.js @@ -94,20 +94,6 @@ chrome.runtime.getPlatformInfo(function (information) { main.operatingSystem = information.os; }); -if (typeof chrome.browserAction.setBadgeBackgroundColor !== 'function') { - - chrome.browserAction.setBadgeBackgroundColor = function () {}; - chrome.browserAction.setBadgeText = function () {}; - - chrome.browserAction.onClicked.addListener(function () { - - chrome.tabs.create({ - 'url': chrome.extension.getURL('pages/popup/popup.html'), - 'active': false - }); - }); -} - -chrome.browserAction.setBadgeBackgroundColor({ +wrappers.setBadgeBackgroundColor({ 'color': [74, 130, 108, 255] }); diff --git a/core/state-manager.js b/core/state-manager.js index 2728d0a48a3e38533ffbc66655d6ff5c9cbaea85..43bf38b84022368e716de8a1d2d432594f6ca758 100644 --- a/core/state-manager.js +++ b/core/state-manager.js @@ -37,14 +37,14 @@ stateManager.registerInjection = function (tabIdentifier, injection) { if (injectionCount > 0) { - chrome.browserAction.setBadgeText({ + wrappers.setBadgeText({ 'tabId': tabIdentifier, 'text': injectionCount.toString() }); } else { - chrome.browserAction.setBadgeText({ + wrappers.setBadgeText({ 'tabId': tabIdentifier, 'text': '' }); @@ -114,12 +114,8 @@ stateManager._createTab = function (tab) { chrome.webRequest.onBeforeRequest.addListener(function (requestDetails) { - return new Promise((resolve) => { - - browser.tabs.get(tabIdentifier).then(function (tab) { - resolve(interceptor.handleRequest(requestDetails, tabIdentifier, tab)); - }); - }); + let tab = stateManager.tabs[tabIdentifier].details || {}; + return interceptor.handleRequest(requestDetails, tabIdentifier, tab); }, requestFilters, [WebRequest.BLOCKING]); }; @@ -141,7 +137,7 @@ stateManager._updateTab = function (details) { if (stateManager.showIconBadge === true) { - chrome.browserAction.setBadgeText({ + wrappers.setBadgeText({ 'tabId': tabIdentifier, 'text': '' }); @@ -203,7 +199,7 @@ stateManager._handleStorageChanged = function (changes) { stateManager._removeIconBadgeFromTab = function (tab) { - chrome.browserAction.setBadgeText({ + wrappers.setBadgeText({ 'tabId': tab.id, 'text': '' }); @@ -238,6 +234,17 @@ chrome.storage.local.get('showIconBadge', function (items) { chrome.tabs.onCreated.addListener(stateManager._createTab); chrome.tabs.onRemoved.addListener(stateManager._removeTab); +chrome.webRequest.onBeforeRequest.addListener(function (requestDetails) { + + if (requestDetails.tabId !== -1) { + + stateManager.tabs[requestDetails.tabId].details = { + 'url': requestDetails.url + }; + } + +}, {'types': ['main_frame'], 'urls': [Address.ANY]}); + chrome.webNavigation.onCommitted.addListener(stateManager._updateTab, { 'url': [{'urlContains': ':'}] }); diff --git a/pages/popup/popup.css b/pages/popup/popup.css index 204c0375147050bb6f32e8d68675ed747f37c82c..37c2c59f19cadf768cd4bf68302c96016c77d3da 100644 --- a/pages/popup/popup.css +++ b/pages/popup/popup.css @@ -247,3 +247,14 @@ footer { font-style: italic; font-weight: 400; } + +/** + * Compatibility + */ + +@media screen and (-webkit-min-device-pixel-ratio: 0) { + + body { + width: 348px; + } +}