diff --git a/webextension/js/background/badge.js b/webextension/js/background/badge.js index d947d40..78cd9f1 100644 --- a/webextension/js/background/badge.js +++ b/webextension/js/background/badge.js @@ -4,12 +4,13 @@ const badge = { const currentWindow = await browser.windows.getCurrent(); this.displayBrowserActionBadge(currentWindow.incognito); }, - async displayBrowserActionBadge(disable) { - if (disable) { - browser.browserAction.disable(); - } else { - browser.browserAction.enable(); - } + + disableAddon(tabId) { + browser.browserAction.disable(tabId); + browser.browserAction.setTitle({ tabId, title: "Containers disabled in Private Browsing Mode" }); + }, + + async displayBrowserActionBadge() { const extensionInfo = await backgroundLogic.getExtensionInfo(); const storage = await browser.storage.local.get({browserActionBadgesClicked: []}); diff --git a/webextension/js/background/index.html b/webextension/js/background/index.html index 06de8ff..e167f0b 100644 --- a/webextension/js/background/index.html +++ b/webextension/js/background/index.html @@ -11,7 +11,6 @@ "js/background/badge.js", "js/background/identityState.js", "js/background/messageHandler.js", - "js/backdround/init.js" ] --> @@ -19,6 +18,5 @@ - diff --git a/webextension/js/background/init.js b/webextension/js/background/init.js deleted file mode 100644 index 3875580..0000000 --- a/webextension/js/background/init.js +++ /dev/null @@ -1,27 +0,0 @@ -browser.runtime.sendMessage({ - method: "getPreference", - pref: "browser.privatebrowsing.autostart" -}).then(pbAutoStart => { - - // We don't want to disable the addon if we are in auto private-browsing. - if (!pbAutoStart) { - browser.tabs.onCreated.addListener(tab => { - if (tab.incognito) { - disableAddon(tab.id); - } - }); - - browser.tabs.query({}).then(tabs => { - for (let tab of tabs) { // eslint-disable-line prefer-const - if (tab.incognito) { - disableAddon(tab.id); - } - } - }).catch(() => {}); - } -}).catch(() => {}); - -function disableAddon(tabId) { - browser.browserAction.disable(tabId); - browser.browserAction.setTitle({ tabId, title: "Containers disabled in Private Browsing Mode" }); -} diff --git a/webextension/js/background/messageHandler.js b/webextension/js/background/messageHandler.js index b71ad02..b49ecb5 100644 --- a/webextension/js/background/messageHandler.js +++ b/webextension/js/background/messageHandler.js @@ -106,6 +106,9 @@ const messageHandler = { }, {urls: [""], types: ["main_frame"]}); browser.tabs.onCreated.addListener((tab) => { + if (tab.incognito) { + badge.disableAddon(tab.id); + } // lets remember the last tab created so we can close it if it looks like a redirect this.lastCreatedTab = tab; if (tab.cookieStoreId) { @@ -130,12 +133,11 @@ const messageHandler = { async onFocusChangedCallback(windowId) { assignManager.removeContextMenu(); - const currentWindow = await browser.windows.getCurrent(); // browserAction loses background color in new windows ... // https://bugzil.la/1314674 // https://github.com/mozilla/testpilot-containers/issues/608 // ... so re-call displayBrowserActionBadge on window changes - badge.displayBrowserActionBadge(currentWindow.incognito); + badge.displayBrowserActionBadge(); browser.tabs.query({active: true, windowId}).then((tabs) => { if (tabs && tabs[0]) { assignManager.calculateContextMenu(tabs[0]);