about summary refs log tree commit diff stats
path: root/src/pages/background/background.js
diff options
context:
space:
mode:
Diffstat (limited to 'src/pages/background/background.js')
-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(