From 8649bad9b92dcb1e9a07ade03f05cb35e652260f Mon Sep 17 00:00:00 2001 From: ManeraKai Date: Sat, 21 Oct 2023 20:11:34 +0300 Subject: [PATCH] Avoided Redundancy in ping test https://github.com/libredirect/browser_extension/issues/827 --- src/pages/background/background.js | 69 ++++++++++++++++-------------- src/pages/options/index.js | 9 ++-- 2 files changed, 42 insertions(+), 36 deletions(-) diff --git a/src/pages/background/background.js b/src/pages/background/background.js index 631cceb..961dac1 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 1c2a9c9..020980b 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 = 'pinging...' 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 = `${text}` - pingCache[element.getElementsByTagName('a')[0].innerHTML] = time + pingCache[innerHTML] = time + redundancyList[innerHTML] = time + browser.storage.local.set({ pingCache }) } }