tor-browser

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

commit 823c273c4f913f9e3ee2a2f7277d69c552d73131
parent 960f4bb8e1556ef46a61d49529fc51229a94d59c
Author: Jeff Boek <j@jboek.com>
Date:   Tue, 14 Oct 2025 23:20:18 +0000

Bug 1991198 - Compute the name property if given name is not present r=geckoview-reviewers,tcampbell

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

Diffstat:
Mmobile/android/geckoview/src/androidTest/java/org/mozilla/geckoview/test/AutocompleteTest.kt | 34+++++++++++++++++++++++++++++++++-
Mmobile/shared/modules/geckoview/GeckoViewAutocomplete.sys.mjs | 15+++++++++++----
2 files changed, 44 insertions(+), 5 deletions(-)

diff --git a/mobile/android/geckoview/src/androidTest/java/org/mozilla/geckoview/test/AutocompleteTest.kt b/mobile/android/geckoview/src/androidTest/java/org/mozilla/geckoview/test/AutocompleteTest.kt @@ -507,7 +507,7 @@ class AutocompleteTest : BaseSessionTest() { equalTo(savedAddresses.size), ) - val addressOption = prompt.options.find { it.value.familyName == selectedAddress.familyName } + val addressOption = prompt.options.find { it.value.guid == selectedAddress.guid } val address = addressOption?.value assertThat("Address should not be null", address, notNullValue()) @@ -659,6 +659,38 @@ class AutocompleteTest : BaseSessionTest() { } @Test + fun addressSelectAndFillWithoutGivenName() { + val name = "Peter Parker" + val streetAddress = "20 Ingram Street, Forest Hills Gardens, Queens" + val postalCode = "11375" + val country = "US" + val email = "spiderman@newyork.com" + val tel = "+1 180090021" + val organization = "" + val guid = "test-guid" + val builder = Address.Builder() + .guid(guid) + .name(name) + .streetAddress(streetAddress) + .postalCode(postalCode) + .country(country) + .email(email) + .tel(tel) + .organization(organization) + + val savedAddress = builder.build() + + val expectedAddress = builder + .givenName("Peter") + .familyName("Parker") + .build() + + val savedAddresses = arrayOf(savedAddress) + + checkAddressesForCorrectness(savedAddresses, expectedAddress) + } + + @Test fun addressSelectAndFillMultipleAddresses() { val names = arrayOf("Peter Parker", "Wade Wilson") val givenNames = arrayOf("Peter", "Wade") diff --git a/mobile/shared/modules/geckoview/GeckoViewAutocomplete.sys.mjs b/mobile/shared/modules/geckoview/GeckoViewAutocomplete.sys.mjs @@ -9,6 +9,7 @@ const lazy = {}; ChromeUtils.defineESModuleGetters(lazy, { EventDispatcher: "resource://gre/modules/Messaging.sys.mjs", GeckoViewPrompter: "resource://gre/modules/GeckoViewPrompter.sys.mjs", + AddressRecord: "resource://gre/modules/shared/AddressRecord.sys.mjs", }); ChromeUtils.defineLazyGetter(lazy, "LoginInfo", () => @@ -180,12 +181,9 @@ export class Address { } toGecko() { - return { + let address = { version: this.version, name: this.name, - "given-name": this.givenName, - "additional-name": this.additionalName, - "family-name": this.familyName, organization: this.organization, "street-address": this.streetAddress, "address-level1": this.addressLevel1, @@ -196,7 +194,16 @@ export class Address { tel: this.tel, email: this.email, guid: this.guid, + ...(this.givenName && { + "given-name": this.givenName, + "additional-name": this.additionalName, + "family-name": this.familyName, + }), }; + + lazy.AddressRecord.computeFields(address); + + return address; } }