Revision control

Copy as Markdown

---
layout: post
title: "🎉 Release: Android Components 0.22"
date: 2018-09-07 20:40:00 +0200
categories: releases
author: csadilek
---
## News
* Firefox for Amazon's Fire TV is now using the browser-session, feature-session and browser-engine-system components. This simplified the code base by removing ~4000 lines of code (see [PR #1044](https://github.com/mozilla-mobile/firefox-tv/pull/1044) and [PR #982](https://github.com/mozilla-mobile/firefox-tv/pull/982) for details).
* Kudos to the application-services team for various bug fixes in our service-firefox-accounts component (see [commits](https://github.com/mozilla-mobile/android-components/compare/v0.21...v0.22) for details).
## Changelog
* Compiled against:
* Android
* SDK: 27
* Support Libraries: 27.1.1
* Kotlin
* Standard library: 1.2.61
* Coroutines: 0.23.4
* GeckoView
* Nightly: **64.0.20180905100117** 🔺
* Beta: **63.0b3** (0269319281578bff4e01d77a21350bf91ba08620) 🔺
* Release: **62.0** (9cbae12a3fff404ed2c12070ad475424d0ae869f) 🔺
* We now provide aggregated API docs. The docs for this release are hosted at: https://mozilla-mobile.github.io/android-components/api/0.22
* **browser-engine-***:
* EngineView now exposes lifecycle methods with default implementations. A `LifecycleObserver` implementation is provided which forwards events to EngineView instances.
```Kotlin
lifecycle.addObserver(EngineView.LifecycleObserver(view))
```
* Added engine setting for blocking web fonts:
```Kotlin
GeckoEngine(runtime, DefaultSettings(webFontsEnabled = false))
```
* `setDesktopMode()` was renamed to `toggleDesktopMode()`.
* **browser-engine-system**: The `X-Requested-With` header is now cleared (set to an empty String).
* **browser-session**: Desktop mode can be observed now:
```Kotlin
session.register(object : Session.Observer {
fun onDesktopModeChange(enabled: Boolean) {
// ..
}
})
```
* **service-fretboard**:
* `Fretboard` now has synchronous methods for adding and clearing overrides: `setOverrideNow()`, `clearOverrideNow`, `clearAllOverridesNow`.
* Access to `Experiment.id` is now deprecated and is scheduled to be removed in a future release (target: 0.24). The `id` is an implementation detail of the underlying storage service and was not meant to be exposed to apps.
* **ui-tabcounter**: Due to a packaging error previous releases of this component didn't contain any compiled code. This is the first usable release of the component.