about summary refs log tree commit diff stats
path: root/src
diff options
context:
space:
mode:
authorManeraKai <manerakai@protonmail.com>2022-11-12 11:54:34 +0300
committerManeraKai <manerakai@protonmail.com>2022-11-12 11:54:34 +0300
commit72ee64fdb982b30acdbeba0d4e8dad8f7749b5fd (patch)
tree07b82384c25e67072e65d6e00e3e576caeff7edf /src
parentfixed medium archive links redirecting https://github.com/libredirect/libredi... (diff)
downloadlibredirect-72ee64fdb982b30acdbeba0d4e8dad8f7749b5fd.zip
Fixed <img> not redirecting https://github.com/libredirect/libredirect/issues/525
Diffstat (limited to 'src')
-rw-r--r--src/assets/javascripts/services.js14
-rw-r--r--src/config/config.json1
-rw-r--r--src/pages/background/background.js1
-rw-r--r--src/pages/options/widgets/services.js34
4 files changed, 30 insertions, 20 deletions
diff --git a/src/assets/javascripts/services.js b/src/assets/javascripts/services.js
index bcf35822..9d80e17a 100644
--- a/src/assets/javascripts/services.js
+++ b/src/assets/javascripts/services.js
@@ -59,15 +59,17 @@ function regexArray(service, url, config) {
 }
 
 function redirect(url, type, initiator, forceRedirection) {
-	if (type != "main_frame" && type != "sub_frame") return
+	if (type != "main_frame" && type != "sub_frame" && type != "image") return
 	let randomInstance
 	let frontend
 	for (const service in config.services) {
+
 		if (!forceRedirection && !options[service].enabled) continue
+
 		if (config.services[service].embeddable && type != options[service].redirectType && options[service].redirectType != "both") continue
 		if (!config.services[service].embeddable && type != "main_frame") continue
-		// let targets = new RegExp(config.services[service].targets.join("|"), "i")
 
+		// let targets = new RegExp(config.services[service].targets.join("|"), "i")
 		if (!regexArray(service, url, config)) continue
 		// if (initiator) {
 		// 	console.log(initiator.host)
@@ -75,11 +77,17 @@ function redirect(url, type, initiator, forceRedirection) {
 		// 	//if (all(service, null, options, config, redirects).includes(initiator.origin) && reverse(initiator) == url) return "BYPASSTAB"
 		// }
 
+
 		if (Object.keys(config.services[service].frontends).length > 1) {
-			if (type == "sub_frame" && config.services[service].embeddable && !config.services[service].frontends[options[service].frontend].embeddable) frontend = options[service].embedFrontend
+			if (
+				type == "sub_frame" && config.services[service].embeddable
+				&&
+				!config.services[service].frontends[options[service].frontend].embeddable
+			) frontend = options[service].embedFrontend
 			else frontend = options[service].frontend
 		} else frontend = Object.keys(config.services[service].frontends)[0]
 
+
 		if (config.services[service].frontends[frontend].instanceList) {
 			let instanceList = [...options[frontend][options.network].enabled, ...options[frontend][options.network].custom]
 			if (instanceList.length === 0 && options.networkFallback) instanceList = [...options[frontend].clearnet.enabled, ...options[frontend].clearnet.custom]
diff --git a/src/config/config.json b/src/config/config.json
index 7b81d9f2..8b99423a 100644
--- a/src/config/config.json
+++ b/src/config/config.json
@@ -309,7 +309,6 @@
 			"frontends": {
 				"rimgo": {
 					"name": "rimgo",
-					"embeddable": true,
 					"instanceList": true
 				}
 			},
diff --git a/src/pages/background/background.js b/src/pages/background/background.js
index 71fff06c..3a695048 100644
--- a/src/pages/background/background.js
+++ b/src/pages/background/background.js
@@ -56,7 +56,6 @@ browser.webRequest.onBeforeRequest.addListener(
 		} catch {
 			return null
 		}
-
 		if (tabIdRedirects[details.tabId] == false) return null
 		let newUrl = servicesHelper.redirect(url, details.type, initiator, tabIdRedirects[details.tabId])
 
diff --git a/src/pages/options/widgets/services.js b/src/pages/options/widgets/services.js
index 37385faa..12904130 100644
--- a/src/pages/options/widgets/services.js
+++ b/src/pages/options/widgets/services.js
@@ -31,28 +31,32 @@ function changeFrontendsSettings(service) {
 	for (const frontend in config.services[service].frontends) {
 		if (config.services[service].frontends[frontend].instanceList) {
 			const frontendDiv = document.getElementById(frontend)
-			if (frontend == divs[service].frontend.value) {
-				frontendDiv.style.display = "block"
-			} else {
-				frontendDiv.style.display = "none"
+			if (typeof divs[service].frontend !== "undefined") {
+				if (frontend == divs[service].frontend.value) {
+					frontendDiv.style.display = "block"
+				} else {
+					frontendDiv.style.display = "none"
+				}
 			}
 		}
 	}
 
 	if (config.services[service].embeddable) {
-		if (!config.services[service].frontends[divs[service].frontend.value].embeddable) {
-			divs[service].embedFrontend.disabled = false
-			for (const frontend in config.services[service].frontends) {
-				if (config.services[service].frontends[frontend].embeddable) {
-					const frontendDiv = document.getElementById(frontend)
-					if (frontend == divs[service].embedFrontend.value) {
-						frontendDiv.style.display = "block"
-					} else {
-						frontendDiv.style.display = "none"
+		if (typeof divs[service].frontend !== "undefined") {
+			if (!config.services[service].frontends[divs[service].frontend.value].embeddable) {
+				divs[service].embedFrontend.disabled = false
+				for (const frontend in config.services[service].frontends) {
+					if (config.services[service].frontends[frontend].embeddable) {
+						const frontendDiv = document.getElementById(frontend)
+						if (frontend == divs[service].embedFrontend.value) {
+							frontendDiv.style.display = "block"
+						} else {
+							frontendDiv.style.display = "none"
+						}
 					}
 				}
-			}
-		} else if (Object.keys(config.services[service].frontends).length > 1) divs[service].embedFrontend.disabled = true
+			} else if (Object.keys(config.services[service].frontends).length > 1) divs[service].embedFrontend.disabled = true
+		}
 	}
 }