diff options
author | Alessio Vanni <vannilla@firemail.cc> | 2019-06-22 14:11:45 +0200 |
---|---|---|
committer | Alessio Vanni <vannilla@firemail.cc> | 2019-06-22 14:11:45 +0200 |
commit | 3e1d8467b38a31b8f3a9ef562fe9a890a5838276 (patch) | |
tree | 9c7b412bd833ab536be11ca2b2bb1fef4fb58ae6 /js/vapi-background.js | |
parent | 5befab2b81270d55e5cb45ed39756dd9c069cf1f (diff) | |
download | ematrix-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.js | 212 |
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 |