зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1521598 - Part 1: Create a lazy preference getter for privacy.resistFingerprinting in SitePermissions; r=johannh
Differential Revision: https://phabricator.services.mozilla.com/D17362 --HG-- extra : moz-landing-system : lando
This commit is contained in:
Родитель
2ed2cfee12
Коммит
4680510d84
|
@ -220,6 +220,7 @@ var SitePermissions = {
|
|||
SCOPE_POLICY: "{SitePermissions.SCOPE_POLICY}",
|
||||
SCOPE_GLOBAL: "{SitePermissions.SCOPE_GLOBAL}",
|
||||
|
||||
_permissionsArray: null,
|
||||
_defaultPrefBranch: Services.prefs.getBranch("permissions.default."),
|
||||
|
||||
/**
|
||||
|
@ -250,8 +251,7 @@ var SitePermissions = {
|
|||
}
|
||||
|
||||
// Hide canvas permission when privacy.resistFingerprinting is false.
|
||||
if ((permission.type == "canvas") &&
|
||||
!Services.prefs.getBoolPref("privacy.resistFingerprinting")) {
|
||||
if ((permission.type == "canvas") && !this.resistFingerprinting) {
|
||||
continue;
|
||||
}
|
||||
|
||||
|
@ -348,14 +348,33 @@ var SitePermissions = {
|
|||
* @return {Array<String>} an array of all permission IDs.
|
||||
*/
|
||||
listPermissions() {
|
||||
let permissions = Object.keys(gPermissionObject);
|
||||
if (this._permissionsArray === null) {
|
||||
let permissions = Object.keys(gPermissionObject);
|
||||
|
||||
// Hide canvas permission when privacy.resistFingerprinting is false.
|
||||
if (!Services.prefs.getBoolPref("privacy.resistFingerprinting")) {
|
||||
permissions = permissions.filter(permission => permission !== "canvas");
|
||||
// Hide canvas permission when privacy.resistFingerprinting is false.
|
||||
if (!this.resistFingerprinting) {
|
||||
permissions = permissions.filter(permission => permission !== "canvas");
|
||||
}
|
||||
this._permissionsArray = permissions;
|
||||
}
|
||||
|
||||
return permissions;
|
||||
return this._permissionsArray;
|
||||
},
|
||||
|
||||
/**
|
||||
* Called when the privacy.resistFingerprinting preference changes its value.
|
||||
*
|
||||
* @param {string} data
|
||||
* The last argument passed to the preference change observer
|
||||
* @param {string} previous
|
||||
* The previous value of the preference
|
||||
* @param {string} latest
|
||||
* The latest value of the preference
|
||||
*/
|
||||
onResistFingerprintingChanged(data, previous, latest) {
|
||||
// Ensure that listPermissions() will reconstruct its return value the next
|
||||
// time it's called.
|
||||
this._permissionsArray = null;
|
||||
},
|
||||
|
||||
/**
|
||||
|
@ -810,3 +829,6 @@ if (!Services.prefs.getBoolPref("dom.webmidi.enabled")) {
|
|||
|
||||
XPCOMUtils.defineLazyPreferenceGetter(SitePermissions, "temporaryPermissionExpireTime",
|
||||
"privacy.temporary_permission_expire_time_ms", 3600 * 1000);
|
||||
XPCOMUtils.defineLazyPreferenceGetter(SitePermissions, "resistFingerprinting",
|
||||
"privacy.resistFingerprinting", false,
|
||||
SitePermissions.onResistFingerprintingChanged.bind(SitePermissions));
|
||||
|
|
Загрузка…
Ссылка в новой задаче