aboutsummaryrefslogtreecommitdiffstats
path: root/src/pages/background
diff options
context:
space:
mode:
authorManeraKai <manerakai@protonmail.com>2023-02-08 11:28:57 +0300
committerManeraKai <manerakai@protonmail.com>2023-02-08 11:29:03 +0300
commitd0961f5d1fd446db856c92c2ac1b484cfa8b234c (patch)
tree1d8b46701b26d1725af1f654b0f81e02911f8ad1 /src/pages/background
parentOpen settings automatically only after installation https://github.com/libred... (diff)
downloadlibredirect-d0961f5d1fd446db856c92c2ac1b484cfa8b234c.zip
Link menu: Redirect, Reverse, Copy Reverse. Icon menu: Settings, SwitchInstance, Copy Reverse, Redirect, Reverse redirect. https://github.com/libredirect/libredirect/issues/607
Diffstat (limited to 'src/pages/background')
-rw-r--r--src/pages/background/background.js106
1 files changed, 81 insertions, 25 deletions
diff --git a/src/pages/background/background.js b/src/pages/background/background.js
index 25f1fad6..1a62f4e2 100644
--- a/src/pages/background/background.js
+++ b/src/pages/background/background.js
@@ -78,11 +78,16 @@ browser.tabs.onRemoved.addListener(tabId => {
})
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()
+ browser.tabs.query({ active: true, currentWindow: true }, async tabs => {
+ const url = new URL(tabs[0].url)
+ if (command == "switchInstance") {
+ const newUrl = await servicesHelper.switchInstance(url)
+ if (newUrl) browser.tabs.update({ url: newUrl })
+ }
+ else if (command == "copyRaw") {
+ servicesHelper.copyRaw(url)
+ }
+ })
})
browser.contextMenus.create({
@@ -98,50 +103,101 @@ browser.contextMenus.create({
})
browser.contextMenus.create({
- id: "copyRaw",
- title: browser.i18n.getMessage("copyRaw"),
+ id: "copyReverse",
+ title: 'Copy reverse',
+ contexts: ["browser_action"],
+})
+
+browser.contextMenus.create({
+ id: "redirectTab",
+ title: 'Redirect',
contexts: ["browser_action"],
})
browser.contextMenus.create({
- id: "redirectToOriginal",
- title: browser.i18n.getMessage("redirectToOriginal"),
+ id: "reverse",
+ title: 'Reverse redirect',
contexts: ["browser_action"],
})
browser.contextMenus.create({
id: "redirectLink",
- title: browser.i18n.getMessage("redirectLink"),
+ title: 'Redirect',
contexts: ["link"],
})
-browser.contextMenus.onClicked.addListener((info, tab) => {
- return new Promise(async resolve => {
- if (info.menuItemId == 'switchInstance') {
- const newUrl = await servicesHelper.switchInstance()
- if (newUrl) browser.tabs.update({ url: newUrl })
+browser.contextMenus.create({
+ id: "reverseLink",
+ title: 'Reverse redirect',
+ contexts: ["link"],
+})
+
+browser.contextMenus.create({
+ id: "copyReverseLink",
+ title: 'Copy Reverse',
+ contexts: ["link"],
+})
+
+browser.contextMenus.onClicked.addListener(async (info, tab) => {
+ switch (info.menuItemId) {
+ case 'switchInstance': {
+ const url = new URL(info.pageUrl)
+ const newUrl = await servicesHelper.switchInstance(url)
+ if (newUrl) {
+ browser.tabs.update({ url: newUrl })
+ }
+ return
}
- else if (info.menuItemId == 'settings') {
+ case 'settings': {
browser.runtime.openOptionsPage()
+ return
}
- else if (info.menuItemId == 'copyRaw') {
- servicesHelper.copyRaw()
+ case 'copyReverse': {
+ const url = new URL(info.pageUrl)
+ servicesHelper.copyRaw(url)
+ return
}
- else if (info.menuItemId == 'redirectToOriginal') {
- const newUrl = await servicesHelper.reverse(tab.url)
+ case 'reverse': {
+ const url = new URL(info.pageUrl)
+ const newUrl = await servicesHelper.reverse(url)
if (newUrl) {
tabIdRedirects[tab.id] = false
- browser.tabs.update(tab.id, { url: newUrl })
+ browser.tabs.update({ url: newUrl })
}
+ return
+ }
+ case 'redirectTab': {
+ const url = new URL(info.pageUrl)
+ const newUrl = servicesHelper.redirect(url, "main_frame", null, true)
+ if (newUrl) {
+ tabIdRedirects[tab.id] = true
+ browser.tabs.update({ url: newUrl })
+ }
+ return
+ }
+
+ case 'copyReverseLink': {
+ const url = new URL(info.linkUrl)
+ servicesHelper.copyRaw(url)
+ return
}
- else if (info.menuItemId == 'redirectLink') {
+ case 'redirectLink': {
const url = new URL(info.linkUrl)
const newUrl = servicesHelper.redirect(url, "main_frame", null, true)
if (newUrl) browser.tabs.create({ url: newUrl })
+ return
}
- resolve()
- return
- })
+ case 'reverseLink': {
+ const url = new URL(info.linkUrl)
+ const newUrl = await servicesHelper.reverse(url)
+ if (newUrl) {
+ tabIdRedirects[tab.id] = false
+ browser.tabs.create({ url: newUrl })
+ }
+ return
+ }
+
+ }
})
browser.webRequest.onHeadersReceived.addListener(