about summary refs log tree commit diff stats
path: root/src/assets
diff options
context:
space:
mode:
authorManeraKai <manerakai@protonmail.com>2022-08-06 09:12:43 +0300
committerManeraKai <manerakai@protonmail.com>2022-08-06 09:12:43 +0300
commit93b181901c45481a3e6e433b7169debc817353fe (patch)
tree0986195fa98333335aed609b3b6f43c77c68754c /src/assets
parentUpdate blacklist pt1 (diff)
downloadlibredirect-93b181901c45481a3e6e433b7169debc817353fe.zip
Made setRedirect functions async
Diffstat (limited to 'src/assets')
-rw-r--r--src/assets/javascripts/frontend.js33
-rw-r--r--src/assets/javascripts/imdb.js33
-rw-r--r--src/assets/javascripts/imgur.js33
-rw-r--r--src/assets/javascripts/instagram.js33
-rw-r--r--src/assets/javascripts/lbry.js33
-rw-r--r--src/assets/javascripts/maps.js33
-rw-r--r--src/assets/javascripts/medium.js33
-rw-r--r--src/assets/javascripts/peertube.js33
-rw-r--r--src/assets/javascripts/quora.js37
-rw-r--r--src/assets/javascripts/reddit.js62
-rw-r--r--src/assets/javascripts/reuters.js33
-rw-r--r--src/assets/javascripts/search.js81
-rw-r--r--src/assets/javascripts/sendTargets.js33
-rw-r--r--src/assets/javascripts/tiktok.js33
-rw-r--r--src/assets/javascripts/translate/translate.js49
-rw-r--r--src/assets/javascripts/twitter.js33
-rw-r--r--src/assets/javascripts/utils.js72
-rw-r--r--src/assets/javascripts/wikipedia.js33
-rw-r--r--src/assets/javascripts/youtube/youtube.js81
-rw-r--r--src/assets/javascripts/youtubeMusic.js49
20 files changed, 488 insertions, 372 deletions
diff --git a/src/assets/javascripts/frontend.js b/src/assets/javascripts/frontend.js
new file mode 100644
index 00000000..73b864b4
--- /dev/null
+++ b/src/assets/javascripts/frontend.js
@@ -0,0 +1,33 @@
+class FrontEnd {
+	constructor({ name, redirect, frontends, protocols, enable }) {
+		this.name = name
+		this.redirect = redirect
+		this.enable = enable
+		fetch("/instances/data.json")
+			.then(response => response.text())
+			.then(async data => {
+				const json = JSON.parse(data)
+				this.frontends = {}
+				for (const frontend of frontends) {
+					this.frontends[frontend] = json[frontend]
+					for (const protocol of json[frontend]) {
+						browser.storage.local.set({
+							[`${name}_${protocol}_checks`]: json[frontend][protocol],
+						})
+					}
+				}
+			})
+
+		browser.storage.local.get(["cloudflareBlackList", "offlineBlackList"], r => {})
+		this.protocols = protocols
+	}
+	switchInstance(url) {}
+}
+
+let Reddit = new FrontEnd({
+	name: "youtube",
+	redirect: function () {},
+	targets: [/^https?:\/{2}(www\.|old\.|np\.|new\.|amp\.|)reddit\.com/, /^https?:\/{2}(i\.|preview\.)redd\.it/],
+	frontends: ["libreddit", "teddit"],
+	enable: true,
+})
diff --git a/src/assets/javascripts/imdb.js b/src/assets/javascripts/imdb.js
index 57368557..604e9a9e 100644
--- a/src/assets/javascripts/imdb.js
+++ b/src/assets/javascripts/imdb.js
@@ -17,21 +17,26 @@ for (let i = 0; i < frontends.length; i++) {
 }
 
 function setRedirects(val) {
-	browser.storage.local.get(["cloudflareBlackList", "offlineBlackList"], r => {
-		redirects.libremdb = val
-		libremdbNormalRedirectsChecks = [...redirects.libremdb.normal]
-		for (const instance of [...r.cloudflareBlackList, ...r.offlineBlackList]) {
-			const a = libremdbNormalRedirectsChecks.indexOf(instance)
-			if (a > -1) libremdbNormalRedirectsChecks.splice(a, 1)
-		}
-		browser.storage.local.set({
-			imdbRedirects: redirects,
-			libremdbNormalRedirectsChecks,
-			libremdbTorRedirectsChecks: [...redirects.libremdb.tor],
-			libremdbI2pRedirectsChecks: [...redirects.libremdb.i2p],
-			libremdbLokiRedirectsChecks: [...redirects.libremdb.loki],
+	return new Promise(resolve =>
+		browser.storage.local.get(["cloudflareBlackList", "offlineBlackList"], r => {
+			redirects.libremdb = val
+			libremdbNormalRedirectsChecks = [...redirects.libremdb.normal]
+			for (const instance of [...r.cloudflareBlackList, ...r.offlineBlackList]) {
+				const a = libremdbNormalRedirectsChecks.indexOf(instance)
+				if (a > -1) libremdbNormalRedirectsChecks.splice(a, 1)
+			}
+			browser.storage.local.set(
+				{
+					imdbRedirects: redirects,
+					libremdbNormalRedirectsChecks,
+					libremdbTorRedirectsChecks: [...redirects.libremdb.tor],
+					libremdbI2pRedirectsChecks: [...redirects.libremdb.i2p],
+					libremdbLokiRedirectsChecks: [...redirects.libremdb.loki],
+				},
+				() => resolve()
+			)
 		})
-	})
+	)
 }
 
 let disableImdb,
diff --git a/src/assets/javascripts/imgur.js b/src/assets/javascripts/imgur.js
index 15b9ccac..24e8cb8d 100644
--- a/src/assets/javascripts/imgur.js
+++ b/src/assets/javascripts/imgur.js
@@ -17,21 +17,26 @@ for (let i = 0; i < frontends.length; i++) {
 }
 
 function setRedirects(val) {
-	browser.storage.local.get(["cloudflareBlackList", "offlineBlackList"], r => {
-		redirects.rimgo = val
-		rimgoNormalRedirectsChecks = [...redirects.rimgo.normal]
-		for (const instance of [...r.cloudflareBlackList, ...r.offlineBlackList]) {
-			const a = rimgoNormalRedirectsChecks.indexOf(instance)
-			if (a > -1) rimgoNormalRedirectsChecks.splice(a, 1)
-		}
-		browser.storage.local.set({
-			imgurRedirects: redirects,
-			rimgoNormalRedirectsChecks,
-			rimgoTorRedirectsChecks: [...redirects.rimgo.tor],
-			rimgoI2pRedirectsChecks: [...redirects.rimgo.i2p],
-			rimgoLokiRedirectsChecks: [...redirects.rimgo.loki],
+	return new Promise(resolve =>
+		browser.storage.local.get(["cloudflareBlackList", "offlineBlackList"], r => {
+			redirects.rimgo = val
+			rimgoNormalRedirectsChecks = [...redirects.rimgo.normal]
+			for (const instance of [...r.cloudflareBlackList, ...r.offlineBlackList]) {
+				const a = rimgoNormalRedirectsChecks.indexOf(instance)
+				if (a > -1) rimgoNormalRedirectsChecks.splice(a, 1)
+			}
+			browser.storage.local.set(
+				{
+					imgurRedirects: redirects,
+					rimgoNormalRedirectsChecks,
+					rimgoTorRedirectsChecks: [...redirects.rimgo.tor],
+					rimgoI2pRedirectsChecks: [...redirects.rimgo.i2p],
+					rimgoLokiRedirectsChecks: [...redirects.rimgo.loki],
+				},
+				() => resolve()
+			)
 		})
-	})
+	)
 }
 
 let disableImgur,
diff --git a/src/assets/javascripts/instagram.js b/src/assets/javascripts/instagram.js
index d0aa07c0..bc580de7 100644
--- a/src/assets/javascripts/instagram.js
+++ b/src/assets/javascripts/instagram.js
@@ -16,21 +16,26 @@ for (let i = 0; i < frontends.length; i++) {
 }
 
 function setRedirects(val) {
-	browser.storage.local.get(["cloudflareBlackList", "offlineBlackList"], async r => {
-		redirects.bibliogram = val
-		bibliogramNormalRedirectsChecks = [...redirects.bibliogram.normal]
-		for (const instance of [...r.cloudflareBlackList, ...r.offlineBlackList]) {
-			const a = bibliogramNormalRedirectsChecks.indexOf(instance)
-			if (a > -1) bibliogramNormalRedirectsChecks.splice(a, 1)
-		}
-		browser.storage.local.set({
-			instagramRedirects: redirects,
-			bibliogramNormalRedirectsChecks,
-			bibliogramTorRedirectsChecks: [...redirects.bibliogram.tor],
-			bibliogramI2pRedirectsChecks: [...redirects.bibliogram.i2p],
-			bibliogramLokiRedirectsChecks: [...redirects.bibliogram.loki],
+	return new Promise(resolve =>
+		browser.storage.local.get(["cloudflareBlackList", "offlineBlackList"], async r => {
+			redirects.bibliogram = val
+			bibliogramNormalRedirectsChecks = [...redirects.bibliogram.normal]
+			for (const instance of [...r.cloudflareBlackList, ...r.offlineBlackList]) {
+				const a = bibliogramNormalRedirectsChecks.indexOf(instance)
+				if (a > -1) bibliogramNormalRedirectsChecks.splice(a, 1)
+			}
+			browser.storage.local.set(
+				{
+					instagramRedirects: redirects,
+					bibliogramNormalRedirectsChecks,
+					bibliogramTorRedirectsChecks: [...redirects.bibliogram.tor],
+					bibliogramI2pRedirectsChecks: [...redirects.bibliogram.i2p],
+					bibliogramLokiRedirectsChecks: [...redirects.bibliogram.loki],
+				},
+				() => resolve()
+			)
 		})
-	})
+	)
 }
 
 let disableInstagram,
diff --git a/src/assets/javascripts/lbry.js b/src/assets/javascripts/lbry.js
index 5e285ada..5819d132 100644
--- a/src/assets/javascripts/lbry.js
+++ b/src/assets/javascripts/lbry.js
@@ -17,21 +17,26 @@ for (let i = 0; i < frontends.length; i++) {
 }
 
 function setRedirects(val) {
-	browser.storage.local.get(["cloudflareBlackList", "offlineBlackList"], r => {
-		redirects.librarian = val
-		librarianNormalRedirectsChecks = [...redirects.librarian.normal]
-		for (const instance of [...r.cloudflareBlackList, ...r.offlineBlackList]) {
-			const a = librarianNormalRedirectsChecks.indexOf(instance)
-			if (a > -1) librarianNormalRedirectsChecks.splice(a, 1)
-		}
-		browser.storage.local.set({
-			lbryTargetsRedirects: redirects,
-			librarianNormalRedirectsChecks,
-			librarianTorRedirectsChecks: [...redirects.librarian.tor],
-			librarianI2pRedirectsChecks: [...redirects.librarian.i2p],
-			librarianLokiRedirectsChecks: [...redirects.librarian.loki],
+	return new Promise(resolve =>
+		browser.storage.local.get(["cloudflareBlackList", "offlineBlackList"], r => {
+			redirects.librarian = val
+			librarianNormalRedirectsChecks = [...redirects.librarian.normal]
+			for (const instance of [...r.cloudflareBlackList, ...r.offlineBlackList]) {
+				const a = librarianNormalRedirectsChecks.indexOf(instance)
+				if (a > -1) librarianNormalRedirectsChecks.splice(a, 1)
+			}
+			browser.storage.local.set(
+				{
+					lbryTargetsRedirects: redirects,
+					librarianNormalRedirectsChecks,
+					librarianTorRedirectsChecks: [...redirects.librarian.tor],
+					librarianI2pRedirectsChecks: [...redirects.librarian.i2p],
+					librarianLokiRedirectsChecks: [...redirects.librarian.loki],
+				},
+				() => resolve()
+			)
 		})
-	})
+	)
 }
 
 let disableLbryTargets,
diff --git a/src/assets/javascripts/maps.js b/src/assets/javascripts/maps.js
index 6e3c9af0..6911c9ba 100644
--- a/src/assets/javascripts/maps.js
+++ b/src/assets/javascripts/maps.js
@@ -21,21 +21,26 @@ redirects.osm = {}
 redirects.osm.normal = ["https://www.openstreetmap.org"]
 
 function setRedirects(val) {
-	browser.storage.local.get(["cloudflareBlackList", "offlineBlackList"], r => {
-		redirects.facil = val
-		facilNormalRedirectsChecks = [...redirects.facil.normal]
-		for (const instance of [...r.cloudflareBlackList, ...r.offlineBlackList]) {
-			const a = facilNormalRedirectsChecks.indexOf(instance)
-			if (a > -1) facilNormalRedirectsChecks.splice(a, 1)
-		}
-		browser.storage.local.set({
-			mapsRedirects: redirects,
-			facilNormalRedirectsChecks,
-			facilTorRedirectsChecks: [...redirects.facil.tor],
-			facilI2pRedirectsChecks: [...redirects.facil.i2p],
-			facilLokiRedirectsChecks: [...redirects.facil.loki],
+	return new Promise(resolve =>
+		browser.storage.local.get(["cloudflareBlackList", "offlineBlackList"], r => {
+			redirects.facil = val
+			facilNormalRedirectsChecks = [...redirects.facil.normal]
+			for (const instance of [...r.cloudflareBlackList, ...r.offlineBlackList]) {
+				const a = facilNormalRedirectsChecks.indexOf(instance)
+				if (a > -1) facilNormalRedirectsChecks.splice(a, 1)
+			}
+			browser.storage.local.set(
+				{
+					mapsRedirects: redirects,
+					facilNormalRedirectsChecks,
+					facilTorRedirectsChecks: [...redirects.facil.tor],
+					facilI2pRedirectsChecks: [...redirects.facil.i2p],
+					facilLokiRedirectsChecks: [...redirects.facil.loki],
+				},
+				() => resolve()
+			)
 		})
-	})
+	)
 }
 
 let disableMaps,
diff --git a/src/assets/javascripts/medium.js b/src/assets/javascripts/medium.js
index e5cb1dc4..386d234c 100644
--- a/src/assets/javascripts/medium.js
+++ b/src/assets/javascripts/medium.js
@@ -40,21 +40,26 @@ for (let i = 0; i < frontends.length; i++) {
 }
 
 function setRedirects(val) {
-	browser.storage.local.get(["cloudflareBlackList", "offlineBlackList"], r => {
-		redirects.scribe = val
-		scribeNormalRedirectsChecks = [...redirects.scribe.normal]
-		for (const instance of [...r.cloudflareBlackList, ...r.offlineBlackList]) {
-			const a = scribeNormalRedirectsChecks.indexOf(instance)
-			if (a > -1) scribeNormalRedirectsChecks.splice(a, 1)
-		}
-		browser.storage.local.set({
-			mediumRedirects: redirects,
-			scribeNormalRedirectsChecks,
-			scribeTorRedirectsChecks: [...redirects.scribe.tor],
-			scribeI2pRedirectsChecks: [...redirects.scribe.i2p],
-			scribeLokiRedirectsChecks: [...redirects.scribe.loki],
+	return new Promise(resolve =>
+		browser.storage.local.get(["cloudflareBlackList", "offlineBlackList"], r => {
+			redirects.scribe = val
+			scribeNormalRedirectsChecks = [...redirects.scribe.normal]
+			for (const instance of [...r.cloudflareBlackList, ...r.offlineBlackList]) {
+				const a = scribeNormalRedirectsChecks.indexOf(instance)
+				if (a > -1) scribeNormalRedirectsChecks.splice(a, 1)
+			}
+			browser.storage.local.set(
+				{
+					mediumRedirects: redirects,
+					scribeNormalRedirectsChecks,
+					scribeTorRedirectsChecks: [...redirects.scribe.tor],
+					scribeI2pRedirectsChecks: [...redirects.scribe.i2p],
+					scribeLokiRedirectsChecks: [...redirects.scribe.loki],
+				},
+				() => resolve()
+			)
 		})
-	})
+	)
 }
 
 let disableMedium,
diff --git a/src/assets/javascripts/peertube.js b/src/assets/javascripts/peertube.js
index 478a18f0..e1ff406f 100644
--- a/src/assets/javascripts/peertube.js
+++ b/src/assets/javascripts/peertube.js
@@ -15,21 +15,26 @@ for (let i = 0; i < frontends.length; i++) {
 }
 
 function setRedirects(val) {
-	browser.storage.local.get(["cloudflareBlackList", "offlineBlackList"], r => {
-		redirects.simpleertube = val
-		simpleertubeNormalRedirectsChecks = [...redirects.simpleertube.normal]
-		for (const instance of [...r.cloudflareBlackList, ...r.offlineBlackList]) {
-			const a = simpleertubeNormalRedirectsChecks.indexOf(instance)
-			if (a > -1) simpleertubeNormalRedirectsChecks.splice(a, 1)
-		}
-		browser.storage.local.set({
-			peertubeRedirects: redirects,
-			simpleertubeNormalRedirectsChecks,
-			simpleertubeTorRedirectsChecks: [...redirects.simpleertube.tor],
-			simpleertubeI2pRedirectsChecks: [...redirects.simpleertube.i2p],
-			simpleertubeLokiRedirectsChecks: [...redirects.simpleertube.loki],
+	return new Promise(resolve =>
+		browser.storage.local.get(["cloudflareBlackList", "offlineBlackList"], r => {
+			redirects.simpleertube = val
+			simpleertubeNormalRedirectsChecks = [...redirects.simpleertube.normal]
+			for (const instance of [...r.cloudflareBlackList, ...r.offlineBlackList]) {
+				const a = simpleertubeNormalRedirectsChecks.indexOf(instance)
+				if (a > -1) simpleertubeNormalRedirectsChecks.splice(a, 1)
+			}
+			browser.storage.local.set(
+				{
+					peertubeRedirects: redirects,
+					simpleertubeNormalRedirectsChecks,
+					simpleertubeTorRedirectsChecks: [...redirects.simpleertube.tor],
+					simpleertubeI2pRedirectsChecks: [...redirects.simpleertube.i2p],
+					simpleertubeLokiRedirectsChecks: [...redirects.simpleertube.loki],
+				},
+				() => resolve()
+			)
 		})
-	})
+	)
 }
 
 let disablePeertubeTargets,
diff --git a/src/assets/javascripts/quora.js b/src/assets/javascripts/quora.js
index 578cfe76..4473c3d7 100644
--- a/src/assets/javascripts/quora.js
+++ b/src/assets/javascripts/quora.js
@@ -17,21 +17,26 @@ for (let i = 0; i < frontends.length; i++) {
 }
 
 function setRedirects(val) {
-	browser.storage.local.get(["cloudflareBlackList", "offlineBlackList"], r => {
-		redirects.quetre = val
-		quetreNormalRedirectsChecks = [...redirects.quetre.normal]
-		for (const instance of [...r.cloudflareBlackList, ...r.offlineBlackList]) {
-			const a = quetreNormalRedirectsChecks.indexOf(instance)
-			if (a > -1) quetreNormalRedirectsChecks.splice(a, 1)
-		}
-		browser.storage.local.set({
-			quoraRedirects: redirects,
-			quetreNormalRedirectsChecks,
-			quetreTorRedirectsChecks: [...redirects.quetre.tor],
-			quetreI2pRedirectsChecks: [...redirects.quetre.i2p],
-			quetreLokiRedirectsChecks: [...redirects.quetre.loki],
+	return new Promise(resolve =>
+		browser.storage.local.get(["cloudflareBlackList", "offlineBlackList"], r => {
+			redirects.quetre = val
+			quetreNormalRedirectsChecks = [...redirects.quetre.normal]
+			for (const instance of [...r.cloudflareBlackList, ...r.offlineBlackList]) {
+				const a = quetreNormalRedirectsChecks.indexOf(instance)
+				if (a > -1) quetreNormalRedirectsChecks.splice(a, 1)
+			}
+			browser.storage.local.set(
+				{
+					quoraRedirects: redirects,
+					quetreNormalRedirectsChecks,
+					quetreTorRedirectsChecks: [...redirects.quetre.tor],
+					quetreI2pRedirectsChecks: [...redirects.quetre.i2p],
+					quetreLokiRedirectsChecks: [...redirects.quetre.loki],
+				},
+				() => resolve()
+			)
 		})
-	})
+	)
 }
 
 let disableQuora,
@@ -95,9 +100,7 @@ function redirect(url, type, initiator, disableOverride) {
 	if ((instancesList.length === 0 && protocolFallback) || protocol == "normal") {
 		instancesList = [...quetreNormalRedirectsChecks, ...quetreNormalCustomRedirects]
 	}
-	if (instancesList.length === 0) {
-		return
-	}
+	if (instancesList.length === 0) return
 
 	const randomInstance = utils.getRandomInstance(instancesList)
 	return `${randomInstance}${url.pathname}`
diff --git a/src/assets/javascripts/reddit.js b/src/assets/javascripts/reddit.js
index ca1993b5..209ee7e3 100644
--- a/src/assets/javascripts/reddit.js
+++ b/src/assets/javascripts/reddit.js
@@ -16,29 +16,34 @@ for (let i = 0; i < frontends.length; i++) {
 }
 
 function setRedirects(val) {
-	browser.storage.local.get(["cloudflareBlackList", "offlineBlackList"], r => {
-		redirects = val
-		libredditNormalRedirectsChecks = [...redirects.libreddit.normal]
-		tedditNormalRedirectsChecks = [...redirects.teddit.normal]
-		for (const instance of [...r.cloudflareBlackList, ...r.offlineBlackList]) {
-			const a = libredditNormalRedirectsChecks.indexOf(instance)
-			if (a > -1) libredditNormalRedirectsChecks.splice(a, 1)
-
-			const b = tedditNormalRedirectsChecks.indexOf(instance)
-			if (b > -1) tedditNormalRedirectsChecks.splice(b, 1)
-		}
-		browser.storage.local.set({
-			redditRedirects: redirects,
-			libredditNormalRedirectsChecks,
-			libredditTorRedirectsChecks: [...redirects.libreddit.tor],
-			libredditI2pRedirectsChecks: [...redirects.libreddit.i2p],
-			libredditLokiRedirectsChecks: [...redirects.libreddit.loki],
-			tedditNormalRedirectsChecks,
-			tedditTorRedirectsChecks: [...redirects.teddit.tor],
-			tedditI2pRedirectsChecks: [...redirects.teddit.i2p],
-			tedditLokiRedirectsChecks: [...redirects.teddit.loki],
+	return new Promise(resolve =>
+		browser.storage.local.get(["cloudflareBlackList", "offlineBlackList"], r => {
+			redirects = val
+			libredditNormalRedirectsChecks = [...redirects.libreddit.normal]
+			tedditNormalRedirectsChecks = [...redirects.teddit.normal]
+			for (const instance of [...r.cloudflareBlackList, ...r.offlineBlackList]) {
+				const a = libredditNormalRedirectsChecks.indexOf(instance)
+				if (a > -1) libredditNormalRedirectsChecks.splice(a, 1)
+
+				const b = tedditNormalRedirectsChecks.indexOf(instance)
+				if (b > -1) tedditNormalRedirectsChecks.splice(b, 1)
+			}
+			browser.storage.local.set(
+				{
+					redditRedirects: redirects,
+					libredditNormalRedirectsChecks,
+					libredditTorRedirectsChecks: [...redirects.libreddit.tor],
+					libredditI2pRedirectsChecks: [...redirects.libreddit.i2p],
+					libredditLokiRedirectsChecks: [...redirects.libreddit.loki],
+					tedditNormalRedirectsChecks,
+					tedditTorRedirectsChecks: [...redirects.teddit.tor],
+					tedditI2pRedirectsChecks: [...redirects.teddit.i2p],
+					tedditLokiRedirectsChecks: [...redirects.teddit.loki],
+				},
+				() => resolve()
+			)
 		})
-	})
+	)
 }
 
 let disableReddit,
@@ -304,7 +309,9 @@ function switchInstance(url, disableOverride) {
 			if ((instancesList.length === 0 && protocolFallback) || protocol == "normal") {
 				instancesList = [...libredditNormalRedirectsChecks, ...libredditNormalCustomRedirects]
 			}
-			if ([...redditRedirects.teddit.normal, ...redditRedirects.teddit.tor].includes(protocolHost)) url.pathname = url.pathname.replace("/pics/w:null_", "/img/")
+			if ([...redditRedirects.teddit.normal, ...redditRedirects.teddit.tor].includes(protocolHost)) {
+				url.pathname = url.pathname.replace("/pics/w:null_", "/img/")
+			}
 		} else if (redditFrontend == "teddit") {
 			if (protocol == "loki") instancesList = [...tedditLokiCustomRedirects]
 			else if (protocol == "i2p") instancesList = [...tedditI2pCustomRedirects]
@@ -312,7 +319,9 @@ function switchInstance(url, disableOverride) {
 			if ((instancesList.length === 0 && protocolFallback) || protocol == "normal") {
 				instancesList = [...tedditNormalRedirectsChecks, ...tedditNormalCustomRedirects]
 			}
-			if ([...redditRedirects.libreddit.normal, ...redditRedirects.libreddit.tor].includes(protocolHost)) url.pathname = url.pathname.replace("/img/", "/pics/w:null_")
+			if ([...redditRedirects.libreddit.normal, ...redditRedirects.libreddit.tor].includes(protocolHost)) {
+				url.pathname = url.pathname.replace("/img/", "/pics/w:null_")
+			}
 		}
 
 		const i = instancesList.indexOf(protocolHost)
@@ -333,9 +342,8 @@ function initDefaults() {
 			.then(response => response.text())
 			.then(async data => {
 				let dataJson = JSON.parse(data)
-				for (let i = 0; i < frontends.length; i++) {
-					redirects[frontends[i]] = dataJson[frontends[i]]
-				}
+				for (const frontend of frontends) redirects[frontend] = dataJson[frontend]
+
 				browser.storage.local.get(["cloudflareBlackList", "offlineBlackList"], async r => {
 					libredditNormalRedirectsChecks = [...redirects.libreddit.normal]
 					tedditNormalRedirectsChecks = [...redirects.teddit.normal]
diff --git a/src/assets/javascripts/reuters.js b/src/assets/javascripts/reuters.js
index 51d16329..16459b4a 100644
--- a/src/assets/javascripts/reuters.js
+++ b/src/assets/javascripts/reuters.js
@@ -17,21 +17,26 @@ for (let i = 0; i < frontends.length; i++) {
 }
 
 function setRedirects(val) {
-	browser.storage.local.get(["cloudflareBlackList", "offlineBlackList"], r => {
-		redirects.neuters = val
-		neutersNormalRedirectsChecks = [...redirects.neuters.normal]
-		for (const instance of [...r.cloudflareBlackList, ...r.offlineBlackList]) {
-			const a = neutersNormalRedirectsChecks.indexOf(instance)
-			if (a > -1) neutersNormalRedirectsChecks.splice(a, 1)
-		}
-		browser.storage.local.set({
-			neutersRedirects: redirects,
-			neutersNormalRedirectsChecks,
-			neutersTorRedirectsChecks: [...redirects.neuters.tor],
-			neutersI2pRedirectsChecks: [...redirects.neuters.i2p],
-			neutersLokiRedirectsChecks: [...redirects.neuters.loki],
+	return new Promise(resolve =>
+		browser.storage.local.get(["cloudflareBlackList", "offlineBlackList"], r => {
+			redirects.neuters = val
+			neutersNormalRedirectsChecks = [...redirects.neuters.normal]
+			for (const instance of [...r.cloudflareBlackList, ...r.offlineBlackList]) {
+				const a = neutersNormalRedirectsChecks.indexOf(instance)
+				if (a > -1) neutersNormalRedirectsChecks.splice(a, 1)
+			}
+			browser.storage.local.set(
+				{
+					neutersRedirects: redirects,
+					neutersNormalRedirectsChecks,
+					neutersTorRedirectsChecks: [...redirects.neuters.tor],
+					neutersI2pRedirectsChecks: [...redirects.neuters.i2p],
+					neutersLokiRedirectsChecks: [...redirects.neuters.loki],
+				},
+				() => resolve()
+			)
 		})
-	})
+	)
 }
 
 let disableReuters,
diff --git a/src/assets/javascripts/search.js b/src/assets/javascripts/search.js
index 8e92e9c6..548e7629 100644
--- a/src/assets/javascripts/search.js
+++ b/src/assets/javascripts/search.js
@@ -17,45 +17,50 @@ for (let i = 0; i < frontends.length; i++) {
 }
 
 function setRedirects(val) {
-	browser.storage.local.get(["cloudflareBlackList", "offlineBlackList"], r => {
-		redirects = val
-		searxNormalRedirectsChecks = [...redirects.searx.normal]
-		searxngNormalRedirectsChecks = [...redirects.searxng.normal]
-		whoogleNormalRedirectsChecks = [...redirects.whoogle.normal]
-		librexNormalRedirectsChecks = [...redirects.librex.normal]
-		for (const instance of [...r.cloudflareBlackList, ...r.offlineBlackList]) {
-			const a = searxNormalRedirectsChecks.indexOf(instance)
-			if (a > -1) searxNormalRedirectsChecks.splice(a, 1)
-
-			const b = searxngNormalRedirectsChecks.indexOf(instance)
-			if (b > -1) searxngNormalRedirectsChecks.splice(b, 1)
-
-			const c = whoogleNormalRedirectsChecks.indexOf(instance)
-			if (c > -1) whoogleNormalRedirectsChecks.splice(c, 1)
-
-			const d = librexNormalRedirectsChecks.indexOf(instance)
-			if (d > -1) librexNormalRedirectsChecks.splice(d, 1)
-		}
-		browser.storage.local.set({
-			searchRedirects: redirects,
-			searxNormalRedirectsChecks,
-			searxTorRedirectsChecks: [...redirects.searx.tor],
-			searxI2pRedirectsChecks: [...redirects.searx.i2p],
-			searxLokiRedirectsChecks: [...redirects.searx.loki],
-			searxngNormalRedirectsChecks,
-			searxngTorRedirectsChecks: [...redirects.searxng.tor],
-			searxngI2pRedirectsChecks: [...redirects.searxng.i2p],
-			searxngLokiRedirectsChecks: [...redirects.searxng.loki],
-			whoogleNormalRedirectsChecks,
-			whoogleTorRedirectsChecks: [...redirects.whoogle.tor],
-			whoogleI2pRedirectsChecks: [...redirects.whoogle.i2p],
-			whoogleLokiRedirectsChecks: [...redirects.whoogle.loki],
-			librexNormalRedirectsChecks,
-			librexTorRedirectsChecks: [...redirects.librex.tor],
-			librexI2pRedirectsChecks: [...redirects.librex.i2p],
-			librexLokiRedirectsChecks: [...redirects.librex.loki],
+	return new Promise(resolve =>
+		browser.storage.local.get(["cloudflareBlackList", "offlineBlackList"], r => {
+			redirects = val
+			searxNormalRedirectsChecks = [...redirects.searx.normal]
+			searxngNormalRedirectsChecks = [...redirects.searxng.normal]
+			whoogleNormalRedirectsChecks = [...redirects.whoogle.normal]
+			librexNormalRedirectsChecks = [...redirects.librex.normal]
+			for (const instance of [...r.cloudflareBlackList, ...r.offlineBlackList]) {
+				const a = searxNormalRedirectsChecks.indexOf(instance)
+				if (a > -1) searxNormalRedirectsChecks.splice(a, 1)
+
+				const b = searxngNormalRedirectsChecks.indexOf(instance)
+				if (b > -1) searxngNormalRedirectsChecks.splice(b, 1)
+
+				const c = whoogleNormalRedirectsChecks.indexOf(instance)
+				if (c > -1) whoogleNormalRedirectsChecks.splice(c, 1)
+
+				const d = librexNormalRedirectsChecks.indexOf(instance)
+				if (d > -1) librexNormalRedirectsChecks.splice(d, 1)
+			}
+			browser.storage.local.set(
+				{
+					searchRedirects: redirects,
+					searxNormalRedirectsChecks,
+					searxTorRedirectsChecks: [...redirects.searx.tor],
+					searxI2pRedirectsChecks: [...redirects.searx.i2p],
+					searxLokiRedirectsChecks: [...redirects.searx.loki],
+					searxngNormalRedirectsChecks,
+					searxngTorRedirectsChecks: [...redirects.searxng.tor],
+					searxngI2pRedirectsChecks: [...redirects.searxng.i2p],
+					searxngLokiRedirectsChecks: [...redirects.searxng.loki],
+					whoogleNormalRedirectsChecks,
+					whoogleTorRedirectsChecks: [...redirects.whoogle.tor],
+					whoogleI2pRedirectsChecks: [...redirects.whoogle.i2p],
+					whoogleLokiRedirectsChecks: [...redirects.whoogle.loki],
+					librexNormalRedirectsChecks,
+					librexTorRedirectsChecks: [...redirects.librex.tor],
+					librexI2pRedirectsChecks: [...redirects.librex.i2p],
+					librexLokiRedirectsChecks: [...redirects.librex.loki],
+				},
+				() => resolve()
+			)
 		})
-	})
+	)
 }
 
 let disableSearch,
diff --git a/src/assets/javascripts/sendTargets.js b/src/assets/javascripts/sendTargets.js
index a52ab6ff..a7b5f20b 100644
--- a/src/assets/javascripts/sendTargets.js
+++ b/src/assets/javascripts/sendTargets.js
@@ -17,21 +17,26 @@ for (let i = 0; i < frontends.length; i++) {
 }
 
 function setRedirects(val) {
-	browser.storage.local.get(["cloudflareBlackList", "offlineBlackList"], r => {
-		redirects.send = val
-		sendNormalRedirectsChecks = [...redirects.send.normal]
-		for (const instance of [...r.cloudflareBlackList, ...r.offlineBlackList]) {
-			const a = sendNormalRedirectsChecks.indexOf(instance)
-			if (a > -1) sendNormalRedirectsChecks.splice(a, 1)
-		}
-		browser.storage.local.set({
-			sendTargetsRedirects: redirects,
-			sendNormalRedirectsChecks,
-			sendTorRedirectsChecks: [...redirects.send.tor],
-			sendI2pRedirectsChecks: [...redirects.send.i2p],
-			sendLokiRedirectsChecks: [...redirects.send.loki],
+	return new Promise(resolve =>
+		browser.storage.local.get(["cloudflareBlackList", "offlineBlackList"], r => {
+			redirects.send = val
+			sendNormalRedirectsChecks = [...redirects.send.normal]
+			for (const instance of [...r.cloudflareBlackList, ...r.offlineBlackList]) {
+				const a = sendNormalRedirectsChecks.indexOf(instance)
+				if (a > -1) sendNormalRedirectsChecks.splice(a, 1)
+			}
+			browser.storage.local.set(
+				{
+					sendTargetsRedirects: redirects,
+					sendNormalRedirectsChecks,
+					sendTorRedirectsChecks: [...redirects.send.tor],
+					sendI2pRedirectsChecks: [...redirects.send.i2p],
+					sendLokiRedirectsChecks: [...redirects.send.loki],
+				},
+				() => resolve()
+			)
 		})
-	})
+	)
 }
 
 let disableSendTarget,
diff --git a/src/assets/javascripts/tiktok.js b/src/assets/javascripts/tiktok.js
index 71f07687..78106a15 100644
--- a/src/assets/javascripts/tiktok.js
+++ b/src/assets/javascripts/tiktok.js
@@ -17,21 +17,26 @@ for (let i = 0; i < frontends.length; i++) {
 }
 
 function setRedirects(val) {
-	browser.storage.local.get(["cloudflareBlackList", "offlineBlackList"], r => {
-		redirects.proxiTok = val
-		proxiTokNormalRedirectsChecks = [...redirects.proxiTok.normal]
-		for (const instance of [...r.cloudflareBlackList, ...r.offlineBlackList]) {
-			const a = proxiTokNormalRedirectsChecks.indexOf(instance)
-			if (a > -1) proxiTokNormalRedirectsChecks.splice(a, 1)
-		}
-		browser.storage.local.set({
-			tiktokRedirects: redirects,
-			proxiTokNormalRedirectsChecks,
-			proxiTokTorRedirectsChecks: [...redirects.proxiTok.tor],
-			proxiTokI2pRedirectsChecks: [...redirects.proxiTok.i2p],
-			proxiTokLokiRedirectsChecks: [...redirects.proxiTok.loki],
+	return new Promise(resolve =>
+		browser.storage.local.get(["cloudflareBlackList", "offlineBlackList"], r => {
+			redirects.proxiTok = val
+			proxiTokNormalRedirectsChecks = [...redirects.proxiTok.normal]
+			for (const instance of [...r.cloudflareBlackList, ...r.offlineBlackList]) {
+				const a = proxiTokNormalRedirectsChecks.indexOf(instance)
+				if (a > -1) proxiTokNormalRedirectsChecks.splice(a, 1)
+			}
+			browser.storage.local.set(
+				{
+					tiktokRedirects: redirects,
+					proxiTokNormalRedirectsChecks,
+					proxiTokTorRedirectsChecks: [...redirects.proxiTok.tor],
+					proxiTokI2pRedirectsChecks: [...redirects.proxiTok.i2p],
+					proxiTokLokiRedirectsChecks: [...redirects.proxiTok.loki],
+				},
+				() => resolve()
+			)
 		})
-	})
+	)
 }
 
 function initProxiTokCookies(test, from) {
diff --git a/src/assets/javascripts/translate/translate.js b/src/assets/javascripts/translate/translate.js
index 993c630f..fa103169 100644
--- a/src/assets/javascripts/translate/translate.js
+++ b/src/assets/javascripts/translate/translate.js
@@ -91,29 +91,34 @@ init()
 browser.storage.onChanged.addListener(init)
 
 function setRedirects(val) {
-	browser.storage.local.get(["cloudflareBlackList", "offlineBlackList"], r => {
-		redirects = val
-		simplyTranslateNormalRedirectsChecks = [...redirects.simplyTranslate.normal]
-		lingvaNormalRedirectsChecks = [...redirects.lingva.normal]
-		for (const instance of [...r.cloudflareBlackList, ...r.offlineBlackList]) {
-			const a = simplyTranslateNormalCustomRedirects.indexOf(instance)
-			if (a > -1) simplyTranslateNormalCustomRedirects.splice(a, 1)
-
-			const b = lingvaNormalRedirectsChecks.indexOf(instance)
-			if (b > -1) lingvaNormalRedirectsChecks.splice(b, 1)
-		}
-		browser.storage.local.set({
-			translateRedirects: redirects,
-			simplyTranslateNormalRedirectsChecks,
-			simplyTranslateTorRedirectsChecks: [...redirects.simplyTranslate.tor],
-			simplyTranslateI2pRedirectsChecks: [...redirects.simplyTranslate.i2p],
-			simplyTranslateLokiRedirectsChecks: [...redirects.simplyTranslate.loki],
-			lingvaNormalRedirectsChecks,
-			lingvaTorRedirectsChecks: [...redirects.lingva.tor],
-			lingvaI2pRedirectsChecks: [...redirects.lingva.i2p],
-			lingvaLokiRedirectsChecks: [...redirects.lingva.loki],
+	return new Promise(resolve =>
+		browser.storage.local.get(["cloudflareBlackList", "offlineBlackList"], r => {
+			redirects = val
+			simplyTranslateNormalRedirectsChecks = [...redirects.simplyTranslate.normal]
+			lingvaNormalRedirectsChecks = [...redirects.lingva.normal]
+			for (const instance of [...r.cloudflareBlackList, ...r.offlineBlackList]) {
+				const a = simplyTranslateNormalCustomRedirects.indexOf(instance)
+				if (a > -1) simplyTranslateNormalCustomRedirects.splice(a, 1)
+
+				const b = lingvaNormalRedirectsChecks.indexOf(instance)
+				if (b > -1) lingvaNormalRedirectsChecks.splice(b, 1)
+			}
+			browser.storage.local.set(
+				{
+					translateRedirects: redirects,
+					simplyTranslateNormalRedirectsChecks,
+					simplyTranslateTorRedirectsChecks: [...redirects.simplyTranslate.tor],
+					simplyTranslateI2pRedirectsChecks: [...redirects.simplyTranslate.i2p],
+					simplyTranslateLokiRedirectsChecks: [...redirects.simplyTranslate.loki],
+					lingvaNormalRedirectsChecks,
+					lingvaTorRedirectsChecks: [...redirects.lingva.tor],
+					lingvaI2pRedirectsChecks: [...redirects.lingva.i2p],
+					lingvaLokiRedirectsChecks: [...redirects.lingva.loki],
+				},
+				() => resolve()
+			)
 		})
-	})
+	)
 }
 
 function copyPasteLingvaLocalStorage(test, url, tabId) {
diff --git a/src/assets/javascripts/twitter.js b/src/assets/javascripts/twitter.js
index 7111ad00..2f68dfc2 100644
--- a/src/assets/javascripts/twitter.js
+++ b/src/assets/javascripts/twitter.js
@@ -17,21 +17,26 @@ for (let i = 0; i < frontends.length; i++) {
 }
 
 function setRedirects(val) {
-	browser.storage.local.get(["cloudflareBlackList", "authenticateBlackList", "offlineBlackList"], r => {
-		redirects.nitter = val
-		nitterNormalRedirectsChecks = [...redirects.nitter.normal]
-		for (const instance of [...r.cloudflareBlackList, ...r.authenticateBlackList, ...r.offlineBlackList]) {
-			let i = nitterNormalRedirectsChecks.indexOf(instance)
-			if (i > -1) nitterNormalRedirectsChecks.splice(i, 1)
-		}
-		browser.storage.local.set({
-			twitterRedirects: redirects,
-			nitterNormalRedirectsChecks,
-			nitterTorRedirectsChecks: [...redirects.nitter.tor],
-			nitterI2pRedirectsChecks: [...redirects.nitter.i2p],
-			nitterLokiRedirectsChecks: [...redirects.nitter.loki],
+	return new Promise(resolve =>
+		browser.storage.local.get(["cloudflareBlackList", "authenticateBlackList", "offlineBlackList"], r => {
+			redirects.nitter = val
+			nitterNormalRedirectsChecks = [...redirects.nitter.normal]
+			for (const instance of [...r.cloudflareBlackList, ...r.authenticateBlackList, ...r.offlineBlackList]) {
+				let i = nitterNormalRedirectsChecks.indexOf(instance)
+				if (i > -1) nitterNormalRedirectsChecks.splice(i, 1)
+			}
+			browser.storage.local.set(
+				{
+					twitterRedirects: redirects,
+					nitterNormalRedirectsChecks,
+					nitterTorRedirectsChecks: [...redirects.nitter.tor],
+					nitterI2pRedirectsChecks: [...redirects.nitter.i2p],
+					nitterLokiRedirectsChecks: [...redirects.nitter.loki],
+				},
+				() => resolve()
+			)
 		})
-	})
+	)
 }
 
 let disableTwitter,
diff --git a/src/assets/javascripts/utils.js b/src/assets/javascripts/utils.js
index 81fb181f..5ca5c30b 100644
--- a/src/assets/javascripts/utils.js
+++ b/src/assets/javascripts/utils.js
@@ -28,26 +28,20 @@ let authenticateBlackList = []
 let offlineBlackList = []
 async function initBlackList() {
 	return new Promise(resolve => {
-	browser.storage.local.get([
-		"cloudflareBlackList",
-		"authenticateBlackList",
-		"offlineBlackList"
-	],
-	r => {
-		cloudflareBlackList = r.cloudflareBlackList
-		authenticateBlackList = r.authenticateBlackList
-		offlineBlackList = r.offlineBlackList
-	})
+		browser.storage.local.get(["cloudflareBlackList", "authenticateBlackList", "offlineBlackList"], r => {
+			cloudflareBlackList = r.cloudflareBlackList
+			authenticateBlackList = r.authenticateBlackList
+			offlineBlackList = r.offlineBlackList
+		})
 		if (cloudflareBlackList.length == 0) {
-		fetch("/instances/blacklist.json")
-			.then(response => response.text())
-			.then(data => {
-				cloudflareBlackList = JSON.parse(data).cloudflare
-				authenticateBlackList = JSON.parse(data).authenticate
-				offlineBlackList = JSON.parse(data).offline
-			})
+			fetch("/instances/blacklist.json")
+				.then(response => response.text())
+				.then(data => {
+					cloudflareBlackList = JSON.parse(data).cloudflare
+					authenticateBlackList = JSON.parse(data).authenticate
+					offlineBlackList = JSON.parse(data).offline
+				})
 		}
-		console.log(offlineBlackList)
 		resolve()
 	})
 }
@@ -72,11 +66,9 @@ function updateBlackList() {
 		browser.storage.local.set({
 			cloudflareBlackList: blackList.cloudflare,
 			authenticateBlackList: blackList.authenticate,
-			offlineBlackList: blackList.offline
+			offlineBlackList: blackList.offline,
 		})
-		cloudflareBlackList = blackList.cloudflare,
-		authenticateBlackList = blackList.authenticate,
-		offlineBlackList = blackList.offline
+		;(cloudflareBlackList = blackList.cloudflare), (authenticateBlackList = blackList.authenticate), (offlineBlackList = blackList.offline)
 		resolve()
 	})
 }
@@ -100,42 +92,42 @@ function updateInstances() {
 		await updateBlackList()
 		const instances = JSON.parse(http.responseText)
 
-		youtubeHelper.setRedirects({
+		await youtubeHelper.setRedirects({
 			invidious: instances.invidious,
 			piped: instances.piped,
 			pipedMaterial: instances.pipedMaterial,
 			cloudtube: instances.cloudtube,
 		})
-		twitterHelper.setRedirects(instances.nitter)
-		instagramHelper.setRedirects(instances.bibliogram)
-		redditHelper.setRedirects({
+		await twitterHelper.setRedirects(instances.nitter)
+		await instagramHelper.setRedirects(instances.bibliogram)
+		await redditHelper.setRedirects({
 			libreddit: instances.libreddit,
 			teddit: instances.teddit,
 		})
-		translateHelper.setRedirects({
+		await translateHelper.setRedirects({
 			simplyTranslate: instances.simplyTranslate,
 			lingva: instances.lingva,
 		})
-		searchHelper.setRedirects({
+		await searchHelper.setRedirects({
 			searx: instances.searx,
 			searxng: instances.searxng,
 			whoogle: instances.whoogle,
 			librex: instances.librex,
 		})
-		wikipediaHelper.setRedirects(instances.wikiless)
-		mediumHelper.setRedirects(instances.scribe)
-		quoraHelper.setRedirects(instances.quetre)
-		libremdbHelper.setRedirects(instances.libremdb)
-		sendTargetsHelper.setRedirects(instances.send)
-		tiktokHelper.setRedirects(instances.proxiTok)
-		lbryHelper.setRedirects(instances.librarian)
-		reutersHelper.setRedirects(instances.neuters)
-		youtubeMusicHelper.setRedirects({
+		await wikipediaHelper.setRedirects(instances.wikiless)
+		await mediumHelper.setRedirects(instances.scribe)
+		await quoraHelper.setRedirects(instances.quetre)
+		await libremdbHelper.setRedirects(instances.libremdb)
+		await sendTargetsHelper.setRedirects(instances.send)
+		await tiktokHelper.setRedirects(instances.proxiTok)
+		await lbryHelper.setRedirects(instances.librarian)
+		await reutersHelper.setRedirects(instances.neuters)
+		await youtubeMusicHelper.setRedirects({
 			beatbump: instances.beatbump,
 			hyperpipe: instances.hyperpipe,
 		})
-		mapsHelper.setRedirects(instances.facil)
-		peertubeHelper.setRedirects(instances.simpleertube)
+		await mapsHelper.setRedirects(instances.facil)
+		await peertubeHelper.setRedirects(instances.simpleertube)
 
 		console.info("Successfully updated Instances")
 		resolve(true)
@@ -553,7 +545,7 @@ function latency(name, frontend, document, location) {
 	latencyElement.addEventListener("click", async () => {
 		let reloadWindow = () => location.reload()
 		latencyElement.addEventListener("click", reloadWindow)
-		let key = `${name} Redirects`
+		let key = `${name}Redirects`
 		browser.storage.local.get(key, r => {
 			let redirects = r[key]
 			const oldHtml = latencyLabel.innerHTML
diff --git a/src/assets/javascripts/wikipedia.js b/src/assets/javascripts/wikipedia.js
index 2d0f75a1..1e06ed44 100644
--- a/src/assets/javascripts/wikipedia.js
+++ b/src/assets/javascripts/wikipedia.js
@@ -17,21 +17,26 @@ for (let i = 0; i < frontends.length; i++) {
 }
 
 function setRedirects(val) {
-	browser.storage.local.get(["cloudflareBlackList", "offlineBlackList"], r => {
-		redirects.wikiless = val
-		wikilessNormalRedirectsChecks = [...redirects.wikiless.normal]
-		for (const instance of [...r.cloudflareBlackList, ...r.offlineBlackList]) {
-			const a = wikilessNormalRedirectsChecks.indexOf(instance)
-			if (a > -1) wikilessNormalRedirectsChecks.splice(a, 1)
-		}
-		browser.storage.local.set({
-			wikipediaRedirects: redirects,
-			wikilessNormalRedirectsChecks,
-			wikilessTorRedirectsChecks: [...redirects.wikiless.tor],
-			wikilessI2pRedirectsChecks: [...redirects.wikiless.i2p],
-			wikilessLokiRedirectsChecks: [...redirects.wikiless.loki],
+	return new Promise(resolve =>
+		browser.storage.local.get(["cloudflareBlackList", "offlineBlackList"], r => {
+			redirects.wikiless = val
+			wikilessNormalRedirectsChecks = [...redirects.wikiless.normal]
+			for (const instance of [...r.cloudflareBlackList, ...r.offlineBlackList]) {
+				const a = wikilessNormalRedirectsChecks.indexOf(instance)
+				if (a > -1) wikilessNormalRedirectsChecks.splice(a, 1)
+			}
+			browser.storage.local.set(
+				{
+					wikipediaRedirects: redirects,
+					wikilessNormalRedirectsChecks,
+					wikilessTorRedirectsChecks: [...redirects.wikiless.tor],
+					wikilessI2pRedirectsChecks: [...redirects.wikiless.i2p],
+					wikilessLokiRedirectsChecks: [...redirects.wikiless.loki],
+				},
+				() => resolve()
+			)
 		})
-	})
+	)
 }
 
 let disableWikipedia,
diff --git a/src/assets/javascripts/youtube/youtube.js b/src/assets/javascripts/youtube/youtube.js
index 32f06b9c..bdb9449a 100644
--- a/src/assets/javascripts/youtube/youtube.js
+++ b/src/assets/javascripts/youtube/youtube.js
@@ -30,45 +30,50 @@ for (let i = 0; i < frontends.length; i++) {
 }
 
 function setRedirects(val) {
-	browser.storage.local.get(["cloudflareBlackList", "offlineBlackList"], r => {
-		redirects = val
-		invidiousNormalRedirectsChecks = [...redirects.invidious.normal]
-		pipedNormalRedirectsChecks = [...redirects.piped.normal]
-		pipedMaterialNormalRedirectsChecks = [...redirects.pipedMaterial.normal]
-		cloudtubeNormalRedirectsChecks = [...redirects.cloudtube.normal]
-		for (const instance of [...r.cloudflareBlackList, ...r.offlineBlackList]) {
-			const a = invidiousNormalRedirectsChecks.indexOf(instance)
-			if (a > -1) invidiousNormalRedirectsChecks.splice(a, 1)
-
-			const b = pipedNormalRedirectsChecks.indexOf(instance)
-			if (b > -1) pipedNormalRedirectsChecks.splice(b, 1)
-
-			const c = pipedMaterialNormalRedirectsChecks.indexOf(instance)
-			if (c > -1) pipedMaterialNormalRedirectsChecks.splice(c, 1)
-
-			const d = cloudtubeNormalRedirectsChecks.indexOf(instance)
-			if (c > -1) cloudtubeNormalRedirectsChecks.splice(d, 1)
-		}
-		browser.storage.local.set({
-			youtubeRedirects: redirects,
-			invidiousNormalRedirectsChecks,
-			invidiousTorRedirectsChecks: [...redirects.invidious.tor],
-			invidiousI2pRedirectsChecks: [...redirects.invidious.i2p],
-			invidiousLokiRedirectsChecks: [...redirects.invidious.loki],
-			pipedNormalRedirectsChecks,
-			pipedTorRedirectsChecks: [...redirects.piped.tor],
-			pipedI2pRedirectsChecks: [...redirects.piped.i2p],
-			pipedLokiRedirectsChecks: [...redirects.piped.loki],
-			pipedMaterialNormalRedirectsChecks,
-			pipedMaterialTorRedirectsChecks: [...redirects.pipedMaterial.tor],
-			pipedMaterialI2pRedirectsChecks: [...redirects.pipedMaterial.i2p],
-			pipedMaterialLokiRedirectsChecks: [...redirects.pipedMaterial.loki],
-			cloudtubeNormalRedirectsChecks,
-			cloudtubeTorRedirectsChecks: [...redirects.cloudtube.tor],
-			cloudtubeI2pRedirectsChecks: [...redirects.cloudtube.i2p],
-			cloudtubeLokiRedirectsChecks: [...redirects.cloudtube.loki],
+	return new Promise(resolve =>
+		browser.storage.local.get(["cloudflareBlackList", "offlineBlackList"], r => {
+			redirects = val
+			invidiousNormalRedirectsChecks = [...redirects.invidious.normal]
+			pipedNormalRedirectsChecks = [...redirects.piped.normal]
+			pipedMaterialNormalRedirectsChecks = [...redirects.pipedMaterial.normal]
+			cloudtubeNormalRedirectsChecks = [...redirects.cloudtube.normal]
+			for (const instance of [...r.cloudflareBlackList, ...r.offlineBlackList]) {
+				const a = invidiousNormalRedirectsChecks.indexOf(instance)
+				if (a > -1) invidiousNormalRedirectsChecks.splice(a, 1)
+
+				const b = pipedNormalRedirectsChecks.indexOf(instance)
+				if (b > -1) pipedNormalRedirectsChecks.splice(b, 1)
+
+				const c = pipedMaterialNormalRedirectsChecks.indexOf(instance)
+				if (c > -1) pipedMaterialNormalRedirectsChecks.splice(c, 1)
+
+				const d = cloudtubeNormalRedirectsChecks.indexOf(instance)
+				if (c > -1) cloudtubeNormalRedirectsChecks.splice(d, 1)
+			}
+			browser.storage.local.set(
+				{
+					youtubeRedirects: redirects,
+					invidiousNormalRedirectsChecks,
+					invidiousTorRedirectsChecks: [...redirects.invidious.tor],
+					invidiousI2pRedirectsChecks: [...redirects.invidious.i2p],
+					invidiousLokiRedirectsChecks: [...redirects.invidious.loki],
+					pipedNormalRedirectsChecks,
+					pipedTorRedirectsChecks: [...redirects.piped.tor],
+					pipedI2pRedirectsChecks: [...redirects.piped.i2p],
+					pipedLokiRedirectsChecks: [...redirects.piped.loki],
+					pipedMaterialNormalRedirectsChecks,
+					pipedMaterialTorRedirectsChecks: [...redirects.pipedMaterial.tor],
+					pipedMaterialI2pRedirectsChecks: [...redirects.pipedMaterial.i2p],
+					pipedMaterialLokiRedirectsChecks: [...redirects.pipedMaterial.loki],
+					cloudtubeNormalRedirectsChecks,
+					cloudtubeTorRedirectsChecks: [...redirects.cloudtube.tor],
+					cloudtubeI2pRedirectsChecks: [...redirects.cloudtube.i2p],
+					cloudtubeLokiRedirectsChecks: [...redirects.cloudtube.loki],
+				},
+				() => resolve()
+			)
 		})
-	})
+	)
 }
 
 let disableYoutube,
diff --git a/src/assets/javascripts/youtubeMusic.js b/src/assets/javascripts/youtubeMusic.js
index 797da4d5..f51b4ca9 100644
--- a/src/assets/javascripts/youtubeMusic.js
+++ b/src/assets/javascripts/youtubeMusic.js
@@ -19,29 +19,34 @@ for (let i = 0; i < frontends.length; i++) {
 }
 
 function setRedirects(val) {
-	browser.storage.local.get(["cloudflareBlackList", "offlineBlackList"], r => {
-		redirects = val
-		beatbumpNormalRedirectsChecks = [...redirects.beatbump.normal]
-		hyperpipeNormalRedirectsChecks = [...redirects.hyperpipe.normal]
-		for (const instance of [...r.cloudflareBlackList, ...r.offlineBlackList]) {
-			const a = beatbumpNormalRedirectsChecks.indexOf(instance)
-			if (a > -1) beatbumpNormalRedirectsChecks.splice(a, 1)
-
-			const b = hyperpipeNormalRedirectsChecks.indexOf(instance)
-			if (b > -1) hyperpipeNormalRedirectsChecks.splice(b, 1)
-		}
-		browser.storage.local.set({
-			youtubeMusicRedirects: redirects,
-			beatbumpNormalRedirectsChecks,
-			beatbumpTorRedirectsChecks: [...redirects.beatbump.tor],
-			beatbumpI2pRedirectsChecks: [...redirects.beatbump.i2p],
-			beatbumpLokiRedirectsChecks: [...redirects.beatbump.loki],
-			hyperpipeNormalRedirectsChecks,
-			hyperpipeTorRedirectsChecks: [...redirects.hyperpipe.tor],
-			hyperpipeI2pRedirectsChecks: [...redirects.hyperpipe.i2p],
-			hyperpipeLokiRedirectsChecks: [...redirects.hyperpipe.loki],
+	return new Promise(resolve =>
+		browser.storage.local.get(["cloudflareBlackList", "offlineBlackList"], r => {
+			redirects = val
+			beatbumpNormalRedirectsChecks = [...redirects.beatbump.normal]
+			hyperpipeNormalRedirectsChecks = [...redirects.hyperpipe.normal]
+			for (const instance of [...r.cloudflareBlackList, ...r.offlineBlackList]) {
+				const a = beatbumpNormalRedirectsChecks.indexOf(instance)
+				if (a > -1) beatbumpNormalRedirectsChecks.splice(a, 1)
+
+				const b = hyperpipeNormalRedirectsChecks.indexOf(instance)
+				if (b > -1) hyperpipeNormalRedirectsChecks.splice(b, 1)
+			}
+			browser.storage.local.set(
+				{
+					youtubeMusicRedirects: redirects,
+					beatbumpNormalRedirectsChecks,
+					beatbumpTorRedirectsChecks: [...redirects.beatbump.tor],
+					beatbumpI2pRedirectsChecks: [...redirects.beatbump.i2p],
+					beatbumpLokiRedirectsChecks: [...redirects.beatbump.loki],
+					hyperpipeNormalRedirectsChecks,
+					hyperpipeTorRedirectsChecks: [...redirects.hyperpipe.tor],
+					hyperpipeI2pRedirectsChecks: [...redirects.hyperpipe.i2p],
+					hyperpipeLokiRedirectsChecks: [...redirects.hyperpipe.loki],
+				},
+				() => resolve()
+			)
 		})
-	})
+	)
 }
 
 let disableYoutubeMusic,