Quelle changelog.md
Sprache: unbekannt
|
|
Untersuchungsergebnis.md Download desUnknown {[0] [0] [0]}
---
layout: page
title: Changelog
permalink: /changelog/
---
# 153. 0 (In Development)
* **support-utils**
* Added `DiskLruCacheStore` to provide shared `DiskLruCache` read, write, remove, and clear helpers for disk-backed components.
* Added `CacheDirectoryMigration` to help migrating the cache directory used by `DiskLruCache`.
# 152.0
* **browser-engine-gecko**
* New `getTrackingProtectionEventsByDateRange`, `sumAllTrackingProtectionEvents` and `getEarliestTrackingProtectionDate` APIs to query the tracking protection database from Gecko. [Bug 2031989](https://bugzilla.mozilla.org/show_bug.cgi?id=2031989)
* **feature-session**
* New `FetchTrackingEventsUseCase`, `FetchTotalTrackersBlockedUseCase` and `FetchEarliestTrackingDateUseCase` usecases to query for tracking protection related dertails from the current engine. [Bug 2031989](https://bugzilla.mozilla.org/show_bug.cgi?id=2031989)
# 151.0
* **browser-engine-gecko**
* New Engine Settings API - `useContentBlockingDatabase` that allows controlling whether the content blocking database is enabled. [Bug 2030082](https://bugzilla.mozilla.org/show_bug.cgi?id=2030082)
# 150.0
* **browser-engine-gecko**
* The content blocking log will now inform also of blocked cross-site cookies. [Bug 2020898](https://bugzilla.mozilla.org/show_bug.cgi?id=2020898)
* **support-utils**
* The `Browsers().isDefaultBrowser()` method has been removed in favor of a more performant version available as a `Browsers.isDefaultBrowser()` static method. [Bug 2008662](https://bugzilla.mozilla.org/show_bug.cgi?id=2008662)
* **service-firefox-accounts**
* ⚠️ **Breaking change**: Removed `currentDeviceId` and `sessionToken` from `mozilla.components.service.fxa.store.Account`.
* Added the `FxaAccountManager.connectedAccount` method, which will return an `OAuthAccount` only if the user is in the `Connected` state.
* **support-test**
* ⚠️ **Breaking change**: Removed `MainCoroutineRule`. Inject Main Dispatcher if you need to override it in tests. [Bug 1984347](https://bugzilla.mozilla.org/show_bug.cgi?id=1984347)
# 149.0
* **lib-state**
* ⚠️ **Breaking change**: Removed the composableStore API from `ComposeExtensions.kt` in favor of the newer one from `StoreProvider.kt`. [Bug 2017822](https://bugzilla.mozilla.org/show_bug.cgi?id=2017822)
* **feature-search**
* `RegionMiddleware` will not anymore handle `BrowserStore`'s `InitAction`. If you need the region set when the application starts ensure either of `UpdateDistribution` or `RefreshSearchEnginesAction` is dispatched. [Bug 2012962](https://bugzilla.mozilla.org/show_bug.cgi?id=2012962)
* **browser-engine-gecko**
* New Settings API `DownloadDelegate` that used for `getSuggestedFilename` inside `GeckoEngineSession`.[Bug 2014471](https://bugzilla.mozilla.org/show_bug.cgi?id=2014471)
* **browser-engine-gecko** and **concept-engine**
* New Engine Settings API `firefoxRelay` that can be see to different modes with `FirefoxRelayMode`.
* Updated GeckoEngine and BrowserPreferencesRuntime to accommodate registering and unregistering multiple browser preferences at a time for observation. [Bug 2006095](https://bugzilla.mozilla.org/show_bug.cgi?id=2006095)
* Added `processBackPressed` API to `EngineSession` to handle back navigation events to dismiss some HTML elements such as <dialog>. [Bug 1966467](https://bugzilla.mozilla.org/show_bug.cgi?id=1966467)
* **concept-storage**
* Introduced `Login.hint` for context on the login origin that an embedder can use to determine how to handle it.
* **lib-state**
* ⚠️ **Breaking change**: Removed flowScoped with the default `coroutineScope` set to `MainScope()`. Always provide your own `CoroutineDispatcher`.
# 148.0
* **support-utils**
* `keyboardAsState` available to use in Jetpack Compose code to know when the IME is shown or hidden. This works more reliably on older Android versions than the frameworks `isImeVisible` API. [Bug 1988730](https://bugzilla.mozilla.org/show_bug.cgi?id=1988730).
* **browser-engine-gecko** and **concept-engine**
* Add optional link text support to HitResult.UNKNOWN to allow getting the text associated with a link in response to a long click
* **feature-contextmenu**
* New: "Copy link text" context menu candidate to allow for the ability to copy link text [Bug 1809303](https://bugzilla.mozilla.org/show_bug.cgi?id=1809303)
* **lib-state**
* ⚠️ **Breaking change**: Removed `MiddlewareContext`. You can now pass in a `Store` directly when invoking a `Middleware`. [Bug 2005443](https://bugzilla.mozilla.org/show_bug.cgi?id=2005443).
* **lib-crash**
* New `CrashReporter.registerDeferredInitializer()` allows registering a lazy initializer for CrashReporter that is evaluated only when `requireInstance` is accessed, avoiding immediate initialization of dependencies [Bug 2005839](https://bugzilla.mozilla.org/show_bug.cgi?id=2005839)
# 147.0
* **browser-state**:
* ⚠️ **Breaking change**: New `Unknown` third state for the `SecurityStatus` of the connection used in a tab. The `secure` property has been migrated to `isSecure`. [Bug 2000617](https://bugzilla.mozilla.org/show_bug.cgi?id=2000617).
* **lib-state**
* ⚠️ **Breaking change**: Removed thread marshalling from Stores [Bug 1980348](https://bugzilla.mozilla.org/show_bug.cgi?id=1980348).
* `Store.dispatch` is now invoked on the calling thread.
* `Store.dispatch` no longer spawns a new `Job` (it now returns `Unit`).
* ⚠️ **Breaking change**: Removed UIStore [Bug 1980350](https://bugzilla.mozilla.org/show_bug.cgi?id=1980350)
* **ui-widgets**
* New `EngineViewScrollingDataBehavior` meant to only be used to animate a bottom toolbar/banner in sync with the current webpage [Bug 1991654](https://bugzilla.mozilla.org/show_bug.cgi?id=1991654).
* **concept-engine** and **browser-engine-gecko**
* New `verticalScrollPosition` and `verticalScrollDelta` APIs exposing the current scroll position and delta of the webpage [Bug 1990215](https://bugzilla.mozilla.org/show_bug.cgi?id=1990215).
* **lib-state**
* New `fragmentStore`, `activityStore`, `composableStore` and `navBackStackStore` APIs available to build a new Store and persist its State in a ViewModel ensuring that it survives Activity recreations. These APIs supersede the existing ones and avoid the possibility of memory leaks. [Bug 1996676](https://bugzilla.mozilla.org/show_bug.cgi?id=1996676).
* ⚠️ **Breaking change**: The `lazyStore` API was removed in favor of the new `fragmentStore`, `activityStore` and `composableStore` APIs. [Bug 1996676](https://bugzilla.mozilla.org/show_bug.cgi?id=1996676).
# 146.0
# 145.0
* **support-ktx**
* Bug fixed [Bug 1979064](https://bugzilla.mozilla.org/show_bug.cgi?id=1979064). Added back the API checks for `Window.setupPersistentInsets` and `ImeInsetsSynchronizer.setup` as on Android <13 the insets framework is not reliable.
* **support-appservices**
* ⚠️ **Breaking change**: Updated the `AppServicesInitializer.init` to take in a configuration object instead of individual components.
* **feature-framebusting**
* New `GeckoSession.PromptDelegate.RedirectPrompt` prompt that is displayed when a third-party redirect is blocked. [Bug 1988107](https://bugzilla.mozilla.org/show_bug.cgi?id=1988107)
* **feature-sitepermissions**
* Bug fixed [Bug 1986429](https://bugzilla.mozilla.org/show_bug.cgi?id=1986429). Ensure that when accepting website notification permission, the user is prompted for system-level notification opt-in, if the system permission was not enabled.
# 144.0
* **feature-customtabs**
* Bug fixed [Bug 1983103](https://bugzilla.mozilla.org/show_bug.cgi?id=1983103). Fixed issues with system status bars not being correctly themed for custom tabs and PWAs when used on devices with edge-to-edge enabled.
* **support-ktx**
* New `Window.setSystemBarsBackground()` allows to still theme the status bar, navigation bar and other insets background in landscape mode even when edge-to-edge is enabled and Android doesn't theme these anymore. [Bug 1981861](https://bugzilla.mozilla.org/show_bug.cgi?id=1981861)
* **feature-sitepermissions**
* New `SitePermissionsLearnMoreUrlProvider` interface that allows customizing whether to show "learn more" links in permission prompts and what URl to link to. [Bug 1985629](https://bugzilla.mozilla.org/show_bug.cgi?id=1985629)
# 143.0
* **feature-downloads**:
* `AbstractFetchDownloadService.onDestroy` will now cancel all non-completed downloads. [Bug 1977393](https://bugzilla.mozilla.org/show_bug.cgi?id=1977393)
* **concept-engine** and **browser-engine-gecko**
* Added methods to get and set multiple browser preferences. [Bug 1974800](https://bugzilla.mozilla.org/show_bug.cgi?id=1974800)
* ️ Added a mechanism to observe browser preferences changing. Use `registerPrefObserverDelegate` to register the delegate on the engine and `registerPrefForObservation` to register a specific pref for observation. Alternatively, use `BrowserPrefObserverFeature` which handles registration and broadcasts the events using an `ObserverRegistery`.
* Added new LNA content permissions - `ContentLocalDeviceAccess` and `ContentLocalNetworkAccess` and map to respective `GeckoSession.PermissionDelegate` permission. [Bug 1971500](https://bugzilla.mozilla.org/show_bug.cgi?id=1971500)
* Added `localDeviceAccess` and `localNetworkAccess` to `SitePermissions`
* **feature-sitepermissions**
* Added two new columns - `local_device_access` and `local_network_access` to `site_permissions` db table
* Migrated `SitePermissionsDatabase` to version 9
# 142.0
* **feature-tabs**:
* Updated `LastTabFeature` to not close the current tab when there's no history. [Bug 1813413](https://bugzilla.mozilla.org/show_bug.cgi?id=1813413).
* **feature-downloads**:
* `DownloadAction.RemoveDeletedDownloads` will now only remove downloads that are cancelled or completed. [Bug 1971848](https://bugzilla.mozilla.org/show_bug.cgi?id=1971848).
* **concept-engine** and **browser-engine-gecko**
* ️ Added `TrackingProtectionPolicy.bounceTrackingProtectionMode` it allows configuring the Bounce Tracking Protection feature, disabled by default. [Bug 1963445](https://bugzilla.mozilla.org/show_bug.cgi?id=1963445)
* ⚠️ Options to get, set, and clear browser preferences now require opt in for additional safety.
* ️ Added `TrackingProtectionPolicy.allowListBaselineTrackingProtection` and `TrackingProtectionPolicy.allowListConvenienceTrackingProtection`. Url-classifier(tracking-protection, tracking-annotation, etc) exception entries are categorized into baseline and convenience. The new member variables specify whether exception entries from the corresponding categories are applied. [Bug 1970632](https://bugzilla.mozilla.org/show_bug.cgi?id=1970632)
* **browser-state**
* Removed `ContentState.isProductUrl` and related internal changes.
* **support-ktx**
* Remove API level check for `setupPersistentInsets` and add a new option to consume insets; the default is the same current behaviour. [Bug 1977270](https://bugzilla.mozilla.org/show_bug.cgi?id=1977270) and [Bug 1976746](https://bugzilla.mozilla.org/show_bug.cgi?id=1976746).
* Remove API level check for `ImeInsetsSynchronizer`. [Bug 1977270](https://bugzilla.mozilla.org/show_bug.cgi?id=1977270)
* **All components**
* ⚠️ Introduced `@ExperimentalAndroidComponentsApi` to indicate an API requires special care. Opt in via `@OptIn(ExperimentalAndroidComponentsApi::class)`.
* **service-firefox-accounts**
* Renamed `withConstellation` to `withConstellationIfExists` to signify the block execution is dependant on the account being authenticated first. [Bug 1794207](https://bugzilla.mozilla.org/show_bug.cgi?id=1794207)
# 141.0
=======
* **feature-accounts**:
* Respond to FxA with an error response when unknown web channel messages are sent to the client.
* **concept-engine**, **browser-engine-gecko**: Added methods to get, set, and clear browser preferences. [Bug 1949876](https://bugzilla.mozilla.org/show_bug.cgi?id=1949876)
* **ui-widgets**
* Updated EngineViewClippingBehavior to support top and bottom toolbars at the same time.
* **feature-downloads**
* ⚠️ **Breaking change**: Changed constructor of `DownloadEstimator`. [Bug 1970176](https://bugzilla.mozilla.org/show_bug.cgi?id=1970176).
* ⚠️ **Breaking change**: Changed parameters of `DownloadEstimator.estimatedRemainingTime`. [Bug 1970176](https://bugzilla.mozilla.org/show_bug.cgi?id=1970176).
* ⚠️ **Breaking change**: Added new `downloadEstimator` abstract val to `AbstractFetchDownloadService`. [Bug 1970176](https://bugzilla.mozilla.org/show_bug.cgi?id=1970176).
* ⚠️ **Breaking change**: Removed `dateTimeProvider` abstract val from `AbstractFetchDownloadService`. [Bug 1970176](https://bugzilla.mozilla.org/show_bug.cgi?id=1970176).
* ⚠️ **Breaking change**: Changed function signature of `DownloadNotification.createOngoingDownloadNotification`. [Bug 1970176](https://bugzilla.mozilla.org/show_bug.cgi?id=1970176).
* ⚠️ **Breaking change**: Changed behavior and constructor signatures of `TemporaryDownloadFeature`, `CopyDownloadFeature` and `ShareResourceFeature`. [Bug 1958367](https://bugzilla.mozilla.org/show_bug.cgi?id=1958367).
* Renamed `cleanupCacheCoroutineDispatcher` to `ioDispatcher`
* The new `ioDispatcher` param is now also used for the download operation.
# 140.0
* **feature-downloads**
* `DownloadNotification.createOngoingDownloadNotification` will now show the download time remaining instead of the percentage completed in the notification summary. [Bug 1956577](https://bugzilla.mozilla.org/show_bug.cgi?id=1956577).
* Added `DateTimeProvider` to provide date and time information. [Bug 1956577](https://bugzilla.mozilla.org/show_bug.cgi?id=1956577).
* Added `DownloadEstimator` to estimate download time remaining. [Bug 1956577](https://bugzilla.mozilla.org/show_bug.cgi?id=1956577).
* ⚠️ **Breaking change**: Added `downloadEstimator` property to `DownloadJobState`. [Bug 1956577](https://bugzilla.mozilla.org/show_bug.cgi?id=1956577).
* ⚠️ **Breaking change**: Added new 'dateTimeProvider' abstract val to `AbstractFetchDownloadService`. [Bug 1956577](https://bugzilla.mozilla.org/show_bug.cgi?id=1956577).
* ⚠️ **Breaking change**: Removed Deprecated `Long.toMegabyteOrKilobyteString` in v140. [Bug 1955689](https://bugzilla.mozilla.org/show_bug.cgi?id=1955689).
* **feature-app-links**
* Added `alwaysOpenCheckboxAction` parameter to `AppLinksFeature`, this was moved from `AppLinksInterceptor`.
* ⚠️ **Breaking change**: Moved prompt functionality back to `AppLinksFeature`.
* ⚠️ **Breaking change**: Removed `interceptLinkClicks` parameter from `AppLinksInterceptor` since no usage sets this to false.
* **support-rusterrors**:
* ⚠️ **Breaking change**: Deprecated in place of `support-appservices`. See below.
* **support-rusthttp**:
* ⚠️ **Breaking change**: Deprecated in place of `support-appservices`. See below.
* **support-rustlog**:
* ⚠️ **Breaking change**: Deprecated in place of `support-appservices`. See below.
* **support-appservices**:
* New component that components the individual rust ones.
* Adds a `AppServicesInitializer.init` that preserves the sequence for individual component initialization.
* Namespacing has been preserved from previous components, so only the dependency package needs updating.
# 140.0
* **feature-downloads**
* `DownloadNotification.createOngoingDownloadNotification` will now show the download time remaining instead of the percentage completed in the notification summary. [Bug 1956577](https://bugzilla.mozilla.org/show_bug.cgi?id=1956577).
* Added `DateTimeProvider` to provide date and time information. [Bug 1956577](https://bugzilla.mozilla.org/show_bug.cgi?id=1956577).
* Added `DownloadEstimator` to estimate download time remaining. [Bug 1956577](https://bugzilla.mozilla.org/show_bug.cgi?id=1956577).
* ⚠️ **Breaking change**: Added `downloadEstimator` property to `DownloadJobState`. [Bug 1956577](https://bugzilla.mozilla.org/show_bug.cgi?id=1956577).
* ⚠️ **Breaking change**: Added new 'dateTimeProvider' abstract val to `AbstractFetchDownloadService`. [Bug 1956577](https://bugzilla.mozilla.org/show_bug.cgi?id=1956577).
* ⚠️ **Breaking change**: Removed Deprecated `Long.toMegabyteOrKilobyteString` in v140. [Bug 1955689](https://bugzilla.mozilla.org/show_bug.cgi?id=1955689).
* **feature-app-links**
* Added `alwaysOpenCheckboxAction` parameter to `AppLinksFeature`, this was moved from `AppLinksInterceptor`.
* ⚠️ **Breaking change**: Moved prompt functionality back to `AppLinksFeature`.
* ⚠️ **Breaking change**: Removed `interceptLinkClicks` parameter from `AppLinksInterceptor` since no usage sets this to false.
* **feature-accounts**:
* Add support for `WebChannelCommand.SYNC_PREFERENCES` web channel messages.
# 139.0
* **feature-downloads**
* ⚠️ **Breaking change**: Added new `fileSizeFormatter` abstract val to `AbstractFetchDownloadService`. [Bug 1956580](https://bugzilla.mozilla.org/show_bug.cgi?id=1956580).
* ⚠️ **Breaking change**: Added new `fileSizeFormatter` parameter to `DownloadNotification.createDownloadGroupNotification`. [Bug 1956580](https://bugzilla.mozilla.org/show_bug.cgi?id=1956580).
* Changed download notification group to display the size downloaded so far and the total file size, instead of the download percentage completed.
* ⚠️ **Breaking change**: Added new `fileSizeFormatter` parameter to `DownloadNotification.createOngoingDownloadNotification`. [Bug 1956580](https://bugzilla.mozilla.org/show_bug.cgi?id=1956580).
* Removed the download percentage completed in the notification summary.
* Changed the content text to display the size downloaded so far and the total file size, instead of the download percentage completed.
* ⚠️ **Breaking change**: Added new `fileSizeFormatter` parameter to `DownloadNotification.getSummaryList`. [Bug 1956580](https://bugzilla.mozilla.org/show_bug.cgi?id=1956580).
* Changed download notification group to display the size downloaded so far and the total file size, instead of the download percentage completed.
* ⚠️ **Breaking change**: Added new `fileSizeFormatter` parameter to `DownloadNotification.getProgress`. [Bug 1956580](https://bugzilla.mozilla.org/show_bug.cgi?id=1956580).
* Changed the function to return the size downloaded so far and the total file size, instead of the download percentage completed.
* ⚠️ **Breaking change**: Added new `fileSizeFormatter` parameter to `DownloadNotification.getStatusDescription`. [Bug 1956580](https://bugzilla.mozilla.org/show_bug.cgi?id=1956580).
* Changed the return of `DOWNLOADING` status to display the size downloaded so far and the total file size, instead of the download percentage completed.
* **All components**
* ⚠️Increased `compileSdkVersion` to 36 (Android 16)
* **support-remotesettings**
* Added `RemoteSettingsSyncWorker` and `RemoteSettingsSyncScheduler` to schedule periodic sync with remote settings. [Bug 1947538](https://bugzilla.mozilla.org/show_bug.cgi?id=1947538)
# 138.0
* **support-ktx**
* ⚠️ **Breaking change**: `Window.setupPersistentInsets()` will only work on Android 13+ to avoid framework insets inconsistencies on lower versions of Android. [Bug 1946404](https://bugzilla.mozilla.org/show_bug.cgi?id=1946404)
* ⚠️ **Breaking change**: `ImeInsetsSynchronizer` will only work on Android 13+ to avoid framework insets inconsistencies on lower versions of Android. [Bug 1946404](https://bugzilla.mozilla.org/show_bug.cgi?id=1946404)
* **browser-state**, **concept-engine**
* ⚠️ **Breaking change**: Added new `origins` parameter to `WebExtensionDelegate.onOptionalPermissionsRequest` and `WebExtensionPromptRequest.AfterInstallation.Permissions.Optional`. [Bug 1935680](https://bugzilla.mozilla.org/show_bug.cgi?id=1935680).
* **support-webextensions**
* Renamed `WebExtensionController` to `BuiltInWebExtensionController`. [Bug 1950422](https://bugzilla.mozilla.org/show_bug.cgi?id=1950422).
* **browser-toolbar**
* Rename `securityIconSecure` and `securityIconInsecure` to `siteIconSecure` and `siteIconInsecure`. See [Bug 1920085](https://bugzilla.mozilla.org/show_bug.cgi?id=1920085).
* Adds `siteIconLocalPdf` ColorInt to to `DisplayToolbar.Colors`. See [Bug 1920085](https://bugzilla.mozilla.org/show_bug.cgi?id=1920085).
* **concept-toolbar**
* Rename `Toolbar.siteSecure` property to `Toolbar.siteInfo`. See [Bug 1920085](https://bugzilla.mozilla.org/show_bug.cgi?id=1920085).
* Rename `Toolbar.SiteSecurity` enum to `Toolbar.SiteInfo` and adds `LOCAL_PDF` enum value. See [Bug 1920085](https://bugzilla.mozilla.org/show_bug.cgi?id=1920085).
* Rename `DisplayToolbarViews.securityIndicator` and `DisplayToolbarViews.setOnSiteSecurityClickedListener` to `DisplayToolbarViews.siteInfoIndicator` and `DisplayToolbarViews.setOnSiteInfoClickedListener`. See [Bug 1920085](https://bugzilla.mozilla.org/show_bug.cgi?id=1920085).
* **feature-search**
* Adds `SearchEngineSelectorRepository` and `SearchEngineRepository` to `SearchMiddleware` See [Bug 1944964](https://bugzilla.mozilla.org/show_bug.cgi?id=1944964).
* **feature-toolbar**
* When showing a local PDF, the site security icon will display the `mozac_ic_page_portrait_24` icon. See [Bug 1920085](https://bugzilla.mozilla.org/show_bug.cgi?id=1920085).
* **ui-icons**
* Adds a `mozac_ic_page_portrait_24` icon to be used as a security icon when browsing a local pdf. See [Bug 1920085](https://bugzilla.mozilla.org/show_bug.cgi?id=1920085).
* **feature-addons**
* Added `AddonManager.getAddonByID` method to allow querying a specific add-on. This is more efficient than calling `AddonManager.getAddons()` and selecting a specific result. See [Bug 1949963](https://bugzilla.mozilla.org/show_bug.cgi?id=1949963).
* **feature-prompts**
* Added support for selecting a client authentication certificate using `CertificatePicker`. [Bug 1813930](https://bugzilla.mozilla.org/show_bug.cgi?id=1813930).
* **feature-downloads**
* Added `FileSizeFormatter` to help with displaying file sizes in a localized manner. See [Bug 1951907](https://bugzilla.mozilla.org/show_bug.cgi?id=1951907).
* Deprecated `Long.toMegabyteOrKilobyteString`. Use `FileSizeFormatter` instead. See [Bug 1951907](https://bugzilla.mozilla.org/show_bug.cgi?id=1951907).
# 137.0
* **support-ktx**
* Added `String.isContentUrl` method that checks if the string is a content URL. [Bug 1944084](https://bugzilla.mozilla.org/show_bug.cgi?id=1944084).
* Added `String.isAboutUrl` method that checks if the string is an about URL. [Bug 1944084](https://bugzilla.mozilla.org/show_bug.cgi?id=1944084).
* **browser-state**, **concept-engine**, **feature-addons**
* ⚠️ **Breaking change**: Added new `origins` parameter to `PermissionsDialogFragment.newInstance`. [Bug 1911999](https://bugzilla.mozilla.org/show_bug.cgi?id=1911999).
* ⚠️ **Breaking change**: Added new `origins` parameter to `WebExtensionDelegate.onInstallPermissionsRequest` and `WebExtensionPromptRequest.AfterInstallation.Permissions.Required`. [Bug 1911999](https://bugzilla.mozilla.org/show_bug.cgi?id=1911999).
# 136.0
* **support-ktx**
* New `ExpandablePrompt` interface implemented by `AddressSelectBar`, `CreditCardSelectBar` to inform when it is expanded or collapsed. [Bug 19010409](https://bugzilla.mozilla.org/show_bug.cgi?id=19010409).
# 135.0
* **support-ktx**
* `Context.setApplicationNightMode()` will apply the provided night mode on all API levels and persist it on Android 31+ so that on new launches the splashscreen matches. [Bug 1919488](https://bugzilla.mozilla.org/show_bug.cgi?id=1919488)
* **feature-downloads**
* `AbstractFetchDownloadService.createOpenFileIntent` will no longer create an intent to open PDF files from the caller application if it can open PDFs. The user will be prompted to choose an application. See [Bug 1941609](https://bugzilla.mozilla.org/show_bug.cgi?id=1941609).
* **feature-prompts**
* New `ToggleablePrompt` interface implemented by `AddressSelectBar`, `CreditCardSelectBar` `LoginSelectBar` and `SuggestStrongPasswordBar` to inform when these are shown or hidden. [Bug 1909746](https://bugzilla.mozilla.org/show_bug.cgi?id=1909746).
* New `ExpandablePrompt` interface implemented by `LoginSelectBar` to inform when it is expanded or collapsed. [Bug 1909746](https://bugzilla.mozilla.org/show_bug.cgi?id=1909746).
# 134.0
* **browser-state**
* Added `DownloadState.isPdf` property to indicate whether the file associated with the download is a PDF. See [Bug 1920092](https://bugzilla.mozilla.org/show_bug.cgi?id=1920092).
* **concept-storage**
* Exposed `lastModified` property for `BookmarkNode`s that includes timestamp data for the last time the node was modified. [Bug 1928444](https://bugzilla.mozilla.org/show_bug.cgi?id=1928444)
* **feature-downloads**
* `AbstractFetchDownloadService.createOpenFileIntent` will create an intent to open PDF files from the caller application if it can open PDFs. See [Bug 1920092](https://bugzilla.mozilla.org/show_bug.cgi?id=1920092).
* `AbstractFetchDownloadService.openFile` will open PDF files from the caller application if it can open PDFs. See [Bug 1920092](https://bugzilla.mozilla.org/show_bug.cgi?id=1920092).
* **browser-toolbar**
* Added internal data class `DisplayMargins` in `DisplayToolbar` class that can be used to specify margins for `DisplayToolbar`'s views
* Added `setUrlBackgroundMargins` method in `DisplayToolbar` class that client apps can use to specify custom `DisplayMargins` for the `background` view. [Bug 1927778](https://bugzilla.mozilla.org/show_bug.cgi?id=1927778)
* **lib-crash**
* ⚠️ **Breaking change**: Crash database functions dealing with unsent crashes have been renamed and now require a timestamp parameter as the start of the range to search for unsent crashes.
# 133.0
* **browser-store**
* Adds `desktopMode` property to the `BrowserStore` to know whether or not browsing is in desktop mode. The pre-existing Action to update a tab's desktop mode has been renamed to disambiguate its intended use case. [Bug 1910768](https://bugzilla.mozilla.org/show_bug.cgi?id=1910768)
* **browser-errorpages**
* Vertically center content of all error pages. Update image and text of no internet connection error page. [Bug 1921460](https://bugzilla.mozilla.org/show_bug.cgi?id=1921460)
* **browser-engine-gecko**
* Added `WebExtensionInstallException.SoftBlocked` to handle the `ERROR_SOFT_BLOCKED` error returned by Gecko.
* Adds support for enabling desktop mode browsing at the time of the engine session's creation. [Bug 1910768](https://bugzilla.mozilla.org/show_bug.cgi?id=1910768)
* **support-ktx**
* `Window.setupPersistentInsets()` will setup handling persistent insets instead of the framework to allow for custom handling of dynamic insets [Bug 1911042](https://bugzilla.mozilla.org/show_bug.cgi?id=1911042)
* `ImeInsetsSynchronizer` allows synchronizing the resize animation for any View which should be shown at the top of the keyboard while this is showing or hiding. [Bug 1911042](https://bugzilla.mozilla.org/show_bug.cgi?id=1911042)
* **ui-widgets**
* New `mozac_material_ripple_minimum_interaction_size` drawable for a 48dp ripple to be used when `selectableItemBackgroundBorderless` is too big and `selectableItemBackground` is too small. [Bug 1920554](https://bugzilla.mozilla.org/show_bug.cgi?id=1920554).
# 132.0
* **feature-awesomebar**
* The `onCancelEditing` now returns a result based on the `onStartEditing` and `onStopEditing` callback. [Bug 1917496](https://bugzilla.mozilla.org/show_bug.cgi?id=1917496)
* **support-ktx**:
* ⚠️ `Int.dpToPx` will round the values to the nearest integer, instead of always rounding down. [Bug 1912988](https://bugzilla.mozilla.org/show_bug.cgi?id=1912988)
* **support-utils**
* Added a `ColorUtils.calculateAlphaFromPercentage()` helper function to calculate the alpha value based on opacity. [Bug 1906795](https://bugzilla.mozilla.org/show_bug.cgi?id=1906795)
* **lib-crash**
* Adds `CrashReporter.hasUnsentCrashReports()` method, allowing the caller to find out if there is unsent crashes. [Bug 1904974](https://bugzilla.mozilla.org/show_bug.cgi?id=1904974)
* Adds `CrashReporter.unsentCrashReports()` method, allowing the caller to fetch all unsent crashes. [Bug 1904974](https://bugzilla.mozilla.org/show_bug.cgi?id=1904974)
* Adds Store primitives (State, Action, Middleware) to be able to drive the crash reporter UI. [Bug 1905774](https://bugzilla.mozilla.org/show_bug.cgi?id=1905774)
* Adds new parameter `useLegacyReporting` when initializing a `CrashReporter`. [Bug 1905774](https://bugzilla.mozilla.org/show_bug.cgi?id=1905774)
* **feature-session**:
* `FullscreenFeature.isFullscreen` now reports the new value if evaluated in the `fullScreenChanged` callback. [Bug 1918757](https://bugzilla.mozilla.org/show_bug.cgi?id=1918757)
# 131.0
* **All components**
* ⚠️Increased `compileSdkVersion` to 35 (Android 15)
* **browser-state**
* New `isPdf` property for `ContentState` to inform whether the current page is a pdf or not. [Bug 1817810](https://bugzilla.mozilla.org/show_bug.cgi?id=1817810)
# 130.0
* **ui-widgets**
* ⚠️ **Breaking change**: `SnackbarDelegate` now supports passing whether the snackbar should be shown/styled for an error. [Bug 1906657](https://bugzilla.mozilla.org/show_bug.cgi?id=1906657)
* ⚠️ **Breaking change**: `SnackbarDelegate` has a new method that allows passing in Strings for the snackbar text and action, not just string resource ids. [Bug 1892762](https://bugzilla.mozilla.org/show_bug.cgi?id=1892762).
* `DefaultSnackbarDelegate` will allow passing in Strings for the snackbar text and action beside string resource ids. [Bug 1892762](https://bugzilla.mozilla.org/show_bug.cgi?id=1892762).
* **feature-prompts**:
* ⚠️ **Breaking change**: `FullScreenNotification` interface is now implemented using a `FullScreenNotificationToast`. `FullScreenNotificationDialog` has been removed, see [Bug 1902996](https://bugzilla.mozilla.org/show_bug.cgi?id=1902996).
* **feature-customtabs**
* ⚠️ **Breaking change**: `CustomTabsToolbarFeature.updateTheme` was replaced with `CustomTabsToolbarFeature.customTabsColorsConfig` to allow more control over which UI elements should be themed or not. [Bug 1904325](https://bugzilla.mozilla.org/show_bug.cgi?id=1904325)
* New `CustomTabConfig.getConfiguredColorSchemeParams` and `ColorSchemeParams?.getToolbarContrastColor` to help get the colors specified in custom tabs configurations. [Bug 1904325](https://bugzilla.mozilla.org/show_bug.cgi?id=1904325)
* New `BrowserMenuBuilder?.addCustomMenuItems` method for populating the current menu builder with custom tabs items specified in the custom tabs configuration. [Bug 1904325](https://bugzilla.mozilla.org/show_bug.cgi?id=1904325)
* **browser-engine-gecko**
* Added `fingerprintingProtection` and `fingerprintingProtectionPrivateBrowsing` to settings. This allows user to toggle `privacy.fingerprintingProtection` and `privacy.fingerprintingProtection.pbmode` pref. [bug #1878911](https://bugzilla.mozilla.org/show_bug.cgi?id=1878911)
* **concept-engine**
* Added `fingerprintingProtection` and `fingerprintingProtectionPrivateBrowsing` to settings. This allows user to toggle `privacy.fingerprintingProtection` and `privacy.fingerprintingProtection.pbmode` pref. [bug #1878911](https://bugzilla.mozilla.org/show_bug.cgi?id=1878911)
* **feature-accounts**
* Added support for logout and account deletion web channel messages that update the `FxaAccountManager` and also dismiss any UI affordance in applications.
* **support-test**
* ⚠️ **Breaking change**: `expectException` now takes the expected exception class as a type parameter, instead of an argument, and returns the caught exception ([Bug 1908065](https://bugzilla.mozilla.org/show_bug.cgi?id=1908065)).
* **browser-storage-sync**
* ⚠️ **Breaking change**: The type parameters of `RemoteTabsCommandQueue.CommandSender` are now `<T, U>`, where `T : DeviceCommandOutgoing`, and `U` is the result of sending the command ([Bug 1908065](https://bugzilla.mozilla.org/show_bug.cgi?id=1908065)).
* ⚠️ **Breaking change**: `RemoteTabsCommandQueue.SendResult` has been renamed to `SendCloseTabsResult`, and has a new `RetryFor` variant ([Bug 1908065](https://bugzilla.mozilla.org/show_bug.cgi?id=1908065)).
* **service-firefox-accounts**
* `SendCommandException` is now a sealed class, with `TabsNotClosed` and `Other` variants ([Bug 1908065](https://bugzilla.mozilla.org/show_bug.cgi?id=1908065)).
* ⚠️ **Breaking change**: `FxaDeviceConstellation.sendCommandToDevice()` now throws an instance of `SendCommandException.TabsNotClosed` if some URLs in a `DeviceCommandOutgoing.CloseTab` couldn't be sent in the command ([Bug 1908065](https://bugzilla.mozilla.org/show_bug.cgi?id=1908065)).
# 129.0
* **browser-engine-gecko**
* Added `WebExtensionInstallException.AdminInstallOnly` to handle the `ERROR_ADMIN_INSTALL_ONLY` error returned by Gecko when the add-on can only be installed via Enterprise Policies.
* **browser-icons**
* Increased size of single-letter fallback-favicon, see [Bug 1905393](https://bugzilla.mozilla.org/show_bug.cgi?id=1905393).
* **feature-accounts-push**
* `CloseTabsUseCases.close()` now returns an `UndoableOperation`.
* New `CloseTabsCommandReceiver` class for processing "close synced tabs" commands received from other devices.
* ⚠️ **Breaking change**: `CloseTabsFeature()` now takes a `CloseTabsCommandReceiver` instead of an `onTabsClosed` callback.
* **lib-state**
* Introduce a `UiStore` that is similar to a regular `Store` but all the actions are dispatched and processed _immediately_ on the Main thread.
* ⚠️ **Note:** Using a `UiStore` means that long running work will block the main thread like any other long running UI work would. Ensure you are dispatching async work to an appropriate background dispatcher.
# 128.0
* **browser-toolbar**
* Added new data classes `CustomTabsToolbarButtonConfig` and `CustomTabsToolbarListeners` to `CustomTabsToolbarFeature`, see [Bug 1897811](https://bugzilla.mozilla.org/show_bug.cgi?id=1897811).
* Added new parameters for `showRefreshButton` and `showMenu` to `CustomTabsToolbarButtonConfig`, see [Bug 1897811](https://bugzilla.mozilla.org/show_bug.cgi?id=1897811).
* Added a new parameter for `refreshListener` and moved `shareListener` to `CustomTabsToolbarListeners`, see [Bug 1897811](https://bugzilla.mozilla.org/show_bug.cgi?id=1897811).
* **browser-state**, **browser-engine-gecko**
* Added a new parameter `adjustPriority` to `onCheckForFormData`, `UpdateHasFormDataAction` and `checkForFormData` to specify whether or not to adjust session priority after checking from data. [Bug 1893846](https://bugzilla.mozilla.org/show_bug.cgi?id=1893846)
* **concept-sync**
* New `DeviceCommandQueue` interface for implementing a queue that holds device commands until they're ready to be sent.
* **browser-storage-sync**
* New `RemoteTabsCommandQueue` class for persisting outgoing remote tabs commands.
* **feature-syncedtabs**
* New `SyncedTabsCommands` class that sends synced tabs commands to other devices when flushed.
* New `SyncedTabsCommandsFlushScheduler` class for scheduling a `SyncedTabsCommandsFlushWorker` to flush the `SyncedTabsCommands` queue.
* New `GlobalSyncedTabsCommandsProvider` object for providing the `SyncedTabsCommands` queue to the `SyncedTabsCommandsFlushWorker`.
* ⚠️ **Breaking change**: `SyncedTabsFeature` now takes the `SyncedTabsCommands` queue as an argument, and registers an observer to refresh the synced tabs list when the queue changes.
* **feature-accounts-push**
* ⚠️ **Breaking change**: `CloseTabsUseCases()` now takes a generic remote tabs command queue as its argument.
* ⚠️ **Breaking change**: `CloseTabsUseCases.close()` no longer returns a value.
# 127.0
* **feature-prompts** **browser-storage-sync**
* A new `isLoginAutofillEnabled` callback is available in `PromptFeature` and `GeckoLoginStorageDelegate` to allow clients controlling whether saved logins should be autofilled or not. Default is false
* **browser-state**
* Added `TabSessionState.getUrl()` extension function that will return the URL that could be
used for various features such as bookmarks or share regardless of the mode the browser is in (e.g. Reader mode). [Bug 1885628](https://bugzilla.mozilla.org/show_bug.cgi?id=1885628).
* **support-base**
* Added `StartForegroundService` to safely start a foreground service, see [Bug 1839039](https://bugzilla.mozilla.org/show_bug.cgi?id=1839039) for crash reference.
* Added `ProcessInfoProvider` and `BuildVersionProvider` to get information about the app process and the build version.
* **support-utils**
* Added `DebouncedQueue`, a queue that manages function execution with a debounce mechanism.
* **browser-engine-gecko**
* For screenshot capture, include exception in failure result rather than throwing.
* **feature-accounts-push**
* New `CloseTabsFeature` for closing tabs on this device from other devices that are signed to the same Mozilla account.
* New `CloseTabsUseCase` for closing tabs on other devices from this device.
* **concept-sync**
* New `DeviceCapability.CLOSE_TABS` variant to indicate that a device supports closing synced tabs.
* New `DeviceCommandIncoming.TabsClosed` variant to represent a "close synced tabs" command received from another device.
* New `DeviceCommandOutgoing.CloseTab` variant to represent a "close synced tabs" sent to another device.
# 126.0
* **browser-menu**
* Added enabled state to `BrowserMenuImageText`, see [Bug 1884769](https://bugzilla.mozilla.org/show_bug.cgi?id=1884769).
* **feature-downloads**
* Content intent of completed `DownloadNotification` now uses a `PendingIntent` which launches an `Activity` directly, see [Bug 1885167](https://bugzilla.mozilla.org/show_bug.cgi?id=1885167).
* **concept-toolbar**
* Added the `setDisplayHorizontalPadding` method, allowing the caller to dynamically adjust the horizontal padding for the display toolbar.
# 125.0
* [Commits](https://github.com/mozilla-mobile/firefox-android/compare/releases_v124..releases_v125)
* [Dependencies](https://github.com/mozilla-mobile/firefox-android/blob/releases_v125/android-components/plugins/dependencies/src/main/java/DependenciesPlugin.kt)
* [Gecko](https://github.com/mozilla-mobile/firefox-android/blob/releases_v125/android-components/plugins/dependencies/src/main/java/Gecko.kt)
* [Configuration](https://github.com/mozilla-mobile/firefox-android/blob/releases_v125/android-components/.config.yml)
* **concept-toolbar**:
* Added a new method for `ActionButton` to update the contentDescription and the iconTint, see [Bug 1875817](https://bugzilla.mozilla.org/show_bug.cgi?id=1875817).
* **concept-engine**
* Added `onLocationChange#hasUserGesture` parameter. This indicates if a location change was requested while a user gesture was active. [bug #1804636](https://bugzilla.mozilla.org/show_bug.cgi?id=1804636)
* **lib-dataprotect**
* Remove unused `KeyUtils.generateEncryptionKey` function.
# 124.0
* [Commits](https://github.com/mozilla-mobile/firefox-android/compare/releases_v123..releases_v124)
* [Dependencies](https://github.com/mozilla-mobile/firefox-android/blob/releases_v124/android-components/plugins/dependencies/src/main/java/DependenciesPlugin.kt)
* [Gecko](https://github.com/mozilla-mobile/firefox-android/blob/releases_v124/android-components/plugins/dependencies/src/main/java/Gecko.kt)
* [Configuration](https://github.com/mozilla-mobile/firefox-android/blob/releases_v124/android-components/.config.yml)
* **feature-prompts**:
* Added `FileUploadsDirCleaner` deletes temporary stale uploaded files, see [Bug 1860472](https://bugzilla.mozilla.org/show_bug.cgi?id=1860472).
* ⚠️ **This is a breaking change**: `PromptFeature` now requires a `FileUploadsDirCleaner` to be constructed
* **browser-state**
* `BrowserStore` and the `TabListReducer` will no longer automatically select a normal tab when all private tabs are removed. [Bug 1861459](https://bugzilla.mozilla.org/show_bug.cgi?id=1861459)
* **all components**
* All new usages of the `concept-fetch` component to make fetch requests now have conservative-mode off by default. Current features will continue to use conservative mode until individually updated.
* **browser-toolbar**
* Add `showMenuButton` and `hideMenuButton` API to `BrowserToolbar` and `DisplayToolbar` to allow hiding and showing of the menu button in
the `BrowserToolbar` [Bug 1864760](https://bugzilla.mozilla.org/show_bug.cgi?id=1864760)
* **feature-customtabs**
* Fallback behaviour when failing to open a new window in custom tab will now be loading the URL directly in the same custom tab. [Bug 1832357](https://bugzilla.mozilla.org/show_bug.cgi?id=1832357)
* **tooling-lint**
* Added a lint rule to detect when `Response#close` may not have been called. Note: Currently, this rule only runs on Android Components.
# 123.0
* [Commits](https://github.com/mozilla-mobile/firefox-android/compare/releases_v122..releases_v123)
* [Dependencies](https://github.com/mozilla-mobile/firefox-android/blob/releases_v123/android-components/plugins/dependencies/src/main/java/DependenciesPlugin.kt)
* [Gecko](https://github.com/mozilla-mobile/firefox-android/blob/releases_v123/android-components/plugins/dependencies/src/main/java/Gecko.kt)
* [Configuration](https://github.com/mozilla-mobile/firefox-android/blob/releases_v123/android-components/.config.yml)
* **feature-customtabs**
* Sharing a URL from a custom tab always uses the current url of the session. [Bug 1831803](https://bugzilla.mozilla.org/show_bug.cgi?id=1831803)
# 122.0
* [Commits](https://github.com/mozilla-mobile/firefox-android/compare/releases_v121..releases_v122)
* [Dependencies](https://github.com/mozilla-mobile/firefox-android/blob/releases_v122/android-components/plugins/dependencies/src/main/java/DependenciesPlugin.kt)
* [Gecko](https://github.com/mozilla-mobile/firefox-android/blob/releases_v122/android-components/plugins/dependencies/src/main/java/Gecko.kt)
* [Configuration](https://github.com/mozilla-mobile/firefox-android/blob/releases_v122/android-components/.config.yml)
* **concept-engine**
* Add `reportBackInStock` API to `EngineSession` to allow reporting a shopping product is back in stock. [Bug 1858947](https://bugzilla.mozilla.org/show_bug.cgi?id=1858947)
* Add `emailTrackerBlockingPrivateBrowsing` API to `Settings` to toggle Email Tracker Blocking in Private Browsing Mode [Bug 1866927](https://bugzilla.mozilla.org/show_bug.cgi?id=1866927)
* **feature-media**
* Added `FOREGROUND_SERVICE_MEDIA_PLAYBACK` permission to the `AndroidManifest.xml`.
* **support-utils**
* Recognize IPv6 literals in the address bar. [Bug 1803465](https://bugzilla.mozilla.org/show_bug.cgi?id=1803465)
* **browser-engine-gecko**
* Enable nested scrolling on `GeckoEngineView` as required by `NestedGeckoView`. [Bug 1847305](https://bugzilla.mozilla.org/show_bug.cgi?id=1847305)
* `NestedGeckoView` now disallows touch interception until we receive a response from `GeckoView#onTouchEventForDetailResult`. [Bug 1847305](https://bugzilla.mozilla.org/show_bug.cgi?id=1847305)
* Add `globalPrivacyControlEnabled` setting to allow enabling Global Privacy Control in normal browsing. This is always enabled in private browsing. [Bug 1865357](https://bugzilla.mozilla.org/show_bug.cgi?id=1865357)
* Adds support to toggle Email Tracker Blocking in Private Mode with new `emailTrackerBlockingPrivateBrowsing` API [Bug 1866927](https://bugzilla.mozilla.org/show_bug.cgi?id=1866927)
* **samples-browser**
* Use `VerticalSwipeRefreshLayout` from AndroidComponents instead of AndroidX `SwipeRefreshLayout` to represent better Fenix behavior
* **places-bookmark-storage**:
* Added `countBookmarksInTrees` to more efficiently determine how many bookmarks exist under part or parts of a bookmarks tree, which
is taken advantage of by `DesktopFolders`.
* **support-base**
* Make `message` param non optional for the Logging APIs. [Bug 1867606](https://bugzilla.mozilla.org/show_bug.cgi?id=1867606)
* **nimbus**
* Add `nimbus-is-ready` feature and call Nimbus' `recordIsReady` when the Nimbus API is ready [Bug 1875515](https://bugzilla.mozilla.org/show_bug.cgi?id=1875515).
# 121.0
* [Commits](https://github.com/mozilla-mobile/firefox-android/compare/releases_v120..releases_v121)
* [Dependencies](https://github.com/mozilla-mobile/firefox-android/blob/releases_v121/android-components/plugins/dependencies/src/main/java/DependenciesPlugin.kt)
* [Gecko](https://github.com/mozilla-mobile/firefox-android/blob/releases_v121/android-components/plugins/dependencies/src/main/java/Gecko.kt)
* [Configuration](https://github.com/mozilla-mobile/firefox-android/blob/releases_v121/android-components/.config.yml)
* **browser-state**:
* Added `TranslationsState` to track translation and translation restoration status. [Bug 1844523](https://bugzilla.mozilla.org/show_bug.cgi?id=1844523)
* **browser-engine-gecko**:
* Added support for translating and restoring a translated page on the engine. [Bug 1844523](https://bugzilla.mozilla.org/show_bug.cgi?id=1844523)
* **service-location**
* Added a cache lifetime to `MozillaLocationService`. [Bug 1855562](https://bugzilla.mozilla.org/show_bug.cgi?id=1855562)
* **feature-search**
* `RegionManager` now uses the cached result from it's `LocationService`. [Bug 1854988](https://bugzilla.mozilla.org/show_bug.cgi?id=1854988)
# 120.0
* [Commits](https://github.com/mozilla-mobile/firefox-android/compare/releases_v119..releases_v120)
* [Dependencies](https://github.com/mozilla-mobile/firefox-android/blob/releases_v120/android-components/plugins/dependencies/src/main/java/DependenciesPlugin.kt)
* [Gecko](https://github.com/mozilla-mobile/firefox-android/blob/releases_v120/android-components/plugins/dependencies/src/main/java/Gecko.kt)
* [Configuration](https://github.com/mozilla-mobile/firefox-android/blob/releases_v120/android-components/.config.yml)
* **feature-tabs**
* Adds parameter to `TabCounterToolbarButton` to show the mask while in private browsing mode.
* **feature-readerview**
* Adds `UUIDCreator` to `ReaderViewFeature` to create UUIDs for cache keys.
* Moves the implementation of presenting Reader Mode from the content scripts to `ReaderViewFeature`
* **browser-state**
* `SessionState.isProductUrl` is not affected for private tabs as shopping mode is disabled in private tabs. [Bug 1847063](https://bugzilla.mozilla.org/show_bug.cgi?id=1847063)
* `SessionState.isProductUrl` has been moved to `ContentState.isProductUrl`. [Bug 1857287](https://bugzilla.mozilla.org/show_bug.cgi?id=1857287)
# 119.0
* [Commits](https://github.com/mozilla-mobile/firefox-android/compare/releases_v118..releases_v119)
* [Dependencies](https://github.com/mozilla-mobile/firefox-android/blob/releases_v119/android-components/plugins/dependencies/src/main/java/DependenciesPlugin.kt)
* [Gecko](https://github.com/mozilla-mobile/firefox-android/blob/releases_v119/android-components/plugins/dependencies/src/main/java/Gecko.kt)
* [Configuration](https://github.com/mozilla-mobile/firefox-android/blob/releases_v119/android-components/.config.yml)
* **feature-tabs**
* Removed deprecated `TabsUseCases.AddNewPrivateTabUseCase`. [Bug 1853070](https://bugzilla.mozilla.org/show_bug.cgi?id=1853070)
* **lib-crash-sentry**
* `SentryService.initIfNeeded` is now public. [Bug 1851676](https://bugzilla.mozilla.org/show_bug.cgi?id=1851676)
* **feature-downloads**
* Added a custom permission `${applicationId}.permission.RECEIVE_DOWNLOAD_BROADCAST` that needs to be used by apps in order to receive download related broadcasts
* **ui-tabcounter**
* Adds a mask overlay to the tabcounter that can be shown with `toggleCounterMask`.
* **feature-push**
* We will no longer report `RecordNotFoundException` to the `CrashReporter` as it's largely a (web) application side reason why these messages are still trying to be delivered.
* **feature-awesomebar**
* Search engine suggestions will only be displayed if the user inputs at least 2 characters and matches the starting characters of the search engine name. [Bug 1851012](https://bugzilla.mozilla.org/show_bug.cgi?id=1851012)
* **logins-storage**
* Removed SQLCipher logins migration path for users from v95 and below
* ⚠️ **This will cause a loss to existing logins if**:
* User is using the logins feature and has a version of v95 or below
* User is NOT syncing their logins with another device
* User plans to upgrade from v95 to v119 or above
* **support-webextensions**
* ⚠️ **This is a breaking change**: Renamed `WebExtensionPopupFeature` to `WebExtensionPopupObserver` [Bug 1852335](https://bugzilla.mozilla.org/show_bug.cgi?id=1852335)
* Added `ExtensionProcessDisabledPopupObserver` to display to the user a dialog when the extensions process spawning has been disabled. [Bug 1846979](https://bugzilla.mozilla.org/show_bug.cgi?id=1846979)
* **concept-engine**
* ️️ Add `reanalyzeProduct` API to `EngineSession` to allow reanalyzing product from the engine. See more on [Bug 1853309](https://bugzilla.mozilla.org/show_bug.cgi?id=1853309).
* ️️ Add `requestAnalysisStatus` API to `EngineSession` to allow request product analysis status from the engine. See more on [Bug 1853309](https://bugzilla.mozilla.org/show_bug.cgi?id=1853309).
* ️️ Add `sendClickAttributionEvent` and `sendImpressionAttributionEvent` API to `EngineSession` to allow sending attribution events. See more on [Bug 1853309](https://bugzilla.mozilla.org/show_bug.cgi?id=1853309).
* ️️ Add `sendPlacementAttributionEvent` API to `EngineSession` to allow sending placement attribution events. See more on [Bug 1875106](https://bugzilla.mozilla.org/show_bug.cgi?id=1875106).
* **support-ktx**
* ⚠️ **This is a breaking change**: the `enterToImmersiveMode()` in `Activity.kt` has been renamed to `enterImmersiveMode()`.
* ⚠️ **This is a breaking change**: the `getWindowInsetsController()` in `Window.kt` has been renamed to `createWindowInsetsController()`.
# 118.0
* [Commits](https://github.com/mozilla-mobile/firefox-android/compare/releases_v117..releases_v118)
* [Dependencies](https://github.com/mozilla-mobile/firefox-android/blob/releases_v118/android-components/plugins/dependencies/src/main/java/DependenciesPlugin.kt)
* [Gecko](https://github.com/mozilla-mobile/firefox-android/blob/releases_v118/android-components/plugins/dependencies/src/main/java/Gecko.kt)
* [Configuration](https://github.com/mozilla-mobile/firefox-android/blob/releases_v118/android-components/.config.yml)
* **browser-state**
️️ Add `isProductUrl` to `SessionState` instance to indicate whether or not a product page of a given session state is being displayed. See more on [Bug 1842638](https://bugzilla.mozilla.org/show_bug.cgi?id=1842638).
* **concept-engine**
* ️️ Add `requestProductAnalysis` API to `EngineSession` to allow request product analysis result from the engine. See more on [Bug 1840692](https://bugzilla.mozilla.org/show_bug.cgi?id=1840692).
* ️️ Add `requestProductRecommendations` API to `EngineSession` to allow request product recommendations from the engine. See more on [Bug 1840693](https://bugzilla.mozilla.org/show_bug.cgi?id=1840693).
* **feature-addons**
* ⚠️ **This is a breaking change**: the method `getAvailableAddons()` in `AddonsProvider` has been renamed to `getFeaturedAddons()`.
* ⚠️ **This is a breaking change**: the `AddonCollectionProvider` has been renamed to `AMOAddonsProvider`.
* ⚠️ **This is a breaking change**: add new method `getAddonIconBitmap()` to `AddonsProvider`.
* ⚠️ **This is a breaking change**: added `getAddonsByGUIDs()` method to `AddonsProvider`.
* **support-ktx**
* `Activity.enterToImmersiveMode()` now extends the full screen view into the notch area. See more on [Bug 1849009](https://bugzilla.mozilla.org/show_bug.cgi?id=1849009)
* **browser-engine-gecko**:
* Implemented new `NimbusExperimentDelegate` to allow GeckoView to send and receive Nimbus experiment information. [Bug 1843592](https://bugzilla.mozilla.org/show_bug.cgi?id=1843592)
* Removed deprecated `ContentDelegate.onGetNimbusFeature`. Please use `ExperimentDelegate.onGetExperimentFeature`. [Bug 1843592](https://bugzilla.mozilla.org/show_bug.cgi?id=1843592)
# 117.0
* [Commits](https://github.com/mozilla-mobile/firefox-android/compare/releases_v116..releases_v117)
* [Dependencies](https://github.com/mozilla-mobile/firefox-android/blob/releases_v117/android-components/plugins/dependencies/src/main/java/DependenciesPlugin.kt)
* [Gecko](https://github.com/mozilla-mobile/firefox-android/blob/releases_v117/android-components/plugins/dependencies/src/main/java/Gecko.kt)
* [Configuration](https://github.com/mozilla-mobile/firefox-android/blob/releases_v117/android-components/.config.yml)
* **service-nimbus**
* Add `allow-coenrollment` to the `messaging` feature, making it possible to enroll in multiple experiments involving messaging.
* Modified the mechanism that ties a message back to experiment, to make sure we record exposure events correctly.
* **ui-icons**:
* Renamed icons to align with the naming used in the Acorn design system for Firefox. [Bug 1840210](https://bugzilla.mozilla.org/show_bug.cgi?id=1840210)
* Rename mozac_ic_storage to mozac_ic_storage_24.
* Rename mozac_ic_shield_disabled to mozac_ic_shield_slash_24
* Rename mozac_ic_settings to mozac_ic_settings_24
* Rename mozac_ic_pin_filled_2 to mozac_ic_pin_fill_24
* Rename mozac_ic_warning to mozac_ic_warning_fill_24
* Rename mozac_ic_shield to mozac_ic_shield_24
* Rename mozac_ic_video to mozac_ic_camera_24
* Rename mozac_ic_share to mozac_ic_share_android_24
* Rename mozac_ic_search to mozac_ic_search_24
* Rename mozac_ic_refresh to mozac_ic_arrow_clockwise_24
* Rename mozac_ic_reader_mode to mozac_ic_reader_view_24
* Rename mozac_ic_quit to mozac_ic_cross_circle_24
* Rename mozac_ic_private_browsing to mozac_ic_private_mode_24
* Rename mozac_ic_pin_remove to mozac_ic_pin_slash_24
* Rename mozac_ic_pin to mozac_ic_pin_24
* Rename mozac_ic_password_reveal to mozac_ic_eye_24
* Rename mozac_ic_password_hide to mozac_ic_eye_slash_24
* Rename mozac_ic_notification to mozac_ic_notification_24
* Rename mozac_ic_new to mozac_ic_plus_24
* Rename mozac_ic_microphone to mozac_ic_microphone_24
* Rename mozac_ic_menu to mozac_ic_ellipsis_vertical_24
* Rename mozac_ic_login to mozac_ic_login_24
* Rename mozac_ic_lock to mozac_ic_lock_24
* Rename mozac_ic_location to mozac_ic_location_24
* Rename mozac_ic_close_20 to mozac_ic_cross_20
* Rename mozac_ic_link to mozac_ic_link_24
* Rename mozac_ic_information to mozac_ic_information_24
* Rename mozac_ic_info to mozac_ic_information_fill_24
* Rename mozac_ic_home to mozac_ic_home_24
* Rename mozac_ic_help to mozac_ic_help_circle_24
* Rename mozac_ic_globe to mozac_ic_globe_24
* Rename mozac_ic_forward to mozac_ic_forward_24
* Rename mozac_ic_fingerprint to mozac_ic_fingerprinter_24
* Rename mozac_ic_extensions to mozac_ic_extension_24
* Rename mozac_ic_edit_suggestion to mozac_ic_append_up_24
* Rename mozac_ic_download to mozac_ic_download_24
* Rename mozac_ic_device_mobile to mozac_ic_device_mobile_24
* Rename mozac_ic_device_desktop to mozac_ic_device_desktop_24
* Rename mozac_ic_delete to mozac_ic_delete_24
* Rename mozac_ic_clear to mozac_ic_cross_circle_fill_24
* Rename mozac_ic_back to mozac_ic_back_24
* Rename mozac_ic_autoplay_blocked to mozac_ic_autoplay_slash_24
* Rename mozac_ic_check to mozac_ic_checkmark_24
* Rename mozac_ic_arrowhead_up to mozac_ic_chevron_up_24
* Rename mozac_ic_arrowhead_right to mozac_ic_chevron_right_24
* Rename mozac_ic_arrowhead_down to mozac_ic_chevron_down_24
* Rename mozac_ic_close to mozac_ic_cross_24
* Rename mozac_ic_add_to_homescreen to mozac_ic_add_to_homescreen_24
* Rename mozac_ic_cookies to mozac_ic_cookies_24
* Rename mozac_ic_sync to mozac_ic_sync_24
# 116.0
* [Commits](https://github.com/mozilla-mobile/firefox-android/compare/releases_v115..releases_v116)
* [Dependencies](https://github.com/mozilla-mobile/firefox-android/blob/releases_v116/android-components/plugins/dependencies/src/main/java/DependenciesPlugin.kt)
* [Gecko](https://github.com/mozilla-mobile/firefox-android/blob/releases_v116/android-components/plugins/dependencies/src/main/java/Gecko.kt)
* [Configuration](https://github.com/mozilla-mobile/firefox-android/blob/releases_v116/android-components/.config.yml)
* **support-base**
* Adds `NotificationManangerCompat` extension functions `areNotificationsEnabledSafe()` and `isNotificationChannelEnabled()`.
* Removes deprecated `BackHandler`, use `UserInteractionHandler` instead.
* **feature-pwa**
* Adds `WebAppContentFeature` to set the "display" mode from the web app manifest on the `EngineSession`.
* **browser-engine-gecko**:
* Added support for Printing on the Engine.
* Add support for `checkForPdfViewer` API for checking whether a PDF viewer is loaded on the current session or not.
* **concept-engine**:
* Added new `requestPrintContent` API in `Engine`. This is currently only supported in the Gecko Engine.
* **share**:
* Added 'Print' as an option on the share menu
* **browser-menu**:
* Added 'Print' as an option on the toolbar menu
* **support-ktx**
* Removes ifChanged Flow extension functions in favour of `distintUntilChanged` and `distintUntilChangedBy`in `kotlin.coroutines.flow`.
* **lib-crash**
* [Bug 1839697](https://bugzilla.mozilla.org/show_bug.cgi?id=1839697). Report Java exceptions in
the GleanCrashReporterService.
# 115.0
* [Commits](https://github.com/mozilla-mobile/firefox-android/compare/releases_v114..releases_v115)
* [Dependencies](https://github.com/mozilla-mobile/firefox-android/blob/releases_v115/android-components/plugins/dependencies/src/main/java/DependenciesPlugin.kt)
* [Gecko](https://github.com/mozilla-mobile/firefox-android/blob/releases_v115/android-components/plugins/dependencies/src/main/java/Gecko.kt)
* [Configuration](https://github.com/mozilla-mobile/firefox-android/blob/releases_v115/android-components/.config.yml)
* **lib-crash**
* Log exceptions that crash the `CrashReporter` to avoid silent failurs. See [Bug 1826591](https://bugzilla.mozilla.org/show_bug.cgi?id=1826591).
* **crash-sentry**
* Sends exceptions with an attached `Mechanism` to signal to Sentry that it was an uncaught exception. See [Bug 1835107](https://bugzilla.mozilla.org/show_bug.cgi?id=1835107)
* **concept-sync**
* Bug Fixed [Bug 1804274]((https://bugzilla.mozilla.org/show_bug.cgi?id=1804274)) Passes an entrypoint url parameter to FxA when logging-in, that represents the context which the app launches the Firefox Accounts web channel.
* **feature-push**
* Refactored [Bug 1829982]( https://bugzilla.mozilla.org/show_bug.cgi?id=1829982) Refactors push to remove the RustConnection layer, and instead use the underlying Rust layer directly.
# 114.0
* [Commits](https://github.com/mozilla-mobile/firefox-android/compare/releases_v1 | |