Skip to content

Commit

Permalink
Fixed <img> not redirecting libredirect/browser_extension#525
Browse files Browse the repository at this point in the history
  • Loading branch information
RustomDuck committed Nov 12, 2022
1 parent d7bb7df commit 7afbd47
Show file tree
Hide file tree
Showing 6 changed files with 31 additions and 41 deletions.
9 changes: 0 additions & 9 deletions .prettierignore

This file was deleted.

13 changes: 1 addition & 12 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -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",
Expand All @@ -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",
Expand Down
14 changes: 11 additions & 3 deletions src/assets/javascripts/services.js
Original file line number Diff line number Diff line change
Expand Up @@ -59,27 +59,35 @@ 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)
// if (targets.test(initiator.host)) continue
// //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]
Expand Down
1 change: 0 additions & 1 deletion src/config/config.json
Original file line number Diff line number Diff line change
Expand Up @@ -309,7 +309,6 @@
"frontends": {
"rimgo": {
"name": "rimgo",
"embeddable": true,
"instanceList": true
}
},
Expand Down
1 change: 0 additions & 1 deletion src/pages/background/background.js
Original file line number Diff line number Diff line change
Expand Up @@ -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])

Expand Down
34 changes: 19 additions & 15 deletions src/pages/options/widgets/services.js
Original file line number Diff line number Diff line change
Expand Up @@ -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
}
}
}

Expand Down

0 comments on commit 7afbd47

Please sign in to comment.