tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

commit a2ac368a16af004d63eec30654cfb1af2e7f5435
parent 1cb031c1390abcb54c059e596e60fd1b8e3abd58
Author: Moritz Beier <mbeier@mozilla.com>
Date:   Tue, 23 Dec 2025 11:57:08 +0000

Bug 2007254 - "browser.search.openintab=True" opens in same tab. r=urlbar-reviewers,Standard8

Differential Revision: https://phabricator.services.mozilla.com/D277335

Diffstat:
Mbrowser/components/urlbar/UrlbarPrefs.sys.mjs | 1+
Mbrowser/components/urlbar/content/UrlbarInput.mjs | 6+++++-
Mbrowser/components/urlbar/tests/browser/searchbar/browser_search.js | 34+++++++++++++++++++++++++++++++++-
3 files changed, 39 insertions(+), 2 deletions(-)

diff --git a/browser/components/urlbar/UrlbarPrefs.sys.mjs b/browser/components/urlbar/UrlbarPrefs.sys.mjs @@ -677,6 +677,7 @@ const PREF_URLBAR_DEFAULTS_MAP = new Map(PREF_URLBAR_DEFAULTS); const PREF_OTHER_DEFAULTS = new Map([ ["browser.fixup.dns_first_for_single_words", false], ["browser.ml.enable", false], + ["browser.search.openintab", false], ["browser.search.suggest.enabled", true], ["browser.search.suggest.enabled.private", false], ["browser.search.widget.new", false], diff --git a/browser/components/urlbar/content/UrlbarInput.mjs b/browser/components/urlbar/content/UrlbarInput.mjs @@ -3910,7 +3910,11 @@ export class UrlbarInput extends HTMLElement { } else { where = lazy.BrowserUtils.whereToOpenLink(event, false, false); } - if (lazy.UrlbarPrefs.get("openintab")) { + let openInTabPref = + this.#sapName == "searchbar" + ? lazy.UrlbarPrefs.get("browser.search.openintab") + : lazy.UrlbarPrefs.get("openintab"); + if (openInTabPref) { if (where == "current") { where = "tab"; } else if (where == "tab") { diff --git a/browser/components/urlbar/tests/browser/searchbar/browser_search.js b/browser/components/urlbar/tests/browser/searchbar/browser_search.js @@ -15,6 +15,11 @@ add_setup(async function () { }); add_task(async function test_simple() { + // This pref should not affect the searchbar. + SpecialPowers.pushPrefEnv({ + set: [["browser.urlbar.openintab", true]], + }); + let searchTerm = "test"; searchbar.focus(); EventUtils.sendString(searchTerm); @@ -24,7 +29,9 @@ add_task(async function test_simple() { let expectedUrl = defaultEngine.getSubmission(searchTerm).uri.spec; Assert.equal(gBrowser.currentURI.spec, expectedUrl, "Search successful"); Assert.equal(searchbar.value, searchTerm, "Search term was persisted"); + searchbar.value = ""; + SpecialPowers.popPrefEnv(); }); add_task(async function test_no_canonization() { @@ -40,7 +47,7 @@ add_task(async function test_no_canonization() { searchbar.value = ""; }); -add_task(async function test_newtab() { +add_task(async function test_newtab_alt() { let searchTerm = "test3"; let expectedUrl = defaultEngine.getSubmission(searchTerm).uri.spec; @@ -55,6 +62,31 @@ add_task(async function test_newtab() { Assert.equal(gBrowser.selectedBrowser, newBrowser, "Opened in foreground"); Assert.equal(newBrowser.currentURI.spec, expectedUrl, "Search successful"); Assert.equal(searchbar.value, searchTerm, "Search term was persisted"); + + searchbar.value = ""; + BrowserTestUtils.removeTab(newTab); +}); + +add_task(async function test_newtab_pref() { + SpecialPowers.pushPrefEnv({ + set: [["browser.search.openintab", true]], + }); + let searchTerm = "test4"; + let expectedUrl = defaultEngine.getSubmission(searchTerm).uri.spec; + + searchbar.focus(); + EventUtils.sendString(searchTerm); + + let newTabPromise = BrowserTestUtils.waitForNewTab(gBrowser); + EventUtils.synthesizeKey("KEY_Enter"); + let newTab = await newTabPromise; + let newBrowser = gBrowser.getBrowserForTab(newTab); + + Assert.equal(gBrowser.selectedBrowser, newBrowser, "Opened in foreground"); + Assert.equal(newBrowser.currentURI.spec, expectedUrl, "Search successful"); + Assert.equal(searchbar.value, searchTerm, "Search term was persisted"); + searchbar.value = ""; BrowserTestUtils.removeTab(newTab); + SpecialPowers.popPrefEnv(); });