tor-browser

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

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:
Mbrowser/components/urlbar/UrlbarInput.sys.mjs | 7++++---
Mbrowser/components/urlbar/tests/browser/browser_UrlbarInput_searchTerms.js | 51+++++++++++++++++++++++++++++++++++++++++++++++++++
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() {