diff options
author | Ruben Rodriguez <ruben@gnu.org> | 2018-02-25 20:04:31 -0500 |
---|---|---|
committer | Ruben Rodriguez <ruben@gnu.org> | 2018-02-25 20:04:31 -0500 |
commit | 229240370f009a7ba1dc31f57bcfcbd2cf785d0a (patch) | |
tree | defa51219f44d19451bbcfd1e8298eadb1e3f4b7 /data/extensions/https-everywhere@eff.org/store.js | |
parent | f2a3be07039056c76e3ca4e6040ec900ba64f376 (diff) |
Updated extensions
- HTTPS Everywhere updated to 2018.1.11
- "goteo.org payments with free JS" updated to 1.1
- "LibreJS compatible Pay.gov" updated to 1.3
- "Reveal hidden HTML" updated to 1.6
- Enabled WebRTC, but prevent leaking the LAN ip.
Diffstat (limited to 'data/extensions/https-everywhere@eff.org/store.js')
-rw-r--r-- | data/extensions/https-everywhere@eff.org/store.js | 73 |
1 files changed, 73 insertions, 0 deletions
diff --git a/data/extensions/https-everywhere@eff.org/store.js b/data/extensions/https-everywhere@eff.org/store.js new file mode 100644 index 0000000..12341da --- /dev/null +++ b/data/extensions/https-everywhere@eff.org/store.js @@ -0,0 +1,73 @@ +"use strict"; + +(function(exports) { + +const rules = require('./rules'); + +function initialize() { + return new Promise(resolve => { + if (chrome.storage.sync) { + chrome.storage.sync.set({"sync-set-test": true}, () => { + if(chrome.runtime.lastError){ + setStorage(chrome.storage.local); + } else { + setStorage(chrome.storage.sync); + } + resolve(); + }); + } else { + setStorage(chrome.storage.local); + resolve(); + } + }); +} + +function get_promise(key, default_val) { + return new Promise(res => exports.get({[key]: default_val}, data => res(data[key]))); +} + +function set_promise(key, value) { + return new Promise(res => exports.set({[key]: value}, res)); +} + +async function performMigrations() { + const migration_version = await get_promise('migration_version', 0); + + if (migration_version < 1) { + + let ls; + try { + ls = localStorage; + } catch(e) {} + + let ruleActiveStates = {}; + for (const key in ls) { + if (ls.hasOwnProperty(key)) { + if (key == rules.RuleSets().USER_RULE_KEY){ + await set_promise(rules.RuleSets().USER_RULE_KEY, JSON.parse(ls[key])); + } else { + ruleActiveStates[key] = (ls[key] == "true"); + } + } + } + await set_promise('ruleActiveStates', ruleActiveStates); + } + + await set_promise('migration_version', 1); +} + +function setStorage(store) { + Object.assign(exports, { + get: store.get, + set: store.set, + get_promise, + set_promise + }); +} + +Object.assign(exports, { + initialize, + performMigrations +}); + +})(typeof exports == 'undefined' ? require.scopes.store = {} : exports); |