about summary refs log tree commit diff stats
path: root/src/pages/background
diff options
context:
space:
mode:
authorManeraKai <manerakai@protonmail.com>2023-03-10 13:12:17 +0300
committerManeraKai <manerakai@protonmail.com>2023-03-10 13:12:17 +0300
commitfdfd940e63d35a7bedad2923d6a7a8afabe93225 (patch)
treeed06fb4b781604b47483e9268097acf6d279596e /src/pages/background
parentMerge branch 'master' of https://github.com/libredirect/libredirect (diff)
downloadlibredirect-fdfd940e63d35a7bedad2923d6a7a8afabe93225.zip
Added context menu buttons to the popup
Diffstat (limited to 'src/pages/background')
-rw-r--r--src/pages/background/background.js104
1 files changed, 41 insertions, 63 deletions
diff --git a/src/pages/background/background.js b/src/pages/background/background.js
index 41de8f97..e1230c37 100644
--- a/src/pages/background/background.js
+++ b/src/pages/background/background.js
@@ -92,72 +92,20 @@ browser.commands.onCommand.addListener(async command => {
 	})
 })
 
-browser.contextMenus.create({
-	id: "settingsTab",
-	title: browser.i18n.getMessage("settings"),
-	contexts: ["browser_action"],
-})
+browser.contextMenus.create({ id: "settingsTab", title: browser.i18n.getMessage("settings"), contexts: ["browser_action"] })
+browser.contextMenus.create({ id: "switchInstanceTab", title: browser.i18n.getMessage("switchInstance"), contexts: ["browser_action"] })
+browser.contextMenus.create({ id: "copyReverseTab", title: 'Copy Original', contexts: ["browser_action"] })
+browser.contextMenus.create({ id: "redirectTab", title: 'Redirect', contexts: ["browser_action"] })
+browser.contextMenus.create({ id: "reverseTab", title: 'Redirect To Original', contexts: ["browser_action"] })
 
-browser.contextMenus.create({
-	id: "switchInstanceTab",
-	title: browser.i18n.getMessage("switchInstance"),
-	contexts: ["browser_action"],
-})
-
-browser.contextMenus.create({
-	id: "copyReverseTab",
-	title: 'Copy Original',
-	contexts: ["browser_action"],
-})
-
-browser.contextMenus.create({
-	id: "redirectTab",
-	title: 'Redirect',
-	contexts: ["browser_action"],
-})
-
-browser.contextMenus.create({
-	id: "reverseTab",
-	title: 'Redirect To Original',
-	contexts: ["browser_action"],
-})
-
-browser.contextMenus.create({
-	id: "redirectLink",
-	title: 'Redirect',
-	contexts: ["link"],
-})
-
-browser.contextMenus.create({
-	id: "reverseLink",
-	title: 'Redirect To Original',
-	contexts: ["link"],
-})
-
-browser.contextMenus.create({
-	id: "copyReverseLink",
-	title: 'Copy Original',
-	contexts: ["link"],
-})
+browser.contextMenus.create({ id: "redirectLink", title: 'Redirect', contexts: ["link"] })
+browser.contextMenus.create({ id: "reverseLink", title: 'Redirect To Original', contexts: ["link"] })
+browser.contextMenus.create({ id: "copyReverseLink", title: 'Copy Original', contexts: ["link"] })
 
 if (!isChrome) {
-	browser.contextMenus.create({
-		id: "redirectBookmark",
-		title: 'Redirect',
-		contexts: ["bookmark"],
-	})
-
-	browser.contextMenus.create({
-		id: "reverseBookmark",
-		title: 'Redirect To Original',
-		contexts: ["bookmark"],
-	})
-
-	browser.contextMenus.create({
-		id: "copyReverseBookmark",
-		title: 'Copy Original',
-		contexts: ["bookmark"],
-	})
+	browser.contextMenus.create({ id: "redirectBookmark", title: 'Redirect', contexts: ["bookmark"] })
+	browser.contextMenus.create({ id: "reverseBookmark", title: 'Redirect To Original', contexts: ["bookmark"] })
+	browser.contextMenus.create({ id: "copyReverseBookmark", title: 'Copy Original', contexts: ["bookmark"] })
 }
 
 
@@ -276,3 +224,33 @@ browser.webRequest.onHeadersReceived.addListener(
 	{ urls: ["<all_urls>"] },
 	["blocking", "responseHeaders"]
 )
+
+
+browser.runtime.onMessage.addListener((request, sender, sendResponse) => {
+	if (request == "reverseTab") {
+		browser.tabs.query({ active: true, currentWindow: true }, async tabs => {
+			if (tabs[0].url) {
+				const url = new URL(tabs[0].url)
+				const newUrl = await servicesHelper.reverse(url)
+				if (newUrl) {
+					browser.tabs.update(tabs[0].id, { url: newUrl }, () => {
+						tabIdRedirects[tabs[0].id] = false
+					})
+				}
+			}
+		})
+	}
+	else if (request == "redirectTab") {
+		browser.tabs.query({ active: true, currentWindow: true }, async tabs => {
+			if (tabs[0].url) {
+				const url = new URL(tabs[0].url)
+				const newUrl = servicesHelper.redirect(url, "main_frame", null, true)
+				if (newUrl) {
+					browser.tabs.update(tabs[0].id, { url: newUrl }, () => {
+						tabIdRedirects[tabs[0].id] = true
+					})
+				}
+			}
+		})
+	}
+});
\ No newline at end of file