v161.0 (2026-11-05)
✨ What's Changed ✨
Ads-Client
- New
ReportReasonandMozAdsReportReasonvariants to match new reasons supported by MARS. - Added attempted in-memory fallback for inner http cache if no filesystem path is provided.
- Ads are now read by their
format:billboard,leaderboard,rectangleandskyscraperare images,spocandtilekeep their own shapes. An ad with any otherformatis skipped and recorded underdeserialization_error/invalid_ad_item, instead of being read as an image. - The HTTP cache no longer stores error responses: a failed request is retried on the next call instead of being replayed for the cache TTL.
- Every exported type and method has a docstring in the Kotlin and Swift bindings.
MozAdsRequestOptions.cachePolicydefaults tonull, like the record's other fields.
Autofill
- Fixed a crash or a silently dropped address or credit card when syncing after a sync reset or a migration into a new database: a local record that was also being downloaded could be taken as the duplicate of another incoming record with the same contents. (bug 2086214)
- Credit card de-duplication during sync skips local cards with an empty or undecryptable number instead of failing the whole sync. (bug 2086214)
- Updating or re-keying a missing record during sync returns a
NoSuchRecorderror instead of panicking. (bug 2086214)
Remote Settings
env.distributionin JEXLfilter_expressions is now"default"whenRemoteSettingsContext::distributionis unset, matching the Gecko client. Previously the field was absent fromenv. (bug 2068685)
Breaking Changes
Autofill
- BREAKING:
update_credit_cardkeeps the stored CVV whencc_cvvisNone;Some("")clears it. Scrubbing encrypted data now clears the CVV along with the number. (bug 2085717)