diff options
author | ManeraKai <manerakai@protonmail.com> | 2024-09-03 21:57:18 +0300 |
---|---|---|
committer | ManeraKai <manerakai@protonmail.com> | 2024-09-03 21:57:18 +0300 |
commit | 51686a395eee7e3d325a86ee69b19f0f732bd547 (patch) | |
tree | 3704265b0360c4d9b4c71b35f1c8cec3a11ff01b /src/pages/background | |
parent | Translated using Weblate (Russian) (diff) | |
download | libredirect-51686a395eee7e3d325a86ee69b19f0f732bd547.zip |
Fixing bugs
Diffstat (limited to 'src/pages/background')
-rw-r--r-- | src/pages/background/background.js | 34 |
1 files changed, 25 insertions, 9 deletions
diff --git a/src/pages/background/background.js b/src/pages/background/background.js index 0d558b01..1fcba190 100644 --- a/src/pages/background/background.js +++ b/src/pages/background/background.js @@ -67,16 +67,22 @@ browser.webRequest.onBeforeRequest.addListener( tabIdRedirects[details.tabId] ) - if (newUrl && newUrl.startsWith("https://no-instance.libredirect.invalid")) { - const url = new URL(newUrl) - const frontend = url.searchParams.get("frontend") - const oldUrl = new URL(url.searchParams.get("url")) + if ( + (newUrl && newUrl.startsWith("https://no-instance.libredirect.invalid")) || + (!newUrl && url.href.startsWith("https://no-instance.libredirect.invalid")) + ) { + newUrl = newUrl ? new URL(newUrl) : url + const frontend = newUrl.searchParams.get("frontend") + const oldUrl = new URL(newUrl.searchParams.get("url")) const params = new URLSearchParams({ message: "no_instance", url: oldUrl, frontend: frontend, }) - newUrl = browser.runtime.getURL(`/pages/messages/index.html?${params.toString()}`) + browser.tabs.update({ + url: browser.runtime.getURL(`/pages/messages/index.html?${params.toString()}`), + }) + return { cancel: true } } if (!newUrl) { @@ -85,7 +91,10 @@ browser.webRequest.onBeforeRequest.addListener( message: "disabled", url: url.href, }) - newUrl = browser.runtime.getURL(`/pages/messages/index.html?${params.toString()}`) + browser.tabs.update({ + url: browser.runtime.getURL(`/pages/messages/index.html?${params.toString()}`), + }) + return { cancel: true } } } @@ -121,9 +130,11 @@ browser.webRequest.onHeadersReceived.addListener( frontend: frontend, service: service, }) - browser.tabs.update({ - url: browser.runtime.getURL(`/pages/messages/index.html?${params.toString()}`), - }) + setTimeout(() => { + browser.tabs.update({ + url: browser.runtime.getURL(`/pages/messages/index.html?${params.toString()}`), + }) + }, 2000) } }, { urls: ["<all_urls>"] } @@ -365,3 +376,8 @@ browser.runtime.getPlatformInfo(r => { }) } }) + +browser.runtime.onMessage.addListener(r => { + if (r.message == "reverse") tabIdRedirects[r.tabId] = false + else if (r.message == "redirect") tabIdRedirects[r.tabId] = true +}) |