diff options
author | Simon Parri <simonparri@ganzeria.com> | 2025-09-23 11:23:33 -0500 |
---|---|---|
committer | Simon Parri <simonparri@ganzeria.com> | 2025-09-23 11:23:33 -0500 |
commit | e07a088452f9a039220654c4c85f385633c200f4 (patch) | |
tree | b1da4a5d558570169d030c262b4a7a3075bb3559 /extension/background.js | |
parent | 281a697458434ba9d99fca1aa8a738d08b3ee6f1 (diff) | |
download | TabFS-e07a088452f9a039220654c4c85f385633c200f4.tar.gz TabFS-e07a088452f9a039220654c4c85f385633c200f4.zip |
Fix faulty assumption about tabs.query in /tabs/create-reuse
Diffstat (limited to 'extension/background.js')
-rw-r--r-- | extension/background.js | 19 |
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 {}; } |