aboutsummaryrefslogtreecommitdiffstats
path: root/js/vapi-background.js
diff options
context:
space:
mode:
authorAlessio Vanni <vannilla@firemail.cc>2019-06-22 14:11:45 +0200
committerAlessio Vanni <vannilla@firemail.cc>2019-06-22 14:11:45 +0200
commit3e1d8467b38a31b8f3a9ef562fe9a890a5838276 (patch)
tree9c7b412bd833ab536be11ca2b2bb1fef4fb58ae6 /js/vapi-background.js
parent5befab2b81270d55e5cb45ed39756dd9c069cf1f (diff)
downloadematrix-3e1d8467b38a31b8f3a9ef562fe9a890a5838276.tar.lz
ematrix-3e1d8467b38a31b8f3a9ef562fe9a890a5838276.tar.xz
ematrix-3e1d8467b38a31b8f3a9ef562fe9a890a5838276.zip
Move browser-related entities away from vapi-background
Diffstat (limited to 'js/vapi-background.js')
-rw-r--r--js/vapi-background.js212
1 files changed, 0 insertions, 212 deletions
diff --git a/js/vapi-background.js b/js/vapi-background.js
index b7d0d65..7f5f223 100644
--- a/js/vapi-background.js
+++ b/js/vapi-background.js
@@ -36,180 +36,6 @@
let vAPI = self.vAPI; // Guaranteed to be initialized by vapi-core.js
- vAPI.browserSettings = {
- // For now, only booleans.
- originalValues: {},
-
- rememberOriginalValue: function (path, setting) {
- let key = path + '.' + setting;
- if (this.originalValues.hasOwnProperty(key)) {
- return;
- }
-
- let hasUserValue;
- let branch = Services.prefs.getBranch(path + '.');
-
- try {
- hasUserValue = branch.prefHasUserValue(setting);
- } catch (ex) {
- // Ignore
- }
-
- if (hasUserValue !== undefined) {
- this.originalValues[key] = hasUserValue
- ? this.getValue(path, setting)
- : undefined;
- }
- },
- clear: function (path, setting) {
- let key = path + '.' + setting;
-
- // Value was not overriden -- nothing to restore
- if (this.originalValues.hasOwnProperty(key) === false) {
- return;
- }
-
- let value = this.originalValues[key];
-
- // https://github.com/gorhill/uBlock/issues/292#issuecomment-109621979
- // Forget the value immediately, it may change outside of
- // uBlock control.
- delete this.originalValues[key];
-
- // Original value was a default one
- if (value === undefined) {
- try {
- Services.prefs.getBranch(path + '.').clearUserPref(setting);
- } catch (ex) {
- // Ignore
- }
- return;
- }
-
- // Reset to original value
- this.setValue(path, setting, value);
- },
- 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) {
- 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.clear('network', 'prefetch-next');
- this.clear('network.http', 'speculative-parallel-limit');
- } else {
- this.setValue('network', 'prefetch-next', false);
- this.setValue('network.http',
- 'speculative-parallel-limit', 0);
- }
- break;
- case 'hyperlinkAuditing':
- 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) {
- this.clear('browser', 'send_pings');
- this.clear('beacon', 'enabled');
- } else {
- this.setValue('browser', 'send_pings', false);
- this.setValue('beacon', 'enabled', false);
- }
- 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) {
- prefName = 'ice.default_address_only';
- prefVal = true;
- } else {
- prefName = 'enabled';
- prefVal = false;
- }
-
- this.rememberOriginalValue('media.peerconnection', prefName);
- if (value) {
- this.clear('media.peerconnection', prefName);
- } else {
- this.setValue('media.peerconnection', prefName, prefVal);
- }
- break;
- default:
- break;
- }
- },
- set: function (details) {
- for (let setting in details) {
- if (details.hasOwnProperty(setting) === false) {
- continue;
- }
- this.setSetting(setting, !!details[setting]);
- }
- },
- restoreAll: function () {
- let pos;
- for (let key in this.originalValues) {
- if (this.originalValues.hasOwnProperty(key) === false) {
- continue;
- }
-
- pos = key.lastIndexOf('.');
- this.clear(key.slice(0, pos), key.slice(pos + 1));
- }
- },
- };
-
- vAPI.addCleanUpTask(vAPI.browserSettings
- .restoreAll.bind(vAPI.browserSettings));
-
// API matches that of chrome.storage.local:
// https://developer.chrome.com/extensions/storage
vAPI.storage = (function () {
@@ -512,21 +338,6 @@
vAPI.cacheStorage = vAPI.storage;
- // browser-handling utilities
- vAPI.browser = {};
-
- vAPI.browser.getTabBrowser = function (win) {
- return win && win.gBrowser || null;
- };
-
- vAPI.browser.getOwnerWindow = function (target) {
- if (target.ownerDocument) {
- return target.ownerDocument.defaultView;
- }
-
- return null;
- };
-
// Icon-related stuff
vAPI.setIcon = function (tabId, iconId, badge) {
// If badge is undefined, then setIcon was called from the
@@ -2368,29 +2179,6 @@
};
})();
- vAPI.browserData = {};
-
- vAPI.browserData.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) {
- Services.cache2.clear();
- } else if (Services.cache) {
- Services.cache.evictEntries(Services.cache.STORE_ON_DISK);
- }
-
- if (typeof callback === 'function') {
- callback();
- }
- };
-
- vAPI.browserData.clearOrigin = function(/* domain */) {
- // TODO
- };
-
vAPI.cookies = {};
// https://developer.mozilla.org/en-US/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsICookieManager2
// https://developer.mozilla.org/en-US/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsICookie2