tor-browser

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

commit 98f359d3e53d42c87da64ed0c38172808349dc1d
parent 33a83be7c3287322604749086e0e79d7ab0bf74f
Author: Dão Gottwald <dao@mozilla.com>
Date:   Wed, 19 Nov 2025 09:19:05 +0000

Bug 1998113 - Change UrlbarInput::setURI signature to use a named options object. r=mbeier,urlbar-reviewers

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

Diffstat:
Mbrowser/base/content/browser.js | 13++++++-------
Mbrowser/base/content/test/tabPrompts/browser_auth_spoofing_protection.js | 4++--
Mbrowser/components/urlbar/UrlbarValueFormatter.sys.mjs | 2+-
Mbrowser/components/urlbar/content/UrlbarInput.mjs | 35++++++++++++++++++-----------------
Mbrowser/components/urlbar/tests/browser/browser_UrlbarInput_overflow.js | 2+-
Mbrowser/components/urlbar/tests/browser/browser_UrlbarInput_overflow_resize.js | 2+-
Mbrowser/components/urlbar/tests/browser/browser_UrlbarInput_searchTerms_uri_mismatch.js | 4++--
Mbrowser/components/urlbar/tests/browser/browser_caret_position.js | 8++++----
Mbrowser/components/urlbar/tests/browser/browser_lossless_encode.js | 5++++-
Mbrowser/components/urlbar/tests/browser/browser_searchMode_setURI.js | 2+-
10 files changed, 40 insertions(+), 37 deletions(-)

diff --git a/browser/base/content/browser.js b/browser/base/content/browser.js @@ -2207,13 +2207,12 @@ var XULBrowserWindow = { // via simulated locationchange events such as switching between tabs, however // if this is a document navigation then PopupNotifications will be updated // via TabsProgressListener.onLocationChange and we do not want it called twice - gURLBar.setURI( - aLocationURI, - aIsSimulated, - isSessionRestore, - false, - isSameDocument - ); + gURLBar.setURI({ + uri: aLocationURI, + dueToTabSwitch: aIsSimulated, + dueToSessionRestore: isSessionRestore, + isSameDocument, + }); BookmarkingUI.onLocationChange(); // If we've actually changed document, update the toolbar visibility. diff --git a/browser/base/content/test/tabPrompts/browser_auth_spoofing_protection.js b/browser/base/content/test/tabPrompts/browser_auth_spoofing_protection.js @@ -109,7 +109,7 @@ async function waitForDialog(doConfirmPrompt, crossDomain, prefEnabled) { ); // if the user clears the url bar we again fall back to the location of the prompt if we trigger setURI by a tab switch gBrowser.selectedBrowser.userTypedValue = ""; - gURLBar.setURI(null, true); + gURLBar.setURI({ dueToTabSwitch: true }); Assert.equal( window.gURLBar.value, UrlbarTestUtils.trimURL(AUTH_URL), @@ -168,7 +168,7 @@ async function waitForDialog(doConfirmPrompt, crossDomain, prefEnabled) { await onDialogClosed; // Due to bug 1812014, the url bar will be clear if we have set its value to "" while the prompt was open // so we trigger a tab switch again to have the uri displayed to be able to check its value - gURLBar.setURI(null, true); + gURLBar.setURI({ dueToTabSwitch: true }); Assert.equal( window.gURLBar.value, UrlbarTestUtils.trimURL(crossDomain ? CROSS_DOMAIN_URL : SAME_DOMAIN_URL), diff --git a/browser/components/urlbar/UrlbarValueFormatter.sys.mjs b/browser/components/urlbar/UrlbarValueFormatter.sys.mjs @@ -244,7 +244,7 @@ export class UrlbarValueFormatter { try { this.#inGetUrlMetaData = true; this.#window.gBrowser.userTypedValue = null; - this.#urlbarInput.setURI(uriInfo.fixedURI); + this.#urlbarInput.setURI({ uri: uriInfo.fixedURI }); return this.#getUrlMetaData(); } finally { this.#inGetUrlMetaData = false; diff --git a/browser/components/urlbar/content/UrlbarInput.mjs b/browser/components/urlbar/content/UrlbarInput.mjs @@ -663,29 +663,27 @@ export class UrlbarInput extends HTMLElement { /** * Sets the URI to display in the location bar. * - * @param {nsIURI} [uri] + * @param {object} [options] + * @param {?nsIURI} [options.uri] * If this is unspecified, the current URI will be used. - * @param {boolean} [dueToTabSwitch] - * True if this is being called due to switching tabs and false - * otherwise. - * @param {boolean} [dueToSessionRestore] - * True if this is being called due to session restore and false - * otherwise. - * @param {boolean} [hideSearchTerms] + * @param {boolean} [options.dueToTabSwitch=false] + * Whether this is being called due to switching tabs. + * @param {boolean} [options.dueToSessionRestore=false] + * Whether this is being called due to session restore. + * @param {boolean} [options.hideSearchTerms=false] * True if userTypedValue should not be overidden by search terms * and false otherwise. - * @param {boolean} [isSameDocument] - * True if the caller of setURI loaded a new document and false - * otherwise (e.g. the location change was from an anchor scroll - * or a pushState event). + * @param {boolean} [options.isSameDocument=false] + * Whether the caller loaded a new document or not (e.g. location + * change from an anchor scroll or a pushState event). */ - setURI( + setURI({ uri = null, dueToTabSwitch = false, dueToSessionRestore = false, hideSearchTerms = false, - isSameDocument = false - ) { + isSameDocument = false, + } = {}) { if (!this.#isAddressbar) { throw new Error( "Cannot set URI for UrlbarInput that is not an address bar" @@ -1227,7 +1225,10 @@ export class UrlbarInput extends HTMLElement { // Nullify search mode before setURI so it won't try to restore it. this.searchMode = null; if (this.#isAddressbar) { - this.setURI(null, true, false, true); + this.setURI({ + dueToTabSwitch: true, + hideSearchTerms: true, + }); } else { this.value = ""; } @@ -5424,7 +5425,7 @@ export class UrlbarInput extends HTMLElement { // url until an onLocationChange happens. // See the handling in `setURI` for further details. this.userTypedValue = null; - this.setURI(null, true); + this.setURI({ dueToTabSwitch: true }); } } } diff --git a/browser/components/urlbar/tests/browser/browser_UrlbarInput_overflow.js b/browser/components/urlbar/tests/browser/browser_UrlbarInput_overflow.js @@ -5,7 +5,7 @@ async function testVal(aExpected, overflowSide = null) { info(`Testing ${aExpected} with overflow ${overflowSide}`); try { - gURLBar.setURI(makeURI(aExpected)); + gURLBar.setURI({ uri: makeURI(aExpected) }); } catch (ex) { if (ex.result != Cr.NS_ERROR_MALFORMED_URI) { throw ex; diff --git a/browser/components/urlbar/tests/browser/browser_UrlbarInput_overflow_resize.js b/browser/components/urlbar/tests/browser/browser_UrlbarInput_overflow_resize.js @@ -3,7 +3,7 @@ async function testVal(win, url) { info(`Testing ${url}`); - win.gURLBar.setURI(makeURI(url)); + win.gURLBar.setURI({ uri: makeURI(url) }); let urlbar = win.gURLBar; urlbar.blur(); diff --git a/browser/components/urlbar/tests/browser/browser_UrlbarInput_searchTerms_uri_mismatch.js b/browser/components/urlbar/tests/browser/browser_UrlbarInput_searchTerms_uri_mismatch.js @@ -39,7 +39,7 @@ add_task(async function test_search_terms_cleared_on_non_serp_host() { "Test URIs should have a different host." ); - gURLBar.setURI(nonSerpUri); + gURLBar.setURI({ uri: nonSerpUri }); Assert.ok( !gURLBar.hasAttribute("persistsearchterms"), @@ -67,7 +67,7 @@ add_task(async function test_search_terms_cleared_on_non_serp_scheme() { "Test URIs should have the same host." ); - gURLBar.setURI(nonSerpUri); + gURLBar.setURI({ uri: nonSerpUri }); Assert.ok( !gURLBar.hasAttribute("persistsearchterms"), diff --git a/browser/components/urlbar/tests/browser/browser_caret_position.js b/browser/components/urlbar/tests/browser/browser_caret_position.js @@ -208,7 +208,7 @@ add_task(async function setURI() { `Test for ${data.firstURL} -> ${data.secondURL} with initial selection: ${data.initialSelectionStart}, ${data.initialSelectionEnd}` ); info("Check the caret position after setting second URL"); - gURLBar.setURI(makeURI(data.firstURL)); + gURLBar.setURI({ uri: makeURI(data.firstURL) }); // The protocol may be trimmed when the urlbar is blurred, then we must // adjust the expected selection accordingly. @@ -236,7 +236,7 @@ add_task(async function setURI() { await flushScrollStyle(); gURLBar.focus(); - gURLBar.setURI(makeURI(data.secondURL)); + gURLBar.setURI({ uri: makeURI(data.secondURL) }); await flushScrollStyle(); Assert.equal(gURLBar.selectionStart, data.expectedSelectionStart); @@ -251,14 +251,14 @@ add_task(async function setURI() { } info("Check the caret position while the input is not focused"); - gURLBar.setURI(makeURI(data.firstURL)); + gURLBar.setURI({ uri: makeURI(data.firstURL) }); gURLBar.selectionStart = data.initialSelectionStart; gURLBar.selectionEnd = data.initialSelectionEnd; await flushScrollStyle(); gURLBar.blur(); - gURLBar.setURI(makeURI(data.secondURL)); + gURLBar.setURI({ uri: makeURI(data.secondURL) }); await flushScrollStyle(); if (data.firstURL === data.secondURL) { diff --git a/browser/components/urlbar/tests/browser/browser_lossless_encode.js b/browser/components/urlbar/tests/browser/browser_lossless_encode.js @@ -57,7 +57,10 @@ add_task(async function () { function () { for (let [url, expected] of tests) { info("testing: " + url); - gURLBar.setURI(Services.io.newURI(url), false, true); + gURLBar.setURI({ + uri: Services.io.newURI(url), + dueToSessionRestore: true, + }); Assert.equal(gURLBar.untrimmedValue, expected); } } diff --git a/browser/components/urlbar/tests/browser/browser_searchMode_setURI.js b/browser/components/urlbar/tests/browser/browser_searchMode_setURI.js @@ -104,7 +104,7 @@ async function doSetURITest(initialURL, searchString, url, expectSearchMode) { // Call setURI. let uri = url ? Services.io.newURI(url) : null; - gURLBar.setURI(uri); + gURLBar.setURI({ uri }); await UrlbarTestUtils.assertSearchMode( window,