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:
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();
});