Releases: mozilla/application-services
Releases · mozilla/application-services
v97.0.0
v97.0.0 (2023-02-22)
Nimbus ⛅️🔬🔭
🦊 What's Changed 🦊
- Updated the Nimbus Gradle Plugin to fix a number of issues after migrating it to this repository (#5348)
- Good fences: protected calls out to the error reporter with a
try
/catch
(#5366) - Updated the Nimbus FML CLI to only import the R class if it will be used by a feature property (#5361)
⚠️ Breaking Changes ⚠️
- Android and iOS: Several errors have been moved to an internal support library and will no longer be reported as top-level Nimbus errors. They should still be accessible through
NimbusError.ClientError
. They are:RequestError
,ResponseError
, andBackoffError
. (#5369)
v96.4.0 (_2023-01-30_)
v96.4.0 (2023-01-30)
Tabs
What's Changed
The Tabs engine is now more efficient in how it fetches its records:
- The Tabs engine no longer clears the DB on every sync.
- Tabs now tracks the last time it synced and only fetches tabs that have changed since the last sync.
- Tabs will keep records for up to 180 days, in parity with the clients engine. To prevent the DB from getting too large.
Nimbus ⛅️🔬🔭
🦊 What's Changed 🦊
- Added `GleanMetrics.NimbusHealth` metrics for measuring duration of `apply_pending_experiments` and `fetch_experiments`. ([#5344](https://github.com/mozilla/application-services/pull/5344))
v96.3.0
Places
What's changed
- Removes old iOS bookmarks migration code. The function
migrateBookmarksFromBrowserDb
no longer exists. (#5276)
Nimbus ⛅️🔬🔭
What's New
v96.2.1
v96.2.1 (2023-01-04)
Places
What's changed
- Limited the number of visits to migrate for History to 10,000 visits. (#5310)
v96.2.0
v96.2.0 (2023-01-03)
Nimbus ⛅️🔬🔭
What's Changed
- Fixed an issue where the NimbusQueues protocol was missing from the NimbusApi (#5298)
✨ What's New ✨
- Added
eventLastSeen
query to the event store and jexl transforms (#5297) - Introduced the
NimbusBuilder
for Swift (#5307)
Tabs
What's Changed
- Fixed a regression causing failure to read old tabs databases (#5286)
Autofill
🦊 What's Changed 🦊
- Exposed autofill api to iOS consumer and resolved
createKey
function conflict with the Logins component.
v96.1.3
v96.1.2
v96.1.2 (2022-12-07)
Logins
What's changed
- Removes Fennec migration code. The function
importMultiple
no longer exists. (#5268)
Nimbus
What's Changed
- Event store date comparison logic update to be entirely relative (#5265)
- Updates event store to initialize all dates at the start of the current year (#5279)
- Adds new Kotlin/Swift methods to clear the event store (#5279)
- Adds Swift methods to wait for operation queues to finish (#5279)
Places
What's changed
- Removes Fennec migration code. (#5268)
The following functions no longer exist:importBookmarksFromFennec
importPinnedSitesFromFennec
importVisitsFromFennec
Viaduct
What's New
- Allow viaduct to make requests to the android emulator's host address via
a new viaduct_allow_android_emulator_loopback() (in Rust)/allowAndroidEmulatorLoopback() (in Kotlin)
(#5270)
Tabs
What's changes
- The ClientRemoteTabs struct/interface now has a last_modified field which is the time
when the device last uploaded the tabs.
v96.1.1
v96.1.1 (2022-12-01)
autofill
What's Changed
- Fixed a bug where
scrub_encrypted_data()
didn't update the last sync time, which prevented the scrubbed CC data
from being fixed. - Don't report sentry errors when we try to decrypt the empty string. This happens when the consumer tries to decript
a CC number afterscrub_encrypted_data()
is called.
logins
What's Changed
- Don't report
Origin is Malformed
errors to Sentry. This is a known issue stemming from FF Desktop sending us
URLs without a scheme. See #5233 for details.
places
What's Changed
- Switch to using incremental vacuums for maintenance, which should speed up the process.
- Don't report places
relative URL without a base
to Sentry. This is a known issue caused by Fenix sending us URLs
with an invalid scheme (see #5235)
v96.1.0
v96.1.0 (2022-11-29)
FxA Client
What's new
- Exposed a new function for swift consumers
resetPersistedState
resetPersistedState
can be used to refresh the account manager to reflect the latest persisted state.resetPersistedState
should be called in between a different account manager instance persisting the state, and the current account manager persisting state- For example, the Notification Service in iOS creates its own instance of the account manager, changes its state (by changing the index of the last retrieved send tab)
- The main account manager held by the application should call
resetPersistedState
before calling any other method that might change its state. This way it can retrieve the most up to date index that the Notification Services persisted.
What's changed
- The
processRawIncomingAccountEvent
function will now process all commands, not just one. This moves the responsibilty of ensuring each push gets a UI element to the caller.
v96.0.1
v96.0.1 (2022-11-18)
Logins
What's Changed
- Updated the URL redaction code to remove potential PII leak. Version
96.0.0
should not be used by downstream clients.
Nimbus
What's changed
- Add methods to Kotlin and Swift to call the record event method on the nimbus client (#5244)
FxA Client
What's changed
- The devices retrieved from the devices list are now only the devices that have been accessed in 21 days. This should help remove duplicates and idle devices for users. (#4984)
Changes from v96.0.0 (2022-11-16)
Listed here because v96.0.0 was unpublished
⛅️🔬🔭 Nimbus
✨ What's New ✨
active_experiments
is available to JEXL as a set containing slugs of all enrolled experiments (#5227)- Added Behavioral Targeting/Display Triggers accessible from JEXL for experiments and messages (#5226, #5228)
- Android only: added a new
NimbusBuilder
method to unify Fenix and Focus startup sequences. (5239)
⚠️ Breaking Changes ⚠️
- Changed the type of
customTargetingAttributes
inNimbusAppSettings
to aJSONObject
. The change will be breaking only for Android. (#5229) - Android only: Removed the
initialize()
methods in favor ofNimbusBuilder
class. (5239)
Logins
What's Changed
- Include a redacted version of the URL in the Sentry error report when we see a login with an invalid origin field.
- Made it so
InvalidDatabaseFile
errors aren't reported to Sentry. These occurs when a non-existent path is passed
tomigrateLoginsWithMetrics()
, which happens about 1-2 times a day. This is very low volume, the code is going
away soon, and we have a plausible theory that these happen when Fenix is killed after the migration but before
SQL_CIPHER_MIGRATION
is stored.
Places
What's Changed
- Report a Sentry breadcrumb when we fail to parse URLs, with a redacted version of the URL.
JwCrypto
What's Changed
- Log a breadcrumb with a redacted version of the crypto key when it has an invalid form (before throwing
DeserializationError)