mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-10-11 17:57:32 +09:00
Move Add-on SDK source to toolkit/jetpack
This commit is contained in:
parent
0a03067ee3
commit
23b67db438
993 changed files with 484 additions and 100663 deletions
54
toolkit/jetpack/sdk/private-browsing/utils.js
Normal file
54
toolkit/jetpack/sdk/private-browsing/utils.js
Normal file
|
|
@ -0,0 +1,54 @@
|
|||
/* 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, Cu } = require('chrome');
|
||||
const { is } = require('../system/xul-app');
|
||||
const { isWindowPrivate } = require('../window/utils');
|
||||
const { isPrivateBrowsingSupported } = require('../self');
|
||||
const { dispatcher } = require("../util/dispatcher");
|
||||
|
||||
var PrivateBrowsingUtils;
|
||||
|
||||
// Private browsing is only supported in Fx
|
||||
try {
|
||||
PrivateBrowsingUtils = Cu.import('resource://gre/modules/PrivateBrowsingUtils.jsm', {}).PrivateBrowsingUtils;
|
||||
}
|
||||
catch (e) {}
|
||||
|
||||
exports.isGlobalPBSupported = false;
|
||||
|
||||
// checks that per-window private browsing is implemented
|
||||
var isWindowPBSupported = exports.isWindowPBSupported =
|
||||
!!PrivateBrowsingUtils && is('Firefox');
|
||||
|
||||
// checks that per-tab private browsing is implemented
|
||||
var isTabPBSupported = exports.isTabPBSupported =
|
||||
!!PrivateBrowsingUtils && is('Fennec');
|
||||
|
||||
function isPermanentPrivateBrowsing() {
|
||||
return !!(PrivateBrowsingUtils && PrivateBrowsingUtils.permanentPrivateBrowsing);
|
||||
}
|
||||
exports.isPermanentPrivateBrowsing = isPermanentPrivateBrowsing;
|
||||
|
||||
function ignoreWindow(window) {
|
||||
return !isPrivateBrowsingSupported && isWindowPrivate(window);
|
||||
}
|
||||
exports.ignoreWindow = ignoreWindow;
|
||||
|
||||
var getMode = function getMode(chromeWin) {
|
||||
return (chromeWin !== undefined && isWindowPrivate(chromeWin));
|
||||
};
|
||||
exports.getMode = getMode;
|
||||
|
||||
const isPrivate = dispatcher("isPrivate");
|
||||
isPrivate.when(isPermanentPrivateBrowsing, _ => true);
|
||||
isPrivate.when(x => x instanceof Ci.nsIDOMWindow, isWindowPrivate);
|
||||
isPrivate.when(x => Ci.nsIPrivateBrowsingChannel && x instanceof Ci.nsIPrivateBrowsingChannel, x => x.isChannelPrivate);
|
||||
isPrivate.define(() => false);
|
||||
exports.isPrivate = isPrivate;
|
||||
Loading…
Add table
Add a link
Reference in a new issue