From 8ae4a795c4dab7e3b5888ace6b085a9556375a23 Mon Sep 17 00:00:00 2001 From: Aishat Akinyemi Date: Fri, 25 Oct 2019 11:24:24 +0100 Subject: [PATCH 1/3] refactor messageHandler.js to reuse badge.displayBrowserActionBadge --- src/js/background/badge.js | 38 +++++++++++++++++++++-------- src/js/background/messageHandler.js | 16 +++--------- 2 files changed, 32 insertions(+), 22 deletions(-) diff --git a/src/js/background/badge.js b/src/js/background/badge.js index 7d532ac..655fa50 100644 --- a/src/js/background/badge.js +++ b/src/js/background/badge.js @@ -1,20 +1,38 @@ const MAJOR_VERSIONS = ["2.3.0", "2.4.0"]; const badge = { async init() { - const currentWindow = await browser.windows.getCurrent(); - this.displayBrowserActionBadge(currentWindow); + const showVersionIndicator = await browser.windows.getCurrent(); + this.displayBrowserActionBadge(showVersionIndicator); }, - async displayBrowserActionBadge() { - const extensionInfo = await backgroundLogic.getExtensionInfo(); - const storage = await browser.storage.local.get({ browserActionBadgesClicked: [] }); + disableAddon(tabId) { + browser.browserAction.disable(tabId); + browser.browserAction.setTitle({ tabId, title: "Containers disabled in Private Browsing Mode" }); + }, - if (MAJOR_VERSIONS.indexOf(extensionInfo.version) > -1 && - storage.browserActionBadgesClicked.indexOf(extensionInfo.version) < 0) { - browser.browserAction.setBadgeBackgroundColor({ color: "rgba(0,217,0,255)" }); - browser.browserAction.setBadgeText({ text: "NEW" }); + async displayBrowserActionBadge(action) { + const extensionInfo = await backgroundLogic.getExtensionInfo(); + function changeBadgeColorText(color, text){ + browser.browserAction.setBadgeBackgroundColor({color: color}); + browser.browserAction.setBadgeText({text: text}); + } + if(action==="showVersionIndicator") { + const ActionBadgesClickedStorage = await browser.storage.local.get({browserActionBadgesClicked: []}); + if (MAJOR_VERSIONS.indexOf(extensionInfo.version) > -1 && + ActionBadgesClickedStorage.browserActionBadgesClicked.indexOf(extensionInfo.version) < 0) { + changeBadgeColorText("rgba(0,217,0,255)", "NEW"); + } + } + else if (action==="showAchievement") { + const achievementsStorage = await browser.storage.local.get({achievements: []}); + achievementsStorage.achievements.push({"name": "manyContainersOpened", "done": false}); + // use set and spread to create a unique array + const achievements = [...new Set(achievementsStorage.achievements)]; + browser.storage.local.set({achievements}); + changeBadgeColorText("rgba(0,217,0,255)", "NEW"); } } + }; -badge.init(); +badge.init(); \ No newline at end of file diff --git a/src/js/background/messageHandler.js b/src/js/background/messageHandler.js index 046d163..8775e6e 100644 --- a/src/js/background/messageHandler.js +++ b/src/js/background/messageHandler.js @@ -141,6 +141,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) { @@ -168,23 +171,12 @@ const messageHandler = { // When the user opens their _ tab, give them the achievement if (countOfContainerTabsOpened === 100) { - const storage = await browser.storage.local.get({achievements: []}); - storage.achievements.push({"name": "manyContainersOpened", "done": false}); - // use set and spread to create a unique array - const achievements = [...new Set(storage.achievements)]; - browser.storage.local.set({achievements}); - browser.browserAction.setBadgeBackgroundColor({color: "rgba(0,217,0,255)"}); - browser.browserAction.setBadgeText({text: "NEW"}); + badge.displayBrowserActionBadge("showAchievement"); } }, async onFocusChangedCallback(windowId) { assignManager.removeContextMenu(); - // 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(); browser.tabs.query({active: true, windowId}).then((tabs) => { if (tabs && tabs[0]) { assignManager.calculateContextMenu(tabs[0]); From f2243f9d119969d9d07dd2a7468de96897bdd59c Mon Sep 17 00:00:00 2001 From: Aishat Akinyemi Date: Fri, 25 Oct 2019 11:52:11 +0100 Subject: [PATCH 2/3] add newline to end of file --- src/js/background/badge.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/js/background/badge.js b/src/js/background/badge.js index 655fa50..72eafc5 100644 --- a/src/js/background/badge.js +++ b/src/js/background/badge.js @@ -35,4 +35,4 @@ const badge = { }; -badge.init(); \ No newline at end of file +badge.init(); From 65c58667b16c04a765c08633d4ee7675b203b7d5 Mon Sep 17 00:00:00 2001 From: Aishat Akinyemi Date: Sat, 26 Oct 2019 12:38:18 +0100 Subject: [PATCH 3/3] pass showVersionIndicator as string paramater to displayBrowserActionBadge --- src/js/background/badge.js | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/js/background/badge.js b/src/js/background/badge.js index 72eafc5..9bbb96a 100644 --- a/src/js/background/badge.js +++ b/src/js/background/badge.js @@ -1,8 +1,7 @@ const MAJOR_VERSIONS = ["2.3.0", "2.4.0"]; const badge = { - async init() { - const showVersionIndicator = await browser.windows.getCurrent(); - this.displayBrowserActionBadge(showVersionIndicator); + async init() { + this.displayBrowserActionBadge("showVersionIndicator"); }, disableAddon(tabId) {