about summary refs log tree commit diff stats
path: root/src/assets
diff options
context:
space:
mode:
Diffstat (limited to 'src/assets')
-rw-r--r--src/assets/javascripts/services.js29
-rw-r--r--src/assets/javascripts/utils.js3
2 files changed, 31 insertions, 1 deletions
diff --git a/src/assets/javascripts/services.js b/src/assets/javascripts/services.js
index 92d891d7..7b73d9d5 100644
--- a/src/assets/javascripts/services.js
+++ b/src/assets/javascripts/services.js
@@ -784,6 +784,34 @@ 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,

@@ -795,4 +823,5 @@ export default {
 	upgradeOptions,

 	processUpdate,

 	modifyContentSecurityPolicy,

+	processEnabledInstanceList,

 }

diff --git a/src/assets/javascripts/utils.js b/src/assets/javascripts/utils.js
index 1f09435c..66a439bf 100644
--- a/src/assets/javascripts/utils.js
+++ b/src/assets/javascripts/utils.js
@@ -46,7 +46,8 @@ function updateInstances() {
 		await initBlackList()
 		const instances = JSON.parse(http.responseText)
 
-		servicesHelper.setRedirects(instances)
+		await servicesHelper.setRedirects(instances)
+		await servicesHelper.processEnabledInstanceList()
 
 		console.info("Successfully updated Instances")
 		resolve(true)