about summary refs log tree commit diff stats
path: root/src/pages/background/background.js
diff options
context:
space:
mode:
authorHygna <hygna@proton.me>2022-10-08 17:48:24 +0100
committerHygna <hygna@proton.me>2022-10-08 17:48:24 +0100
commit6fdf65663053d2e9c951f6153f108be8d3744204 (patch)
tree214198ad36db2b945b05557630811e1f9489c878 /src/pages/background/background.js
parentFixed bugs present in the previous commit (diff)
downloadlibredirect-6fdf65663053d2e9c951f6153f108be8d3744204.zip
Added context menu to redirect
Closes https://github.com/libredirect/libredirect/issues/414
Diffstat (limited to 'src/pages/background/background.js')
-rw-r--r--src/pages/background/background.js62
1 files changed, 34 insertions, 28 deletions
diff --git a/src/pages/background/background.js b/src/pages/background/background.js
index 54a80011..d252e580 100644
--- a/src/pages/background/background.js
+++ b/src/pages/background/background.js
@@ -21,28 +21,28 @@ function initDefaults() {
 
 browser.runtime.onInstalled.addListener(details => {
 	if (details.previousVersion != browser.runtime.getManifest().version) {
-	switch (details.reason) {
-		case "install":
-			initDefaults()
-			break
-		case "update":
-			fetch("/instances/blacklist.json")
-				.then(response => response.text())
-				.then(async data => {
-					browser.storage.local.set({ blacklists: JSON.parse(data) }, async () => {
-						switch (details.previousVersion) {
-							case "2.2.0":
-							case "2.2.1":
-								await generalHelper.initDefaults()
-								await servicesHelper.initDefaults()
-								await servicesHelper.upgradeOptions()
-								break
-							default:
-								await servicesHelper.processUpdate()
-						}
+		switch (details.reason) {
+			case "install":
+				initDefaults()
+				break
+			case "update":
+				fetch("/instances/blacklist.json")
+					.then(response => response.text())
+					.then(async data => {
+						browser.storage.local.set({ blacklists: JSON.parse(data) }, async () => {
+							switch (details.previousVersion) {
+								case "2.2.0":
+								case "2.2.1":
+									await generalHelper.initDefaults()
+									await servicesHelper.initDefaults()
+									await servicesHelper.upgradeOptions()
+									break
+								default:
+									await servicesHelper.processUpdate()
+							}
+						})
 					})
-				})
-	}
+		}
 	}
 })
 
@@ -166,18 +166,21 @@ browser.contextMenus.create({
 	contexts: ["page", "tab"],
 })
 
+browser.contextMenus.create({
+	id: "redirectLink",
+	title: browser.i18n.getMessage("redirectLink"),
+	contexts: ["link"],
+})
+
 function handleToggleTab(tab) {
 	return new Promise(async resolve => {
-	console.log(tabIdRedirects[tab.id])
 		switch (tabIdRedirects[tab.id]) {
 			case false:
-				console.log("kj")
 				const newUrl = await servicesHelper.reverse(tab.url, true)
 				if (newUrl) browser.tabs.update(tab.id, { url: newUrl })
 				resolve()
 				return
 			case true:
-				console.log("lsad")
 				browser.tabs.reload(tab.id)
 				resolve()
 				return
@@ -211,14 +214,10 @@ browser.contextMenus.onClicked.addListener((info, tab) => {
 					resolve()
 					return
 				} else {
-					console.log("n")
 					const url = new URL(tab.url)
 					const service = await servicesHelper.computeService(url)
-					console.log(service)
 					if (service) {
-						console.log("h")
 						browser.storage.local.get("options", async r => {
-							console.log(r.options[service])
 							if (r.options[service].enabled) tabIdRedirects[tab.id] = false
 							else tabIdRedirects[tab.id] = true
 							await handleToggleTab(tab)
@@ -232,6 +231,13 @@ browser.contextMenus.onClicked.addListener((info, tab) => {
 						return
 					}
 				}
+			case "redirectLink":
+				console.log(info.linkUrl)
+				const tmpUrl = new URL(info.linkUrl)
+				const newUrl = servicesHelper.redirect(tmpUrl, "main_frame", null, true)
+				if (newUrl) browser.tabs.create({ url: newUrl })
+				resolve()
+				return
 		}
 	})
 })