summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon Parri <simonparri@ganzeria.com>2025-09-23 11:23:33 -0500
committerSimon Parri <simonparri@ganzeria.com>2025-09-23 11:23:33 -0500
commite07a088452f9a039220654c4c85f385633c200f4 (patch)
treeb1da4a5d558570169d030c262b4a7a3075bb3559
parent281a697458434ba9d99fca1aa8a738d08b3ee6f1 (diff)
downloadTabFS-e07a088452f9a039220654c4c85f385633c200f4.tar.gz
TabFS-e07a088452f9a039220654c4c85f385633c200f4.zip
Fix faulty assumption about tabs.query in /tabs/create-reuse
-rw-r--r--extension/background.js19
1 files changed, 12 insertions, 7 deletions
diff --git a/extension/background.js b/extension/background.js
index dd7732d..fbd946e 100644
--- a/extension/background.js
+++ b/extension/background.js
@@ -219,16 +219,21 @@ 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 url = buf.trim();
+ let url = buf.trim(),
+ base = new URL(url),
+ hash = base.hash
+ base.hash = ""; base = base.toString()
- let tabs = await browser.tabs.query({url}),
+ let tabs = await browser.tabs.query({url: base}),
tab = tabs.find(t => t.active) || tabs[0]
- if (!tab) tab = await browser.tabs.create({url})
-
- if (new URL(url).hash != new URL(tab.url).hash)
- browser.tabs.executeScript(tab.id,
+ if (!tab)
+ await browser.tabs.create({url})
+ else if (new URL(tab.url).hash != hash) {
+ await browser.tabs.executeScript(tab.id,
{code: `window.location = ${JSON.stringify(url)}`})
-
+ await browser.tabs.update(tab.id,
+ {active: true})
+ }
return {size: stringToUtf8Array(buf).length};
},
async truncate() { return {}; }