commit 199c36415319b72ed07be35532dbe269e8b31950
parent b8789659ea64b4a321d5c721c837d1d82b4894bc
Author: James Teow <jteow@mozilla.com>
Date: Wed, 22 Oct 2025 16:52:22 +0000
Bug 1994641 - Remove search terms when there is no original URI - r=urlbar-reviewers,daisuke
Differential Revision: https://phabricator.services.mozilla.com/D269497
Diffstat:
2 files changed, 55 insertions(+), 3 deletions(-)
diff --git a/browser/components/urlbar/UrlbarInput.sys.mjs b/browser/components/urlbar/UrlbarInput.sys.mjs
@@ -4126,9 +4126,10 @@ export class UrlbarInput {
let cachedUriDidChange =
state.persist?.originalURI &&
- !state.persist.originalURI.equals(
- this.window.gBrowser.selectedBrowser.originalURI
- );
+ (!this.window.gBrowser.selectedBrowser.originalURI ||
+ !state.persist.originalURI.equals(
+ this.window.gBrowser.selectedBrowser.originalURI
+ ));
// Capture the shouldPersist property if it exists before
// setPersistenceState potentially modifies it.
diff --git a/browser/components/urlbar/tests/browser/browser_UrlbarInput_searchTerms.js b/browser/components/urlbar/tests/browser/browser_UrlbarInput_searchTerms.js
@@ -46,6 +46,57 @@ add_task(async function go_back() {
BrowserTestUtils.removeTab(tab);
});
+add_task(async function go_back_to_newtab() {
+ let tab = await BrowserTestUtils.openNewForegroundTab(
+ gBrowser,
+ "about:newtab",
+ false
+ );
+
+ let [expectedSearchUrl] = UrlbarUtils.getSearchQueryUrl(
+ Services.search.defaultEngine,
+ SEARCH_STRING
+ );
+ let browserLoadedPromise = BrowserTestUtils.browserLoaded(
+ tab.linkedBrowser,
+ false,
+ expectedSearchUrl
+ );
+
+ gURLBar.focus();
+ await UrlbarTestUtils.promiseAutocompleteResultPopup({
+ window,
+ waitForFocus,
+ value: SEARCH_STRING,
+ fireInputEvent: true,
+ selectionStart: 0,
+ selectionEnd: SEARCH_STRING.length - 1,
+ });
+ EventUtils.synthesizeKey("KEY_Enter");
+ await browserLoadedPromise;
+
+ Assert.equal(
+ gURLBar.value,
+ SEARCH_STRING,
+ "Search string should be in the address bar after loading the search results page."
+ );
+
+ let pageShowPromise = BrowserTestUtils.waitForContentEvent(
+ tab.linkedBrowser,
+ "pageshow"
+ );
+ tab.linkedBrowser.goBack(false);
+ await pageShowPromise;
+
+ Assert.equal(
+ gURLBar.value,
+ "",
+ "Search string should be blank after going back to about:newtab."
+ );
+
+ BrowserTestUtils.removeTab(tab);
+});
+
// Manually loading a url that matches a search query url
// should show the search term in the Urlbar.
add_task(async function load_url() {