diff options
author | Hygna <hygna@proton.me> | 2022-10-21 19:24:55 +0100 |
---|---|---|
committer | Hygna <hygna@proton.me> | 2022-10-21 19:25:50 +0100 |
commit | 51bb4e1557b892f94132131aa6d19e5cb2b148d0 (patch) | |
tree | 5b48f4fa91293340a0c9c0562d07bd2858d4b8ac /src | |
parent | Bump versiom 2.3.1 => 2.3.2 (diff) | |
download | libredirect-51bb4e1557b892f94132131aa6d19e5cb2b148d0.zip |
Fixed redirect toggles set to false being reset
Closes https://github.com/libredirect/libredirect/issues/499
Diffstat (limited to 'src')
-rw-r--r-- | src/assets/javascripts/services.js | 40 | ||||
-rw-r--r-- | src/config/config.json | 7 | ||||
-rw-r--r-- | src/pages/background/background.js | 1 |
3 files changed, 16 insertions, 32 deletions
diff --git a/src/assets/javascripts/services.js b/src/assets/javascripts/services.js index 7b73d9d5..8aa044ea 100644 --- a/src/assets/javascripts/services.js +++ b/src/assets/javascripts/services.js @@ -716,7 +716,11 @@ function processUpdate() { for (const service in config.services) { if (!options[service]) options[service] = {} if (config.services[service].targets == "datajson") targets[service] = redirects[service] - for (const defaultOption in config.services[service].options) if (!options[service][defaultOption]) options[service][defaultOption] = config.services[service].options[defaultOption] + for (const defaultOption in config.services[service].options) { + if (options[service][defaultOption] === undefined) { + options[service][defaultOption] = config.services[service].options[defaultOption] + } + } for (const frontend in config.services[service].frontends) { if (config.services[service].frontends[frontend].instanceList) { if (!options[frontend]) options[frontend] = {} @@ -733,6 +737,11 @@ function processUpdate() { } } } + } else { + for (const instance of options[frontend][network].enabled) { + let i = redirects[frontend][network].indexOf(instance) + if (i < 0) options[frontend][network].enabled.splice(i, 1) + } } } } @@ -784,34 +793,6 @@ function modifyContentSecurityPolicy(details) { } } -function processEnabledInstanceList() { - return new Promise(resolve => { - fetch("/config/config.json") - .then(response => response.text()) - .then(configData => { - const config = JSON.parse(configData) - browser.storage.local.get(["redirects", "options"], r => { - let options = r.options - for (const service in config.services) { - for (const frontend in config.services[service].frontends) { - if (config.services[service].frontends[frontend].instanceList) { - for (const network in config.networks) { - for (const instance of options[frontend][network].enabled) { - let i = redirects[frontend][network].indexOf(instance) - if (i < 0) options[frontend][network].enabled.splice(i, 1) - } - } - } - } - } - browser.storage.local.set({ options }, () => { - resolve() - }) - }) - }) - }) -} - export default { redirect, computeService, @@ -823,5 +804,4 @@ export default { upgradeOptions, processUpdate, modifyContentSecurityPolicy, - processEnabledInstanceList, } diff --git a/src/config/config.json b/src/config/config.json index 5f70b85c..d9463206 100644 --- a/src/config/config.json +++ b/src/config/config.json @@ -163,7 +163,12 @@ "instanceList": true } }, - "targets": ["^https?:\\/{2}(www\\.|mobile\\.|)twitter\\.com(\\/|$)", "^https?:\\/{2}(pbs\\.|video\\.|)twimg\\.com(\\/|$)", "^https?:\\/{2}platform\\.twitter\\.com/embed(\\/|$)", "^https?:\\/{2}t\\.co(\\/|$)"], + "targets": [ + "^https?:\\/{2}(www\\.|mobile\\.|)twitter\\.com(\\/|$)", + "^https?:\\/{2}(pbs\\.|video\\.|)twimg\\.com(\\/|$)", + "^https?:\\/{2}platform\\.twitter\\.com/embed(\\/|$)", + "^https?:\\/{2}t\\.co(\\/|$)" + ], "name": "Twitter", "options": { "enabled": true, diff --git a/src/pages/background/background.js b/src/pages/background/background.js index d807fa0b..bed0055d 100644 --- a/src/pages/background/background.js +++ b/src/pages/background/background.js @@ -37,7 +37,6 @@ browser.runtime.onInstalled.addListener(details => { break default: await servicesHelper.processUpdate() - await servicesHelper.processEnabledInstanceList() } } }) |