summaryrefslogtreecommitdiff
path: root/data/extensions/https-everywhere@eff.org/background-scripts/store.js
diff options
context:
space:
mode:
Diffstat (limited to 'data/extensions/https-everywhere@eff.org/background-scripts/store.js')
-rw-r--r--data/extensions/https-everywhere@eff.org/background-scripts/store.js58
1 files changed, 40 insertions, 18 deletions
diff --git a/data/extensions/https-everywhere@eff.org/background-scripts/store.js b/data/extensions/https-everywhere@eff.org/background-scripts/store.js
index 3b555c7..c41ccd0 100644
--- a/data/extensions/https-everywhere@eff.org/background-scripts/store.js
+++ b/data/extensions/https-everywhere@eff.org/background-scripts/store.js
@@ -51,29 +51,51 @@ function local_set_promise(key, value) {
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");
+ let migration_version = await get_promise('migration_version', 0);
+
+ try {
+ if (migration_version === 0) {
+ let ls = localStorage;
+ let ruleActiveStates = {};
+
+ for (let key in ls) {
+ if (ls.hasOwnProperty(key)) {
+ if (rules.RuleSets().USER_RULE_KEY === key) {
+ await set_promise(rules.RuleSets().USER_RULE_KEY, JSON.parse(ls[key]));
+ } else {
+ ruleActiveStates[key] = (ls[key] === "true");
+ }
}
}
+ migration_version = 1;
+ await set_promise('migration_version', migration_version);
+ await set_promise('ruleActiveStates', ruleActiveStates);
}
- await set_promise('ruleActiveStates', ruleActiveStates);
+
+ } catch (e) {
+ // do nothing
}
- await set_promise('migration_version', 1);
+ if (migration_version <= 1) {
+ await get_promise(rules.RuleSets().USER_RULE_KEY, [])
+ .then(userRules => {
+ userRules = userRules.map(userRule => {
+ return {
+ name: userRule.host,
+ target: [userRule.host],
+ rule: [{ from: userRule.urlMatcher, to: userRule.redirectTo }],
+ default_off: "user rule"
+ }
+ })
+ return userRules;
+ })
+ .then(userRules => {
+ return set_promise(rules.RuleSets().USER_RULE_KEY, userRules);
+ })
+
+ migration_version = 2;
+ await set_promise('migration_version', migration_version);
+ }
}
const local = {