diff options
Diffstat (limited to 'tools/addon-sdk-1.12/lib/sdk/private-browsing/utils.js')
-rw-r--r-- | tools/addon-sdk-1.12/lib/sdk/private-browsing/utils.js | 74 |
1 files changed, 0 insertions, 74 deletions
diff --git a/tools/addon-sdk-1.12/lib/sdk/private-browsing/utils.js b/tools/addon-sdk-1.12/lib/sdk/private-browsing/utils.js deleted file mode 100644 index 1f57ca0..0000000 --- a/tools/addon-sdk-1.12/lib/sdk/private-browsing/utils.js +++ /dev/null @@ -1,74 +0,0 @@ -/* This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ -'use strict'; - -module.metadata = { - "stability": "unstable" -}; - -const { Cc, Ci } = require('chrome'); -const { defer } = require('../lang/functional'); -const observers = require('../deprecated/observer-service'); -const { emit, on, once, off } = require('../event/core'); -const { when: unload } = require('../system/unload'); -const { getWindowLoadingContext } = require('../window/utils'); -const { deprecateFunction } = require('../util/deprecate'); - -let deferredEmit = defer(emit); - -let pbService; - -// Currently, only Firefox implements the private browsing service. -if (require("../system/xul-app").is("Firefox")) { - pbService = Cc["@mozilla.org/privatebrowsing;1"]. - getService(Ci.nsIPrivateBrowsingService); - - // set up an observer for private browsing switches. - observers.add('private-browsing-transition-complete', function onChange() { - // Emit event with in next turn of event loop. - deferredEmit(exports, pbService.privateBrowsingEnabled ? 'start' : 'stop'); - }); -} - -// checks that per-window private browsing implemented -let isWindowPBEnabled = function isWindowPBEnabled(chromeWin) { - return !!(chromeWin && - 'gPrivateBrowsingUI' in chromeWin && - 'privateWindow' in chromeWin.gPrivateBrowsingUI); -} -exports.isWindowPBEnabled = isWindowPBEnabled; - -// We toggle private browsing mode asynchronously in order to work around -// bug 659629. Since private browsing transitions are asynchronous -// anyway, this doesn't significantly change the behavior of the API. -// Note: this method should not be used with `chromeWin` argument until -// the UI has been implemented. Bug 729865 -let setMode = defer(function setMode(value, chromeWin) { - value = !!value; // Cast to boolean. - - if (isWindowPBEnabled(chromeWin)) - return getWindowLoadingContext(chromeWin).usePrivateBrowsing = value; - - // default - return pbService && (pbService.privateBrowsingEnabled = value); -}); -exports.setMode = deprecateFunction( - setMode, - 'require("private-browsing").activate and require("private-browsing").deactivate ' + - 'is deprecated.' -); - -let getMode = function getMode(chromeWin) { - if (isWindowPBEnabled(chromeWin)) - return getWindowLoadingContext(chromeWin).usePrivateBrowsing; - - // default - return pbService ? pbService.privateBrowsingEnabled : false; -}; -exports.getMode = getMode; - -exports.on = on.bind(null, exports); - -// Make sure listeners are cleaned up. -unload(function() off(exports)); |