Skip to content

Releases: mozilla/application-services

v92.0.0

17 Mar 20:15
1fcdb59

Choose a tag to compare

v92.0.0 (2022-03-17)

Full Changelog

Places

⚠️ Breaking Changes ⚠️

  • Removed some functions related to sync interruption. These were never really completed and don't seem to be in use by iOS/Android code:
    • PlacesApi.new_sync_conn_interrupt_handle()
    • Swift only: PlacesAPI.interrupt()
  • The exception variant InternalPanic was removed. It's only use was replaced by the already existing UnexpectedPlacesException. (#4847)

What's New

  • The Places component will report more error variants to telemetry. (#4847)

Autofill / Logins / Places / Sync Manager, Webext-Storage

What's Changed

  • Updated interruption handling and added support for shutdown-mode which interrupts all operations.

Tabs

⚠️ Breaking Changes ⚠️

  • The tabs component's constructor now requires the path to the database file where remote tabs will be persisted to.
  • Requesting remote tabs before the first sync will now return the tabs in this database, so may be "stale".

Glean

⚠️ Breaking Changes ⚠️

Swift

  • GleanMetrics should now be imported under import Glean instead of importing via MozillaRustComponents

Nimbus FML

What's Changed

  • Papercut fixes for nicer developer experience #4867
    • More helpful validation error reporting
    • Better handling of defaults in objects and enum maps
    • More YAML syntactic checking.
  • Allow experimenter to output to a YAML file, as well as JSON. #4874
    • If the file extension is yaml, then output as YAML, otherwise, output as JSON.

Autofill

What's New

  • Added temp-store, journal-mode, and foreign-keys pragmas to autofill component. (#4882)

v91.1.0

11 Feb 19:13
1794294

Choose a tag to compare

v91.1.0 (2022-02-11)

Full Changelog

⛅️🔬🔭 Nimbus SDK

What's fixed

  • Fixes a bug where disabling studies did not disable rollouts. (#4807)

✨ What's New ✨

  • A message helper is now available to apps wanting to build a Messaging System on both Android and iOS. Both of these access the variables
    provided by Nimbus, and can have app-specific variables added. This provides two functions:
    • JEXL evaluation (#4813) which evaluates boolean expressions.
    • String interpolation (#4831) which builds strings with templates at runtime.

Xcode

  • Bumped Xcode version from 13.1.0 -> 13.2.1

Nimbus FML

What's fixed

  • Fixes a bug where each time the fml is run, the ordering of features in the experimenter json is changed. (#4819)

v91.0.1

02 Feb 16:28

Choose a tag to compare

v91.0.1 (2022-02-02)

Full Changelog

Places

What's Changed

  • The database initialization code now uses BEGIN IMMIDIATE to start a
    transaction. This will hopefully prevent database is locked errors when
    opening a sync connection.

What's New

  • The HistoryVisitInfo struct now has an is_remote boolean which indicates whether the
    represented visit happened locally or remotely. (#4810)

v91.0.0

31 Jan 22:04
2e88010

Choose a tag to compare

v91.0.0 (2022-01-31)

Full Changelog

Nimbus FML

What's New

  • The Nimbus FML can now generate swift code for the feature manifest. (#4780)
    • It can be invoked using:
    $ nimbus-fml <FEATURE_MANIFEST_YAML> -o <OUTPUT_NAME> ios features
    • You can check the support flags and options by running:
    $ nimbus-fml ios --help
    • The generated code exposes:
      • a high level nimbus object, whose name is configurable using the --classname option. By default the object is MyNimbus.
      • All the enums and objects defined in the manifest as idiomatic Swift code.
    • Usage:
      • To access a feature's value:
        // MyNimbus is the class that holds all the features supported by Nimbus
        // MyNimbus has an singleton instance, you can access it using the `shared` field:
        
        let nimbus = MyNimbus.shared
        
        // Then you can access the features using:
        // MyNimbus.features.<featureNameCamelCase>.value(), for example:
        
        let feature = nimbus.features.homepage.value()
      • To access a field in the feature:
        // feature.<propertyNameCamelCase>, for example:
        
        assert(feature.sectionsEnabled[HomeScreenSection.topSites] == true)

⚠️ Breaking Changes ⚠️

  • Android only: Accessing drawables has changed to give access to the resource identifier. (#4801)

    • Migration path to the old behaviour is:
    let drawable: Drawable = MyNimbus.features.exampleFeature.demoDrawable

    becomes:

    let drawable: Drawable = MyNimbus.features.exampleFeature.demoDrawable.resource

General iOS

What's changed

  • Moved SwiftKeychainWrapper from an external Swift Package to be bundled with FxA. This is due to issues Firefox iOS had with their dependency tree. (#4797)
  • Exposed all crates as targets for the XCFramework. (#4797)

v90.0.1

25 Jan 03:15
df53ad8

Choose a tag to compare

v90.0.1 (2022-01-24)

Full Changelog

Places

  • Fixed an issue with previously consumed errors for invalid URLs were propagating to consumers and causing a crash
    • Changed bookmarks_get_all_with_url and accept_result to accept a string instead of url

v90.0.0

20 Jan 21:08
d817251

Choose a tag to compare

v90.0.0 (2022-01-20)

Full Changelog

Places

⚠️ Breaking Changes ⚠️

  • Places has been completely UniFFI-ed

v89.0.0

20 Jan 19:09
463b5b6

Choose a tag to compare

v89.0.0 (2022-01-20)

Full Changelog

Supported Xcode Versions

  • Reverting the supported Xcode version from 13.2.1 to 13.1.0 to circumvent the issues with Swift Package Manager in Xcode 13.2.1. (#4787)

Nimbus☁️🔬🔭

What's New

  • Add Text and Image support for the FML to access bundled resources (#4784).

Breaking Change

  • The NimbusInterface now exposes a context: Context property.

v88.0.0

19 Jan 23:24
041f7f6

Choose a tag to compare

v88.0.0 (2022-01-19)

Full Changelog

Nimbus☁️🔬🔭

What's Changed

  • The SDK is now tolerant to legacy experiment recipes that have both feature and features in their branches (SDK-1989)

General

⚠️ Breaking Changes ⚠️

  • The bundled version of Glean has been updated to v43.0.2.
    See the Glean Changelog for full details.
    BREAKING CHANGE: Pass build info into initialize, which contains the build date.
    A suitable instance is generated by glean_parser in GleanMetrics.GleanBuild.info.

v86.2.2

13 Jan 22:20
8c36c7c

Choose a tag to compare

v86.2.2 (2022-01-13)

Full Changelog

Logins

What's changed

- The `update()` and `add_or_update()` methods will log rather than return an error when trying to update a duplicate login (#4648)

v87.3.0

12 Jan 00:07
5ceeb43

Choose a tag to compare

v87.3.0 (2022-01-11)

Full Changelog

Supported Xcode Versions

  • As of Jan 2022, support for Xcode version 13.2.1 is upcoming. After the associated PR is merged AS side and a release is cut, Fx-iOS will update on their side to fully support this Xcode version. See Fx-iOS's Wiki for details.

viaduct

What's New

  • Add support for PATCH methods. (#4751)

Nimbus

What's new

  • The Nimbus SDK now support application version targeting, where experiment creators can set app_version|versionCompare({VERSION}) >= 0 and the experiments will only target users running VERSION or higher. (#4752)
    • The versionCompare transform will return a positive number if app_version is greater than
      VERSION, a negative number if app_version is less than VERSION and zero if they are equal
    • VERSION must be passed in as a string, for example: app_version|versionCompare('95.!') >= 0 will target users who are on any version starting with 95 or above (95.0, 95.1, 95.2.3-beta, 96 etc..)