From 890eeab257622a01e9f19556f698add029c418ed Mon Sep 17 00:00:00 2001 From: baku Date: Wed, 1 Feb 2017 08:09:36 +0100 Subject: [PATCH] Addon enabled when PB is by default --- index.js | 12 ++++++++++++ webextension/background.js | 29 +++++++++++++++++++---------- 2 files changed, 31 insertions(+), 10 deletions(-) diff --git a/index.js b/index.js index 634405a..7a70da6 100644 --- a/index.js +++ b/index.js @@ -29,6 +29,7 @@ const { attachTo } = require("sdk/content/mod"); const { ContextualIdentityService } = require("resource://gre/modules/ContextualIdentityService.jsm"); const { getFavicon } = require("sdk/places/favicon"); const { modelFor } = require("sdk/model/core"); +const prefService = require("sdk/preferences/service"); const self = require("sdk/self"); const { Style } = require("sdk/stylesheet/style"); const tabs = require("sdk/tabs"); @@ -77,6 +78,7 @@ const ContainerService = { "createIdentity", "removeIdentity", "updateIdentity", + "getPreference", ]; // Map of identities. @@ -548,6 +550,16 @@ const ContainerService = { }); }, + // Preferences + + getPreference(args) { + if (!("pref" in args)) { + return Promise.reject("getPreference must be called with pref argument."); + } + + return Promise.resolve(prefService.get(args.pref)); + }, + // Styling the window configureWindows() { diff --git a/webextension/background.js b/webextension/background.js index 805dd0e..3875580 100644 --- a/webextension/background.js +++ b/webextension/background.js @@ -1,14 +1,23 @@ -browser.tabs.onCreated.addListener(tab => { - if (tab.incognito) { - disableAddon(tab.id); - } -}); +browser.runtime.sendMessage({ + method: "getPreference", + pref: "browser.privatebrowsing.autostart" +}).then(pbAutoStart => { -browser.tabs.query({}).then(tabs => { - for (let tab of tabs) { // eslint-disable-line prefer-const - if (tab.incognito) { - disableAddon(tab.id); - } + // 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(() => {});