diff options
author | Jesús <heckyel@hyperbola.info> | 2022-04-06 10:38:06 +0800 |
---|---|---|
committer | Jesús <heckyel@hyperbola.info> | 2022-04-06 10:38:06 +0800 |
commit | 8aeb670be1d252807252ee2bfe99b15b81c3e28d (patch) | |
tree | ced0973165449d620c5c40876c37ab16b17655f9 /js/vapi-cloud.js | |
parent | 5aa99a2ea2b683ba35eb36dfc54efd79f3cfcb85 (diff) | |
download | ematrix-8aeb670be1d252807252ee2bfe99b15b81c3e28d.tar.lz ematrix-8aeb670be1d252807252ee2bfe99b15b81c3e28d.tar.xz ematrix-8aeb670be1d252807252ee2bfe99b15b81c3e28d.zip |
update from upstream
Diffstat (limited to 'js/vapi-cloud.js')
-rw-r--r-- | js/vapi-cloud.js | 110 |
1 files changed, 55 insertions, 55 deletions
diff --git a/js/vapi-cloud.js b/js/vapi-cloud.js index 70d7907..c86f351 100644 --- a/js/vapi-cloud.js +++ b/js/vapi-cloud.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 */ @@ -27,130 +27,130 @@ (function () { vAPI.cloud = (function () { - let extensionBranchPath = 'extensions.' + location.host; - let cloudBranchPath = extensionBranchPath + '.cloudStorage'; - - // https://github.com/gorhill/uBlock/issues/80#issuecomment-132081658 - // We must use get/setComplexValue in order to properly handle strings - // with unicode characters. - let iss = Ci.nsISupportsString; - let argstr = Components.classes['@mozilla.org/supports-string;1'] + let extensionBranchPath = 'extensions.' + location.host; + let cloudBranchPath = extensionBranchPath + '.cloudStorage'; + + // https://github.com/gorhill/uBlock/issues/80#issuecomment-132081658 + // We must use get/setComplexValue in order to properly handle strings + // with unicode characters. + let iss = Ci.nsISupportsString; + let argstr = Components.classes['@mozilla.org/supports-string;1'] .createInstance(iss); - let options = { + let options = { defaultDeviceName: '', deviceName: '' - }; + }; - // User-supplied device name. - try { + // User-supplied device name. + try { options.deviceName = Services.prefs .getBranch(extensionBranchPath + '.') .getComplexValue('deviceName', iss) .data; - } catch(ex) { - // Ignore - } + } catch(ex) { + // Ignore + } - var getDefaultDeviceName = function() { + var getDefaultDeviceName = function() { var name = ''; try { - name = Services.prefs + name = Services.prefs .getBranch('services.sync.client.') .getComplexValue('name', iss) .data; } catch(ex) { - // Ignore + // Ignore } return name || window.navigator.platform || window.navigator.oscpu; - }; + }; - let start = function (dataKeys) { + let start = function (dataKeys) { let extensionBranch = - Services.prefs.getBranch(extensionBranchPath + '.'); + Services.prefs.getBranch(extensionBranchPath + '.'); let syncBranch = - Services.prefs.getBranch('services.sync.prefs.sync.'); + Services.prefs.getBranch('services.sync.prefs.sync.'); // Mark config entries as syncable argstr.data = ''; let dataKey; for (let i=0; i<dataKeys.length; ++i) { - dataKey = dataKeys[i]; - if (extensionBranch.prefHasUserValue('cloudStorage.' + dataKey) - === false) { + dataKey = dataKeys[i]; + if (extensionBranch.prefHasUserValue('cloudStorage.' + dataKey) + === false) { extensionBranch.setComplexValue('cloudStorage.' + dataKey, - iss, argstr); - } + iss, argstr); + } - syncBranch.setBoolPref(cloudBranchPath + '.' + dataKey, true); + syncBranch.setBoolPref(cloudBranchPath + '.' + dataKey, true); } - }; + }; - let push = function (datakey, data, callback) { + let push = function (datakey, data, callback) { let branch = Services.prefs.getBranch(cloudBranchPath + '.'); let bin = { - 'source': options.deviceName || getDefaultDeviceName(), - 'tstamp': Date.now(), - 'data': data, - 'size': 0 + 'source': options.deviceName || getDefaultDeviceName(), + 'tstamp': Date.now(), + 'data': data, + 'size': 0 }; bin.size = JSON.stringify(bin).length; argstr.data = JSON.stringify(bin); branch.setComplexValue(datakey, iss, argstr); if (typeof callback === 'function') { - callback(); + callback(); } - }; + }; - let pull = function (datakey, callback) { + let pull = function (datakey, callback) { let result = null; let branch = Services.prefs.getBranch(cloudBranchPath + '.'); try { - let json = branch.getComplexValue(datakey, iss).data; - if (typeof json === 'string') { + let json = branch.getComplexValue(datakey, iss).data; + if (typeof json === 'string') { result = JSON.parse(json); - } + } } catch(ex) { - // Ignore + // Ignore } callback(result); - }; + }; - let getOptions = function (callback) { + let getOptions = function (callback) { if (typeof callback !== 'function') { - return; + return; } options.defaultDeviceName = getDefaultDeviceName(); callback(options); - }; + }; - let setOptions = function (details, callback) { + let setOptions = function (details, callback) { if (typeof details !== 'object' || details === null) { - return; + return; } let branch = Services.prefs.getBranch(extensionBranchPath + '.'); if (typeof details.deviceName === 'string') { - argstr.data = details.deviceName; - branch.setComplexValue('deviceName', iss, argstr); - options.deviceName = details.deviceName; + argstr.data = details.deviceName; + branch.setComplexValue('deviceName', iss, argstr); + options.deviceName = details.deviceName; } getOptions(callback); - }; + }; - return { + return { start: start, push: push, pull: pull, getOptions: getOptions, setOptions: setOptions - }; + }; })(); })(); |