summaryrefslogtreecommitdiff
path: root/data/extensions/https-everywhere@eff.org/store.js
diff options
context:
space:
mode:
authorRuben Rodriguez <ruben@gnu.org>2018-02-25 20:04:31 -0500
committerRuben Rodriguez <ruben@gnu.org>2018-02-25 20:04:31 -0500
commit229240370f009a7ba1dc31f57bcfcbd2cf785d0a (patch)
treedefa51219f44d19451bbcfd1e8298eadb1e3f4b7 /data/extensions/https-everywhere@eff.org/store.js
parentf2a3be07039056c76e3ca4e6040ec900ba64f376 (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.js73
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);