aboutsummaryrefslogtreecommitdiffstats
path: root/src/pages/background
diff options
context:
space:
mode:
Diffstat (limited to 'src/pages/background')
-rw-r--r--src/pages/background/background.js46
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]