about summary refs log tree commit diff stats
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]