From 281a697458434ba9d99fca1aa8a738d08b3ee6f1 Mon Sep 17 00:00:00 2001 From: Simon Parri Date: Tue, 23 Sep 2025 11:07:34 -0500 Subject: Fix /tabs/create-reuse algorithm --- extension/background.js | 19 ++++--------------- 1 file changed, 4 insertions(+), 15 deletions(-) (limited to 'extension') diff --git a/extension/background.js b/extension/background.js index 411930c..dd7732d 100644 --- a/extension/background.js +++ b/extension/background.js @@ -219,26 +219,15 @@ Routes["/tabs/create-reuse"] = { description: 'Open a URL, reusing existing tabs where it makes sense.', usage: 'echo "https://en.wikipedia.org/wiki/HTTP#History" > $0', async write({buf}) { - const CURRENT = browser.windows.WINDOW_ID_CURRENT const url = buf.trim(); let tabs = await browser.tabs.query({url}), - tab, t - // algorithm improvements welcome - if (t = tabs.find(t => t.active && t.windowId == CURRENT)) - tab = t - else if (t = tabs.find(t => t.windowId == CURRENT)) - tab = t - else - tab = tabs[0] + tab = tabs.find(t => t.active) || tabs[0] if (!tab) tab = await browser.tabs.create({url}) - let nurl = new URL(url), - ourl = new URL(tab.url) - if (ourl.hash != nurl.hash) { - ourl.hash = nurl.hash - tab.url = ourl.toString() - } + if (new URL(url).hash != new URL(tab.url).hash) + browser.tabs.executeScript(tab.id, + {code: `window.location = ${JSON.stringify(url)}`}) return {size: stringToUtf8Array(buf).length}; }, -- cgit v1.2.3