summaryrefslogtreecommitdiff
path: root/extension/background.js
diff options
context:
space:
mode:
authorSimon Parri <simonparri@ganzeria.com>2025-09-23 11:07:34 -0500
committerSimon Parri <simonparri@ganzeria.com>2025-09-23 11:07:34 -0500
commit281a697458434ba9d99fca1aa8a738d08b3ee6f1 (patch)
tree0cc2264f84af7080888e2bc3983144fe7eb6d0cd /extension/background.js
parent959001a86bae0d8539121eb31df033717809869b (diff)
downloadTabFS-281a697458434ba9d99fca1aa8a738d08b3ee6f1.tar.gz
TabFS-281a697458434ba9d99fca1aa8a738d08b3ee6f1.zip
Fix /tabs/create-reuse algorithm
Diffstat (limited to 'extension/background.js')
-rw-r--r--extension/background.js19
1 files changed, 4 insertions, 15 deletions
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};
},