aboutsummaryrefslogtreecommitdiffstats
path: root/js/vapi-browser.js
diff options
context:
space:
mode:
Diffstat (limited to 'js/vapi-browser.js')
-rw-r--r--js/vapi-browser.js244
1 files changed, 122 insertions, 122 deletions
diff --git a/js/vapi-browser.js b/js/vapi-browser.js
index 48474f9..2d92498 100644
--- a/js/vapi-browser.js
+++ b/js/vapi-browser.js
@@ -2,7 +2,7 @@
ηMatrix - a browser extension to black/white list requests.
Copyright (C) 2014-2019 The uMatrix/uBlock Origin authors
- Copyright (C) 2019-2020 Alessio Vanni
+ Copyright (C) 2019-2022 Alessio Vanni
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -17,7 +17,7 @@
You should have received a copy of the GNU General Public License
along with this program. If not, see {http://www.gnu.org/licenses/}.
- Home: https://libregit.spks.xyz/heckyel/ematrix
+ Home: https://gitlab.com/vannilla/ematrix
uMatrix Home: https://github.com/gorhill/uMatrix
*/
@@ -29,48 +29,48 @@
vAPI.browser = {};
vAPI.browser.getTabBrowser = function (win) {
- return win && win.gBrowser || null;
+ return win && win.gBrowser || null;
};
vAPI.browser.getOwnerWindow = function (target) {
- if (target.ownerDocument) {
+ if (target.ownerDocument) {
return target.ownerDocument.defaultView;
- }
+ }
- return null;
+ return null;
};
vAPI.browser.settings = {
- // For now, only booleans.
- originalValues: {},
+ // For now, only booleans.
+ originalValues: {},
- rememberOriginalValue: function (path, setting) {
+ rememberOriginalValue: function (path, setting) {
let key = path + '.' + setting;
if (this.originalValues.hasOwnProperty(key)) {
- return;
+ return;
}
let hasUserValue;
let branch = Services.prefs.getBranch(path + '.');
try {
- hasUserValue = branch.prefHasUserValue(setting);
+ hasUserValue = branch.prefHasUserValue(setting);
} catch (ex) {
- // Ignore
+ // Ignore
}
if (hasUserValue !== undefined) {
- this.originalValues[key] = hasUserValue
- ? this.getValue(path, setting)
- : undefined;
+ this.originalValues[key] = hasUserValue
+ ? this.getValue(path, setting)
+ : undefined;
}
- },
- clear: function (path, setting) {
+ },
+ clear: function (path, setting) {
let key = path + '.' + setting;
// Value was not overriden -- nothing to restore
if (this.originalValues.hasOwnProperty(key) === false) {
- return;
+ return;
}
let value = this.originalValues[key];
@@ -82,160 +82,160 @@
// Original value was a default one
if (value === undefined) {
- try {
+ try {
Services.prefs.getBranch(path + '.').clearUserPref(setting);
- } catch (ex) {
- // Ignore
- }
- return;
+ } catch (ex) {
+ // Ignore
+ }
+ return;
}
// Reset to original value
this.setValue(path, setting, value);
- },
- getValue: function (path, setting) {
+ },
+ getValue: function (path, setting) {
let branch = Services.prefs.getBranch(path + '.');
- try {
- switch (branch.getPrefType(setting)) {
- case branch.PREF_INT:
- return branch.getIntPref(setting);
- case branch.PREF_BOOL:
- return branch.getBoolPref(setting);
- default:
- // not supported
- return;
- }
- } catch (e) {
- // Ignore
- }
- },
- setValue: function (path, setting, value) {
- let branch = Services.prefs.getBranch(path + '.');
-
- try {
- switch (typeof value) {
- case 'number':
- return branch.setIntPref(setting, value);
- case 'boolean':
- return branch.setBoolPref(setting, value);
- default:
- // not supported
- return;
- }
- } catch (e) {
- // Ignore
- }
- },
- setSetting: function (setting, value) {
+ try {
+ switch (branch.getPrefType(setting)) {
+ case branch.PREF_INT:
+ return branch.getIntPref(setting);
+ case branch.PREF_BOOL:
+ return branch.getBoolPref(setting);
+ default:
+ // not supported
+ return;
+ }
+ } catch (e) {
+ // Ignore
+ }
+ },
+ setValue: function (path, setting, value) {
+ let branch = Services.prefs.getBranch(path + '.');
+
+ try {
+ switch (typeof value) {
+ case 'number':
+ return branch.setIntPref(setting, value);
+ case 'boolean':
+ return branch.setBoolPref(setting, value);
+ default:
+ // not supported
+ return;
+ }
+ } catch (e) {
+ // Ignore
+ }
+ },
+ setSetting: function (setting, value) {
switch (setting) {
case 'prefetching':
- this.rememberOriginalValue('network', 'prefetch-next');
- // https://bugzilla.mozilla.org/show_bug.cgi?id=814169
- // Sigh.
- // eMatrix: doesn't seem the case for Pale
- // Moon/Basilisk, but let's keep this anyway
- this.rememberOriginalValue('network.http', 'speculative-parallel-limit');
-
- // https://github.com/gorhill/uBlock/issues/292
- // "true" means "do not disable", i.e. leave entry alone
- if (value) {
+ this.rememberOriginalValue('network', 'prefetch-next');
+ // https://bugzilla.mozilla.org/show_bug.cgi?id=814169
+ // Sigh.
+ // eMatrix: doesn't seem the case for Pale
+ // Moon/Basilisk, but let's keep this anyway
+ this.rememberOriginalValue('network.http', 'speculative-parallel-limit');
+
+ // https://github.com/gorhill/uBlock/issues/292
+ // "true" means "do not disable", i.e. leave entry alone
+ if (value) {
this.clear('network', 'prefetch-next');
this.clear('network.http', 'speculative-parallel-limit');
- } else {
+ } else {
this.setValue('network', 'prefetch-next', false);
this.setValue('network.http',
- 'speculative-parallel-limit', 0);
- }
- break;
+ 'speculative-parallel-limit', 0);
+ }
+ break;
case 'hyperlinkAuditing':
- this.rememberOriginalValue('browser', 'send_pings');
- this.rememberOriginalValue('beacon', 'enabled');
+ this.rememberOriginalValue('browser', 'send_pings');
+ this.rememberOriginalValue('beacon', 'enabled');
- // https://github.com/gorhill/uBlock/issues/292
- // "true" means "do not disable", i.e. leave entry alone
- if (value) {
+ // https://github.com/gorhill/uBlock/issues/292
+ // "true" means "do not disable", i.e. leave entry alone
+ if (value) {
this.clear('browser', 'send_pings');
this.clear('beacon', 'enabled');
- } else {
+ } else {
this.setValue('browser', 'send_pings', false);
this.setValue('beacon', 'enabled', false);
- }
- break;
+ }
+ break;
case 'webrtcIPAddress':
- let prefName;
- let prefVal;
-
- // https://github.com/gorhill/uBlock/issues/894
- // Do not disable completely WebRTC if it can be avoided. FF42+
- // has a `media.peerconnection.ice.default_address_only` pref which
- // purpose is to prevent local IP address leakage.
- if (this.getValue('media.peerconnection',
- 'ice.default_address_only') !== undefined) {
+ let prefName;
+ let prefVal;
+
+ // https://github.com/gorhill/uBlock/issues/894
+ // Do not disable completely WebRTC if it can be avoided. FF42+
+ // has a `media.peerconnection.ice.default_address_only` pref which
+ // purpose is to prevent local IP address leakage.
+ if (this.getValue('media.peerconnection',
+ 'ice.default_address_only') !== undefined) {
prefName = 'ice.default_address_only';
prefVal = true;
- } else {
+ } else {
prefName = 'enabled';
prefVal = false;
- }
+ }
- this.rememberOriginalValue('media.peerconnection', prefName);
- if (value) {
+ this.rememberOriginalValue('media.peerconnection', prefName);
+ if (value) {
this.clear('media.peerconnection', prefName);
- } else {
+ } else {
this.setValue('media.peerconnection', prefName, prefVal);
- }
- break;
+ }
+ break;
default:
- break;
+ break;
}
- },
- set: function (details) {
+ },
+ set: function (details) {
for (let setting in details) {
- if (details.hasOwnProperty(setting) === false) {
+ if (details.hasOwnProperty(setting) === false) {
continue;
- }
- this.setSetting(setting, !!details[setting]);
+ }
+ this.setSetting(setting, !!details[setting]);
}
- },
- restoreAll: function () {
+ },
+ restoreAll: function () {
let pos;
for (let key in this.originalValues) {
- if (this.originalValues.hasOwnProperty(key) === false) {
+ if (this.originalValues.hasOwnProperty(key) === false) {
continue;
- }
+ }
- pos = key.lastIndexOf('.');
- this.clear(key.slice(0, pos), key.slice(pos + 1));
+ pos = key.lastIndexOf('.');
+ this.clear(key.slice(0, pos), key.slice(pos + 1));
}
- },
+ },
};
vAPI.addCleanUpTask(vAPI.browser.settings
- .restoreAll.bind(vAPI.browser.settings));
+ .restoreAll.bind(vAPI.browser.settings));
vAPI.browser.data = {};
vAPI.browser.data.clearCache = function (callback) {
- // PURGE_DISK_DATA_ONLY:1
- // PURGE_DISK_ALL:2
- // PURGE_EVERYTHING:3
- // However I verified that no argument does clear the cache data.
- // There is no cache2 for older versions of Firefox.
- if (Services.cache2) {
+ // PURGE_DISK_DATA_ONLY:1
+ // PURGE_DISK_ALL:2
+ // PURGE_EVERYTHING:3
+ // However I verified that no argument does clear the cache data.
+ // There is no cache2 for older versions of Firefox.
+ if (Services.cache2) {
Services.cache2.clear();
- } else if (Services.cache) {
+ } else if (Services.cache) {
Services.cache.evictEntries(Services.cache.STORE_ON_DISK);
- }
+ }
- if (typeof callback === 'function') {
+ if (typeof callback === 'function') {
callback();
- }
+ }
};
vAPI.browser.data.clearOrigin = function(/* domain */) {
- // TODO
- // eMatrix: is this actually needed? I don't really know what
- // it's supposed to do anyway.
+ // TODO
+ // eMatrix: is this actually needed? I don't really know what
+ // it's supposed to do anyway.
};
})();