You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This commit was created on GitHub.com and signed with GitHub’s verified signature.
⚠️ Breaking Changes ⚠️
Viaduct
Moved the Rust-based backend away from hyper back to reqwest.
The new crate name is viaduct-backend-rust.
iOS will need to replace viaductInitBackendHyper() with viductInitBackendRust()
Db-Crypto, Logins, Autofill
create_static_key_manager() and create_managed_encdec() moved from logins and autofill to db-crypto, since both components defining them caused duplicate definitions in Swift.
Kotlin consumers need to import them from mozilla.appservices.db_crypto instead of mozilla.appservices.logins / mozilla.appservices.autofill. (bug 2080807)
Autofill
BREAKING: The key-based encrypt_string(key, ...) / decrypt_string(key, ...) namespace functions are removed - with transparent card numbers nothing needs them. create_autofill_key() stays; for canaries use db_crypto.create_canary / check_canary (format-compatible).
BREAKING: Credit card numbers are transparent in the API: UpdatableCreditCardFields takes cc_number in cleartext (the store encrypts it and derives cc_number_last_4 itself), and CreditCard.cc_number comes back decrypted - empty for a scrubbed card, while a value the key cannot read fails the read. An empty cc_number is stored as an empty cc_number_enc rather than as a ciphertext of "", so a scrubbed card stays recognizable as such. cc_number_enc is gone from both dictionaries; consumers never handle ciphertext. (bug 2075563)
✨ What's New ✨
Error support
Wired up the error ping on iOS using glean-sym.
✨ What's Changed ✨
Ads-Client
Telemetry is now a process-wide singleton internally; the binding API is unchanged, but the MozAdsTelemetry callback now receives metrics from every client in the process.
request_spoc_or_image_ads is added to return ads that may ambiguously be spocs or images.
Added support for relevance scores (AC-205) (AC-206) Accepts a HashMap<String, f64>.
Autofill
Add Store::credit_cards_bridged_engine(), exposing the existing credit card sync engine as a bridged engine so Firefox Desktop can drive credit card sync. (bug 2074008)
Added list_credit_card_candidates(), returning CreditCardCandidate: a card minus its encrypted fields, with cc_number_last_4 and has_cvv in their place. Like list_candidates() in logins it never touches the key, so an application can list cards without a primary password prompt and call get_credit_card() for the single card whose number or CVV it needs. (bug 2080209)
Credit cards can store an optional CVV, encrypted like the number and handled transparently: UpdatableCreditCardFields.cc_cvv (cleartext in, defaults to none) and CreditCard.cc_cvv (decrypted out). A v6 schema upgrade adds the column; existing rows simply have no CVV. The CVV syncs as a new optional cc-cvv payload field; records written by older clients round-trip it through the mirror's unknown-fields handling, so their edits do not drop it. (bug 2076154)
Nimbus
Disabling experiments or rollouts will submit an event. #7656
If requesting experiment or rollout participation on Android throws, the getter will return true instead of throwing. This aligns the Android behaviour with iOS. #7656
Enabling experiments or rollouts while they are already enabled no longer performs an update. #7656
Search
Added APIs to SearchEngineSelector for a new search-config-v3 collection.
Sync15
Better interoperability with clients which choose engines per device: sync IDs are adopted from meta/syncids rather than minted, and our declined engines are kept when meta/global has no engines or declined engines.
A fresh meta/global no longer lists declined engines in engines.