Fixed <img> not redirecting https://github.com/libredirect/libredirect/issues/525
This commit is contained in:
parent
f47f9f51ea
commit
72ee64fdb9
|
@ -1,9 +0,0 @@
|
|||
web-ext-artifacts/
|
||||
.DS_Store
|
||||
nod
|
||||
node_modules
|
||||
package-lock.json
|
||||
src/instances/data.json
|
||||
src/instances/blacklist.json
|
||||
src/_locales/
|
||||
.vscode
|
13
package.json
13
package.json
|
@ -10,7 +10,7 @@
|
|||
"build": "web-ext build",
|
||||
"test": "web-ext lint",
|
||||
"instances": "python3 src/instances/get_instances.py && git update-index --assume-unchanged src/instances/blacklist.json src/instances/data.json",
|
||||
"ejs": "ejs src/pages/options/index.ejs -f src/config/config.json -o src/pages/options/index.html && ejs src/pages/popup/popup.ejs -f src/config/config.json -o src/pages/popup/popup.html && prettier -w src/pages/options/index.html src/pages/popup/popup.html"
|
||||
"ejs": "ejs src/pages/options/index.ejs -f src/config/config.json -o src/pages/options/index.html && ejs src/pages/popup/popup.ejs -f src/config/config.json -o src/pages/popup/popup.html"
|
||||
},
|
||||
"repository": {
|
||||
"type": "git",
|
||||
|
@ -24,19 +24,8 @@
|
|||
"homepage": "https://libredirect.codeberg.page",
|
||||
"devDependencies": {
|
||||
"ejs": "^3.1.8",
|
||||
"prettier": "^2.7.1",
|
||||
"web-ext": "^7.2.0"
|
||||
},
|
||||
"prettier": {
|
||||
"semi": false,
|
||||
"tabWidth": 2,
|
||||
"useTabs": true,
|
||||
"arrowParens": "avoid",
|
||||
"printWidth": 200,
|
||||
"bracketSameLine": true,
|
||||
"endOfLine": "lf",
|
||||
"singleQuote": false
|
||||
},
|
||||
"webExt": {
|
||||
"ignoreFiles": [
|
||||
"instances/get_instances.py",
|
||||
|
|
|
@ -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]
|
||||
|
|
|
@ -309,7 +309,6 @@
|
|||
"frontends": {
|
||||
"rimgo": {
|
||||
"name": "rimgo",
|
||||
"embeddable": true,
|
||||
"instanceList": true
|
||||
}
|
||||
},
|
||||
|
|
|
@ -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])
|
||||
|
||||
|
|
|
@ -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
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue