diff options
author | Benedikt Peetz <benedikt.peetz@b-peetz.de> | 2025-01-29 17:19:04 +0100 |
---|---|---|
committer | Benedikt Peetz <benedikt.peetz@b-peetz.de> | 2025-01-29 17:19:04 +0100 |
commit | 0cfcd80f3a715a77821aa83e0c89245ec2f53eec (patch) | |
tree | aec2aea5c24c15f287bc05e695b60d45a26e6dc8 /src/pages/background/background.js | |
parent | chore(merge): Merge remote-tracking branch 'origin/master' (diff) | |
parent | Added Structables, and made it the default https://codeberg.org/LibRedirect/b... (diff) | |
download | libredirect-0cfcd80f3a715a77821aa83e0c89245ec2f53eec.zip |
Merge remote-tracking branch 'origin/master'
Diffstat (limited to 'src/pages/background/background.js')
-rw-r--r-- | src/pages/background/background.js | 46 |
1 files changed, 12 insertions, 34 deletions
diff --git a/src/pages/background/background.js b/src/pages/background/background.js index 1fcba190..49bae0bf 100644 --- a/src/pages/background/background.js +++ b/src/pages/background/background.js @@ -53,6 +53,7 @@ browser.webRequest.onBeforeRequest.addListener( let documentUrl try { if (details.originUrl) originUrl = new URL(details.originUrl) + else if (details.initiator) originUrl = new URL(details.initiator) if (details.documentUrl) documentUrl = new URL(details.documentUrl) } catch { return null @@ -71,6 +72,7 @@ browser.webRequest.onBeforeRequest.addListener( (newUrl && newUrl.startsWith("https://no-instance.libredirect.invalid")) || (!newUrl && url.href.startsWith("https://no-instance.libredirect.invalid")) ) { + if (details.type != "main_frame") return null newUrl = newUrl ? new URL(newUrl) : url const frontend = newUrl.searchParams.get("frontend") const oldUrl = new URL(newUrl.searchParams.get("url")) @@ -85,17 +87,16 @@ browser.webRequest.onBeforeRequest.addListener( return { cancel: true } } - if (!newUrl) { - if (url.href.match(/^https?:\/{2}(.*\.)?libredirect\.invalid.*/)) { - const params = new URLSearchParams({ - message: "disabled", - url: url.href, - }) - browser.tabs.update({ - url: browser.runtime.getURL(`/pages/messages/index.html?${params.toString()}`), - }) - return { cancel: true } - } + if (!newUrl && url.href.match(/^https?:\/{2}(.*\.)?libredirect\.invalid.*/)) { + if (details.type != "main_frame") return null + const params = new URLSearchParams({ + message: "disabled", + url: url.href, + }) + browser.tabs.update({ + url: browser.runtime.getURL(`/pages/messages/index.html?${params.toString()}`), + }) + return { cancel: true } } if (newUrl === "CANCEL") { @@ -117,29 +118,6 @@ browser.webRequest.onBeforeRequest.addListener( ["blocking"] ) -browser.webRequest.onHeadersReceived.addListener( - details => { - if (details.statusCode >= 501 || details.statusCode == 429 || details.statusCode == 403) { - const url = new URL(details.url) - const { service, frontend } = servicesHelper.computeFrontend(url) - if (!service) return - const params = new URLSearchParams({ - message: "server_error", - code: details.statusCode, - url: url.href, - frontend: frontend, - service: service, - }) - setTimeout(() => { - browser.tabs.update({ - url: browser.runtime.getURL(`/pages/messages/index.html?${params.toString()}`), - }) - }, 2000) - } - }, - { urls: ["<all_urls>"] } -) - browser.tabs.onRemoved.addListener(tabId => { if (tabIdRedirects[tabId] != undefined) { delete tabIdRedirects[tabId] |