about summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorManeraKai <manerakai@protonmail.com>2023-10-21 20:11:34 +0300
committerManeraKai <manerakai@protonmail.com>2023-10-21 20:11:34 +0300
commit8649bad9b92dcb1e9a07ade03f05cb35e652260f (patch)
tree9bd43dfbeca760487ec5522e160d672639fb1c36
parentMerge branch 'master' of https://github.com/libredirect/browser_extension (diff)
downloadlibredirect-8649bad9b92dcb1e9a07ade03f05cb35e652260f.zip
Avoided Redundancy in ping test https://github.com/libredirect/browser_extension/issues/827
-rw-r--r--src/pages/background/background.js69
-rw-r--r--src/pages/options/index.js9
2 files changed, 42 insertions, 36 deletions
diff --git a/src/pages/background/background.js b/src/pages/background/background.js
index 631ccebc..961dac11 100644
--- a/src/pages/background/background.js
+++ b/src/pages/background/background.js
@@ -90,38 +90,43 @@ browser.tabs.onRemoved.addListener(tabId => {
 browser.commands.onCommand.addListener(async command => {
 	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)
-		}
-		else if (command == "redirect") {
-			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
-						})
+		switch (command) {
+			case "switchInstance":
+				const newUrl = await servicesHelper.switchInstance(url)
+				if (newUrl) browser.tabs.update({ url: newUrl })
+				break
+			case "copyRaw": {
+				servicesHelper.copyRaw(url)
+				break
+			}
+			case "redirect": {
+				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
+							})
+						}
 					}
-				}
-			})
-		}
-		else if (command == "reverse") {
-			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
-						})
+				})
+				break
+			}
+			case "reverse": {
+				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
+							})
+						}
 					}
-				}
-			})
+				})
+				break
+			}
 		}
 	})
 })
@@ -201,7 +206,6 @@ browser.contextMenus.onClicked.addListener(async (info) => {
 
 		case 'copyReverseLink': {
 			const url = new URL(info.linkUrl)
-			console.log(url)
 			await servicesHelper.copyRaw(url)
 			return
 		}
@@ -250,7 +254,6 @@ browser.contextMenus.onClicked.addListener(async (info) => {
 					else browser.tabs.create({ url: newUrl })
 				}
 			})
-
 			return
 		}
 		case 'reverseBookmark':
@@ -302,4 +305,4 @@ browser.runtime.onMessage.addListener((request, sender, sendResponse) => {
 			}
 		})
 	}
-});
\ No newline at end of file
+})
\ No newline at end of file
diff --git a/src/pages/options/index.js b/src/pages/options/index.js
index 1c2a9c90..020980bb 100644
--- a/src/pages/options/index.js
+++ b/src/pages/options/index.js
@@ -338,18 +338,21 @@ async function ping(frontend) {
 	]
 
 	let pingCache = await utils.getPingCache()
+	let redundancyList = {}
 	for (const element of instanceElements) {
 		let span = element.getElementsByClassName('ping')[0]
 		if (!span) span = document.createElement('span')
 		span.classList = ['ping']
 		span.innerHTML = '<span style="color:lightblue">pinging...</span>'
 		element.appendChild(span)
-
 		const href = element.getElementsByTagName('a')[0].href
-		const time = await utils.ping(href)
+		const innerHTML = element.getElementsByTagName('a')[0].innerHTML
+		const time = redundancyList[innerHTML] ?? await  utils.ping(href)
 		const { color, text } = processTime(time)
 		span.innerHTML = `<span style="color:${color};">${text}</span>`
-		pingCache[element.getElementsByTagName('a')[0].innerHTML] = time
+		pingCache[innerHTML] = time
+		redundancyList[innerHTML] = time
+
 		browser.storage.local.set({ pingCache })
 	}
 }