aboutsummaryrefslogtreecommitdiffstats
path: root/src/pages/background
diff options
context:
space:
mode:
authorManeraKai <manerakai@protonmail.com>2023-01-22 20:44:36 +0300
committerManeraKai <manerakai@protonmail.com>2023-01-22 20:44:40 +0300
commit610d2da76111154cf61011bb92acb0b5b56d5a40 (patch)
tree82a2cdf6c313a56778b41a8b610a21b369dee6c6 /src/pages/background
parentAdded plus button next to public instances (diff)
downloadlibredirect-610d2da76111154cf61011bb92acb0b5b56d5a40.zip
Fixed bugs
Diffstat (limited to 'src/pages/background')
-rw-r--r--src/pages/background/background.js101
1 files changed, 40 insertions, 61 deletions
diff --git a/src/pages/background/background.js b/src/pages/background/background.js
index 5c6ec521..dbc788f2 100644
--- a/src/pages/background/background.js
+++ b/src/pages/background/background.js
@@ -18,8 +18,8 @@ browser.runtime.onInstalled.addListener(async details => {
await servicesHelper.upgradeOptions()
// await servicesHelper.processUpdate()
}
+ browser.runtime.openOptionsPage()
}
- browser.runtime.openOptionsPage()
})
let tabIdRedirects = {}
@@ -41,7 +41,12 @@ browser.webRequest.onBeforeRequest.addListener(
if (details.frameAncestors && details.frameAncestors.length > 0 && generalHelper.isException(new URL(details.frameAncestors[0].url))) newUrl = null
- if (generalHelper.isException(url)) newUrl = "BYPASSTAB"
+ if (generalHelper.isException(url)) {
+ if (details.type == "main_frame")
+ newUrl = "BYPASSTAB"
+ else
+ return null
+ }
if (newUrl) {
if (newUrl === "CANCEL") {
@@ -69,8 +74,11 @@ browser.tabs.onRemoved.addListener(tabId => {
}
})
-browser.commands.onCommand.addListener(command => {
- if (command === "switchInstance") servicesHelper.switchInstance()
+browser.commands.onCommand.addListener(async command => {
+ if (command === "switchInstance") {
+ const newUrl = await servicesHelper.switchInstance()
+ if (newUrl) browser.tabs.update({ url: newUrl })
+ }
else if (command == "copyRaw") servicesHelper.copyRaw()
})
@@ -93,71 +101,42 @@ browser.contextMenus.create({
})
browser.contextMenus.create({
+ id: "redirectToOriginal",
+ title: 'Redirect to original',
+ contexts: ["browser_action"],
+})
+
+browser.contextMenus.create({
id: "redirectLink",
title: browser.i18n.getMessage("redirectLink"),
contexts: ["link"],
})
-function handleToggleTab(tab) {
- return new Promise(async resolve => {
- switch (tabIdRedirects[tab.id]) {
- case false:
- const newUrl = await servicesHelper.reverse(tab.url, true)
- if (newUrl) browser.tabs.update(tab.id, { url: newUrl })
- resolve()
- return
- case true:
- browser.tabs.reload(tab.id)
- resolve()
- return
- }
- })
-}
-
browser.contextMenus.onClicked.addListener((info, tab) => {
return new Promise(async resolve => {
- switch (info.menuItemId) {
- case "switchInstance":
- servicesHelper.switchInstance()
- resolve()
- return
- case "settings":
- browser.runtime.openOptionsPage()
- resolve()
- return
- case "copyRaw":
- servicesHelper.copyRaw()
- resolve()
- return
- case "toggleTab":
- if (tabIdRedirects[tab.id] != undefined) {
- tabIdRedirects[tab.id] = !tabIdRedirects[tab.id]
- await handleToggleTab(tab)
- resolve()
- return
- } else {
- const url = new URL(tab.url)
- const service = await servicesHelper.computeService(url)
- if (service) {
- if ((await utils.getOptions())[service].enabled) tabIdRedirects[tab.id] = false
- else tabIdRedirects[tab.id] = true
- await handleToggleTab(tab)
- resolve()
- return
- } else {
- tabIdRedirects[tab.id] = false
- await handleToggleTab(tab)
- resolve()
- return
- }
- }
- case "redirectLink":
- const tmpUrl = new URL(info.linkUrl)
- const newUrl = servicesHelper.redirect(tmpUrl, "main_frame", null, true)
- if (newUrl) browser.tabs.create({ url: newUrl })
- resolve()
- return
+ if (info.menuItemId == 'switchInstance') {
+ servicesHelper.switchInstance()
+ }
+ else if (info.menuItemId == 'settings') {
+ browser.runtime.openOptionsPage()
+ }
+ else if (info.menuItemId == 'copyRaw') {
+ servicesHelper.copyRaw()
+ }
+ else if (info.menuItemId == 'redirectToOriginal') {
+ const newUrl = await servicesHelper.reverse(tab.url)
+ if (newUrl) {
+ tabIdRedirects[tab.id] = false
+ browser.tabs.update(tab.id, { url: newUrl })
+ }
+ }
+ else if (info.menuItemId == 'redirectLink') {
+ const url = new URL(info.linkUrl)
+ const newUrl = servicesHelper.redirect(url, "main_frame", null, true)
+ if (newUrl) browser.tabs.create({ url: newUrl })
}
+ resolve()
+ return
})
})