From d8bbc7858622b6d9c278469aab701ca0b609cddf Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Wed, 15 May 2024 05:35:49 +0200 Subject: Merging upstream version 126.0. Signed-off-by: Daniel Baumann --- .../_archive/2018-07-26-release-0.16.1.markdown | 41 +++++++++++ .../docs/_archive/2018-08-03-release-0.17.markdown | 26 +++++++ .../docs/_archive/2018-08-10-release-0.18.markdown | 27 +++++++ .../docs/_archive/2018-08-17-release-0.19.markdown | 44 +++++++++++ .../docs/_archive/2018-08-24-release-0.20.markdown | 25 +++++++ .../docs/_archive/2018-08-31-release-0.21.markdown | 85 ++++++++++++++++++++++ .../docs/_archive/2018-09-07-release-0.22.markdown | 56 ++++++++++++++ .../docs/_archive/2018-09-13-release-0.23.markdown | 81 +++++++++++++++++++++ .../docs/_archive/2018-09-21-release-0.24.markdown | 84 +++++++++++++++++++++ .../docs/_archive/2018-09-26-release-0.25.markdown | 42 +++++++++++ 10 files changed, 511 insertions(+) create mode 100644 mobile/android/android-components/docs/_archive/2018-07-26-release-0.16.1.markdown create mode 100644 mobile/android/android-components/docs/_archive/2018-08-03-release-0.17.markdown create mode 100644 mobile/android/android-components/docs/_archive/2018-08-10-release-0.18.markdown create mode 100644 mobile/android/android-components/docs/_archive/2018-08-17-release-0.19.markdown create mode 100644 mobile/android/android-components/docs/_archive/2018-08-24-release-0.20.markdown create mode 100644 mobile/android/android-components/docs/_archive/2018-08-31-release-0.21.markdown create mode 100644 mobile/android/android-components/docs/_archive/2018-09-07-release-0.22.markdown create mode 100644 mobile/android/android-components/docs/_archive/2018-09-13-release-0.23.markdown create mode 100644 mobile/android/android-components/docs/_archive/2018-09-21-release-0.24.markdown create mode 100644 mobile/android/android-components/docs/_archive/2018-09-26-release-0.25.markdown (limited to 'mobile/android/android-components/docs/_archive') diff --git a/mobile/android/android-components/docs/_archive/2018-07-26-release-0.16.1.markdown b/mobile/android/android-components/docs/_archive/2018-07-26-release-0.16.1.markdown new file mode 100644 index 0000000000..8a2850d24e --- /dev/null +++ b/mobile/android/android-components/docs/_archive/2018-07-26-release-0.16.1.markdown @@ -0,0 +1,41 @@ +--- +layout: post +title: "🎉 Release: Android Components 0.16" +date: 2018-07-26 18:00:00 +0200 +categories: releases +author: sebastian +--- + +# 0.16.1 (2018-07-26) + +* Compiled against: + * Android support libraries 27.1.1 + * Kotlin Standard library 1.2.51 + * Kotlin coroutines 0.23.4 + * GeckoView + * Nightly: 63.0.20180724100046 (2018.07.24, 1e5fa52a612e8985e12212d1950a732954e00e45) + * Beta: 62.0b9 (d7ab2f3df0840cdb8557659afd46f61afa310379) + * Release: 61.0 (785d242a5b01d5f1094882aa2144d8e5e2791e06) + +* **service-telemetry**: Allow up to 200 extras in event pings. + +* [Commits](https://github.com/mozilla-mobile/android-components/compare/v0.16...v0.16.1), [Milestone](https://github.com/mozilla-mobile/android-components/milestone/17?closed=1) + +# 0.16 (2018-07-25) + +* Compiled against: + * Android support libraries 27.1.1 + * Kotlin Standard library 1.2.51 + * Kotlin coroutines 0.23.4 + * GeckoView + * Nightly: 63.0.20180724100046 (2018.07.24, 1e5fa52a612e8985e12212d1950a732954e00e45) + * Beta: 62.0b9 (d7ab2f3df0840cdb8557659afd46f61afa310379) + * Release: 61.0 (785d242a5b01d5f1094882aa2144d8e5e2791e06) + +* **service-fretboard**: Experiments can now be filtered by release channel. Added helper method to get list of active experiments. +* **service-telemetry**: Added option to report active experiments in the core ping. +* **service-firefox-accounts**, **sample-firefox-accounts**: libjnidispatch.so is no longer in the tree but automatically fetched from tagged GitHub releases at build-time. Upgraded to fxa-rust-client library 0.2.1. Renmaed armeabi directory to armeabi-v7a. +* **browser-session**, **concept-engine**: Exposed website title and tracking protection in session and made observable. +* **browser-toolbar**: Fixed bug that prevented the toolbar from being displayed at the bottom of the screen. Fixed animation problem when multiple buttons animated at the same time. +* Various bugfixes and refactorings (see commits below for details) +* [Commits](https://github.com/mozilla-mobile/android-components/compare/v0.15...v0.16), [Milestone](https://github.com/mozilla-mobile/android-components/milestone/14?closed=1) \ No newline at end of file diff --git a/mobile/android/android-components/docs/_archive/2018-08-03-release-0.17.markdown b/mobile/android/android-components/docs/_archive/2018-08-03-release-0.17.markdown new file mode 100644 index 0000000000..a20ec77353 --- /dev/null +++ b/mobile/android/android-components/docs/_archive/2018-08-03-release-0.17.markdown @@ -0,0 +1,26 @@ +--- +layout: post +title: "🎉 Release: Android Components 0.17" +date: 2018-08-03 18:00:00 +0200 +categories: releases +author: sebastian +--- + +* Compiled against: + * Android support libraries 27.1.1 + * Kotlin Standard library **1.2.60** 🔺 + * Kotlin coroutines 0.23.4 + * GeckoView + * Nightly: **63.0.20180801100114** (2018.08.01, af6a7edf0069549543f2fba6a8ee3ea251b20829) 🔺 + * Beta: **62.0b13** (dd92dec96711e60a8c6a49ebe584fa23a453a292) 🔺 + * Release: 61.0 (785d242a5b01d5f1094882aa2144d8e5e2791e06) + +* **support-base**: New base component containing small building blocks for other components. Added a [simple logging API](https://github.com/mozilla-mobile/android-components/blob/main/components/support/base/README.md) that allows components to log messages/exceptions but lets the consuming app decide what gets logged and how. +* **support-utils**: Some classes have been moved to the new _support-base_ component. +* **service-fretboard**: ⚠️ Breaking change: `ExperimentDescriptor` instances now operate on the experiment name instead of the ID. +* **ui-icons**: Added new icons (used in _Firefox Focus_ UI refresh): `mozac_ic_arrowhead_down`, `mozac_ic_arrowhead_up`, `mozac_ic_check`, `mozac_ic_device_desktop`, `mozac_ic_mozilla`, `mozac_ic_open_in`, `mozac_ic_reorder`. +* **service-firefox-accounts**: Added [documentation](https://github.com/mozilla-mobile/android-components/blob/main/components/service/firefox-accounts/README.md). +* **service-fretboard**: Updated [documentation](https://github.com/mozilla-mobile/android-components/blob/main/components/service/fretboard/README.md). +* **browser-toolbar**: Fixed an issue where the toolbar content disappeared if a padding value was set on the toolbar. + +* [Commits](https://github.com/mozilla-mobile/android-components/compare/v0.16.1...v0.17), [Milestone](https://github.com/mozilla-mobile/android-components/milestone/15?closed=1) diff --git a/mobile/android/android-components/docs/_archive/2018-08-10-release-0.18.markdown b/mobile/android/android-components/docs/_archive/2018-08-10-release-0.18.markdown new file mode 100644 index 0000000000..31b469133f --- /dev/null +++ b/mobile/android/android-components/docs/_archive/2018-08-10-release-0.18.markdown @@ -0,0 +1,27 @@ +--- +layout: post +title: "🎉 Release: Android Components 0.18" +date: 2018-08-10 17:30:00 +0200 +categories: releases +author: sebastian +--- + +* [Commits](https://github.com/mozilla-mobile/android-components/compare/v0.17...v0.18), +[Milestone](https://github.com/mozilla-mobile/android-components/milestone/16?closed=1), +[API reference](https://mozilla-mobile.github.io/android-components/api/0.18/index) + +* Compiled against: + * Android support libraries 27.1.1 + * Kotlin Standard library 1.2.60 + * Kotlin coroutines 0.23.4 + * GeckoView + * Nightly: **63.0.20180810100129** (2018.08.10, d999fb858fb2c007c5be4af72bce419c63c69b8e) 🔺 + * Beta: **62.0b15** (7ce198bb7ce027d450af3f69a609896671adfab8) 🔺 + * Release: 61.0 (785d242a5b01d5f1094882aa2144d8e5e2791e06) + +* **engine-gecko-beta**: Since the [Load Progress Tracking API](https://bugzilla.mozilla.org/show_bug.cgi?id=1437988) was uplifted to GeckoView Beta _engine-gecko-beta_ now reports progress via `EngineSession.Observer.onProgress()`. +* **service-fretboard**: KintoExperimentSource can now validate the signature of the downloaded experiments configuration (`validateSignature` flag). This ensures that the configuration was signed by Mozilla and was not modified by a bad actor. For now the `validateSignature` flag is off by default until this has been tested in production. Various bugfixes and refactorings. +* **service-firefox-accounts**: JNA native libraries are no longer part of the AAR and instead referenced as a dependency. This avoids duplication when multiple libraries depend on JNA. +* API references for every release are now generated and hosted online: [https://mozilla-mobile.github.io/android-components/reference/](https://mozilla-mobile.github.io/android-components/reference/) +* Documentation and more is now hosted at: [https://mozilla-mobile.github.io/android-components/](https://mozilla-mobile.github.io/android-components/). More content coming soon. +* **tooling-lint**: New (internal-only) component containing custom lint rules. \ No newline at end of file diff --git a/mobile/android/android-components/docs/_archive/2018-08-17-release-0.19.markdown b/mobile/android/android-components/docs/_archive/2018-08-17-release-0.19.markdown new file mode 100644 index 0000000000..4f4be1a6a9 --- /dev/null +++ b/mobile/android/android-components/docs/_archive/2018-08-17-release-0.19.markdown @@ -0,0 +1,44 @@ +--- +layout: post +title: "🎉 Release: Android Components 0.19" +date: 2018-08-17 22:00:00 +0200 +categories: releases +author: csadilek +--- + +# 0.19.1 (2018-08-20) + +* [Commits](https://github.com/mozilla-mobile/android-components/compare/v0.19...v0.19.1), +[Milestone](https://github.com/mozilla-mobile/android-components/milestone/20?closed=1), +[API reference](https://mozilla-mobile.github.io/android-components/api/0.19.1/index) + +* Compiled against: + * Android support libraries 27.1.1 + * Kotlin Standard library 1.2.60 + * Kotlin coroutines 0.23.4 + * GeckoView + * Nightly: 63.0.20180810100129 (2018.08.10, d999fb858fb2c007c5be4af72bce419c63c69b8e) + * Beta: 62.0b15 (7ce198bb7ce027d450af3f69a609896671adfab8) + * Release: 61.0 (785d242a5b01d5f1094882aa2144d8e5e2791e06) + +* **browser-toolbar**: Replaced `ui-progress` component with default [Android Progress Bar](https://developer.android.com/reference/android/widget/ProgressBar) to fix CPU usage problems. +* **ui-progress**: Reduced high CPU usage when idling and not animating. + +# 0.19 (2018-08-17) + +* [Commits](https://github.com/mozilla-mobile/android-components/compare/v0.18...v0.19), +[Milestone](https://github.com/mozilla-mobile/android-components/milestone/18?closed=1), +[API reference](https://mozilla-mobile.github.io/android-components/api/0.19/index) + +* Compiled against: + * Android support libraries 27.1.1 + * Kotlin Standard library 1.2.60 + * Kotlin coroutines 0.23.4 + * GeckoView + * Nightly: 63.0.20180810100129 (2018.08.10, d999fb858fb2c007c5be4af72bce419c63c69b8e) + * Beta: 62.0b15 (7ce198bb7ce027d450af3f69a609896671adfab8) + * Release: 61.0 (785d242a5b01d5f1094882aa2144d8e5e2791e06) + +* **concept-engine**, **engine-system**, **engine-gecko**: Added new API to load data and HTML directly (without loading a URL). Added the ability to stop loading a page. +* **ui-autocomplete**: Fixed a bug that caused soft keyboards and the InlineAutocompleteEditText component to desync. +* **service-firefox-accounts**: Added JNA-specific proguard rules so consumers of this library don't have to add them to their app (see https://github.com/java-native-access/jna/blob/master/www/FrequentlyAskedQuestions.md#jna-on-android for details). Underlying libfxa_client.so no longer depends on versioned .so names. All required dependencies are now statically linked which simplified our dependency setup as well. diff --git a/mobile/android/android-components/docs/_archive/2018-08-24-release-0.20.markdown b/mobile/android/android-components/docs/_archive/2018-08-24-release-0.20.markdown new file mode 100644 index 0000000000..10fe5a81de --- /dev/null +++ b/mobile/android/android-components/docs/_archive/2018-08-24-release-0.20.markdown @@ -0,0 +1,25 @@ +--- +layout: post +title: "🎉 Release: Android Components 0.20" +date: 2018-08-24 19:00:00 +0200 +categories: releases +author: csadilek +--- + +* [Commits](https://github.com/mozilla-mobile/android-components/compare/v0.19.1...v0.20), +[Milestone](https://github.com/mozilla-mobile/android-components/milestone/19?closed=1), +[API reference](https://mozilla-mobile.github.io/android-components/api/0.20/index) + +* Compiled against: + * Android support libraries 27.1.1 + * Kotlin Standard library 1.2.60 + * Kotlin coroutines 0.23.4 + * GeckoView + * Nightly: **63.0.20180820100132** 🔺 + * Beta: 62.0b15 (7ce198bb7ce027d450af3f69a609896671adfab8) + * Release: 61.0 (785d242a5b01d5f1094882aa2144d8e5e2791e06) + +* GeckoView Nightly dependencies are now pulled in from *maven.mozilla.org*. +* **engine-system**: Added tracking protection functionality. +* **concept-engine**, **browser-session**, **feature-session**: Added support for private browsing mode. +* **concept-engine**, **engine-gecko**, **engine-system**: Added support for modifying engine and engine session settings. \ No newline at end of file diff --git a/mobile/android/android-components/docs/_archive/2018-08-31-release-0.21.markdown b/mobile/android/android-components/docs/_archive/2018-08-31-release-0.21.markdown new file mode 100644 index 0000000000..21a240fcbe --- /dev/null +++ b/mobile/android/android-components/docs/_archive/2018-08-31-release-0.21.markdown @@ -0,0 +1,85 @@ +--- +layout: post +title: "🎉 Release: Android Components 0.21" +date: 2018-08-31 14:40:00 +0200 +categories: releases +author: sebastian +--- + +* [Commits](https://github.com/mozilla-mobile/android-components/compare/v0.20...v0.21), +[Milestone](https://github.com/mozilla-mobile/android-components/milestone/21?closed=1), +[API reference](https://mozilla-mobile.github.io/android-components/api/0.21/index) + +* Compiled against: + * Android support libraries 27.1.1 + * Kotlin Standard library **1.2.61** 🔺 + * Kotlin coroutines 0.23.4 + * GeckoView + * Nightly: **63.0.20180830111743** 🔺 + * Beta: **62.0b21** (7ce198bb7ce027d450af3f69a609896671adfab8) 🔺 + * Release: 61.0 (785d242a5b01d5f1094882aa2144d8e5e2791e06) + +* **concept-engine**, **engine-system**, **engine-gecko**: Added API to set default session configuration e.g. to enable tracking protection for all sessions by default. + ```Kotlin + // DefaultSettings can be set on GeckoEngine and SystemEngine. + GeckoEngine(runtime, DefaultSettings( + trackingProtectionPolicy = TrackingProtectionPolicy.all(), + javascriptEnabled = false)) + ``` +* **concept-engine**, **engine-system**, **engine-gecko-beta/nightly**: + * Added support for intercepting request and injecting custom content. This can be used for internal pages (e.g. *focus:about*, *firefox:home*) and error pages. + ```Kotlin + // GeckoEngine (beta/nightly) and SystemEngine support request interceptors. + GeckoEngine(runtime, DefaultSettings( + requestInterceptor = object : RequestInterceptor { + override fun onLoadRequest(session: EngineSession, uri: String): RequestInterceptor.InterceptionResponse? { + return when (uri) { + "sample:about" -> RequestInterceptor.InterceptionResponse("

I am the sample browser

") + else -> null + } + } + } + ) + ``` + * Added APIs to support "find in page". + ```Kotlin + // Finds and highlights all occurrences of "hello" + engineSession.findAll("hello") + + // Finds and highlights the next or previous match + engineSession.findNext(forward = true) + + // Clears the highlighted results + engineSession.clearFindMatches() + + // The current state of "Find in page" can be observed on a Session object: + session.register(object : Session.Observer { + fun onFindResult(session: Session, result: FindResult) { + // ... + } + }) + ``` +* **browser-engine-gecko-nightly**: Added option to enable/disable desktop mode ("Request desktop site"). + ```Kotlin + engineSession.setDesktopMode(true, reload = true) + ``` +* **browser-engine-gecko(-nightly/beta)**: Added API for observing long presses on web content (links, audio, videos, images, phone numbers, geo locations, email addresses). + ```Kotlin + session.register(object : Session.Observer { + fun onLongPress(session: Session, hitResult: HitResult): Boolean { + // HitResult is a sealed class representing the different types of content that can be long pressed. + // ... + + // Returning true will "consume" the event. If no observer consumes the event then it will be + // set on the Session object to be consumed at a later time. + return true + } + }) + ``` +* **lib-dataprotect**: New component to protect local user data using the [Android keystore system](https://developer.android.com/training/articles/keystore). This component doesn't contain any code in this release. In the next sprints the Lockbox team will move code from the [prototype implementation](https://github.com/linuxwolf/android-dataprotect) to the component. +* **support-testing**: New helper test function to assert that a code block throws an exception: + ```Kotlin + expectException(IllegalStateException::class) { + // Do something that should throw IllegalStateException.. + } + ``` \ No newline at end of file diff --git a/mobile/android/android-components/docs/_archive/2018-09-07-release-0.22.markdown b/mobile/android/android-components/docs/_archive/2018-09-07-release-0.22.markdown new file mode 100644 index 0000000000..d2ac508cad --- /dev/null +++ b/mobile/android/android-components/docs/_archive/2018-09-07-release-0.22.markdown @@ -0,0 +1,56 @@ +--- +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 + +* [Commits](https://github.com/mozilla-mobile/android-components/compare/v0.21...v0.22), +[Milestone](https://github.com/mozilla-mobile/android-components/milestone/22?closed=1), +[API reference](https://mozilla-mobile.github.io/android-components/api/0.22/index) + +* 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. diff --git a/mobile/android/android-components/docs/_archive/2018-09-13-release-0.23.markdown b/mobile/android/android-components/docs/_archive/2018-09-13-release-0.23.markdown new file mode 100644 index 0000000000..87211490c6 --- /dev/null +++ b/mobile/android/android-components/docs/_archive/2018-09-13-release-0.23.markdown @@ -0,0 +1,81 @@ +--- +layout: post +title: "🎉 Release: Android Components 0.23" +date: 2018-09-13 17:00:00 +0200 +categories: releases +author: csadilek +--- + +## News + +* More kudos to the application-services team for introducing the new sync-logins [component](https://github.com/mozilla-mobile/android-components/tree/main/components/service/sync-logins) and [sample app](https://github.com/mozilla-mobile/android-components/tree/main/samples/sync-logins). + +## Changelog + +* [Commits](https://github.com/mozilla-mobile/android-components/compare/v0.22...v0.23), +[Milestone](https://github.com/mozilla-mobile/android-components/milestone/23?closed=1), +[API reference](https://mozilla-mobile.github.io/android-components/api/0.23/index) + +* 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) 🔺 + +* Added initial documentation for the browser-session component: https://github.com/mozilla-mobile/android-components/blob/main/components/browser/session/README.md +* **sync-logins**: New component for integrating with Firefox Sync (for Logins). A sample app showcasing this new functionality can be found at: https://github.com/mozilla-mobile/android-components/tree/main/samples/sync-logins +* **browser-engine-***: + * Added support for fullscreen mode and the ability to exit it programmatically if needed. + ```Kotlin + session.register(object : Session.Observer { + fun onFullScreenChange(enabled: Boolean) { + if (enabled) { + // .. + sessionManager.getEngineSession().exitFullScreenMode() + } + } + }) + ``` +* **concept-engine**, **browser-engine-system**, **browser-engine-gecko(-beta/nightly)**: + * We've extended support for intercepting requests to also include intercepting of errors + ```Kotlin + val interceptor = object : RequestInterceptor { + override fun onErrorRequest( + session: EngineSession, + errorCode: Int, + uri: String? + ) { + engineSession.loadData("Couldn't load $uri!") + } + } + // GeckoEngine (beta/nightly) and SystemEngine support request interceptors. + GeckoEngine(runtime, DefaultSettings(requestInterceptor = interceptor)) + ``` +* **browser-engine-system**: + * Added functionality to clear all browsing data + ```Kotlin + sessionManager.getEngineSession().clearData() + ``` + * `onNavigationStateChange` is now called earlier (when the title of a web page is available) to allow for faster toolbar updates. +* **feature-session**: Added support for processing `ACTION_SEND` intents (`ACTION_VIEW` was already supported) + + ```Kotlin + // Triggering a search if the provided EXTRA_TEXT is not a URL + val searchHandler: TextSearchHandler = { searchTerm, session -> + searchUseCases.defaultSearch.invoke(searchTerm, session) + } + + // Handles both ACTION_VIEW and ACTION_SEND intents + val intentProcessor = SessionIntentProcessor( + sessionUseCases, sessionManager, textSearchHandler = searchHandler + ) + intentProcessor.process(intent) + ``` +* Replaced some miscellaneous uses of Java 8 `forEach` with Kotlin's for consistency and backward-compatibility. +* Various bug fixes (see [Commits](https://github.com/mozilla-mobile/android-components/compare/v0.22...v0.23) for details). diff --git a/mobile/android/android-components/docs/_archive/2018-09-21-release-0.24.markdown b/mobile/android/android-components/docs/_archive/2018-09-21-release-0.24.markdown new file mode 100644 index 0000000000..307b9d2769 --- /dev/null +++ b/mobile/android/android-components/docs/_archive/2018-09-21-release-0.24.markdown @@ -0,0 +1,84 @@ +--- +layout: post +title: "🚀 Release: Android Components 0.24" +date: 2018-09-21 20:15:00 +0200 +categories: releases +author: jonathan +--- + +# 0.24 (2018-09-21) + +* [Commits](https://github.com/mozilla-mobile/android-components/compare/v0.23...v0.24), +[Milestone](https://github.com/mozilla-mobile/android-components/milestone/24?closed=1), +[API reference](https://mozilla-mobile.github.io/android-components/api/0.24/index) + +* 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) + +* **dataprotect**: + * Added a component using AndroidKeyStore to protect user data. + ```kotlin + // Create a Keystore and generate a key + val keystore: Keystore = Keystore("samples-dataprotect") + keystore.generateKey() + + // Encrypt data + val plainText = "plain text data".toByteArray(StandardCharsets.UTF_8) + val encrypted = keystore.encryptBytes(plain) + + // Decrypt data + val samePlainText = keystore.decryptBytes(encrypted) + ``` +* **concept-engine**: Enhanced settings to cover most common WebView settings. +* **browser-engine-system**: + * `SystemEngineSession` now provides a way to capture a screenshot of the actual content of the web page just by calling `captureThumbnail` +* **browser-session**: + * `Session` exposes a new property called `thumbnail` and its internal observer also exposes a new listener `onThumbnailChanged`. + + ```Kotlin + session.register(object : Session.Observer { + fun onThumbnailChanged(session: Session, bitmap: Bitmap?) { + // Do Something + } + }) + ``` + + * `SessionManager` lets you notify it when the OS is under low memory condition by calling to its new function `onLowMemory`. + +* **browser-tabstray**: + + * Now on `BrowserTabsTray` every tab gets is own thumbnail :) + +* **support-ktx**: + + * Now you can easily query if the OS is under low memory conditions, just by using `isOSOnLowMemory()` extension function on `Context`. + + ```Kotlin + val shouldReduceMemoryUsage = context.isOSOnLowMemory() + + if (shouldReduceMemoryUsage) { + //Deallocate some heavy objects + } + ``` + + * `View.dp` is now`Resource.pxtoDp`. + + ```Kotlin + // Before + toolbar.dp(104) + + // Now + toolbar.resources.pxToDp(104) + ``` +* **samples-browser**: + * Updated to show the new features related to tab thumbnails. Be aware that this feature is only available for `systemEngine` and you have to switch to the build variant `systemEngine*`. + diff --git a/mobile/android/android-components/docs/_archive/2018-09-26-release-0.25.markdown b/mobile/android/android-components/docs/_archive/2018-09-26-release-0.25.markdown new file mode 100644 index 0000000000..110a3f4e63 --- /dev/null +++ b/mobile/android/android-components/docs/_archive/2018-09-26-release-0.25.markdown @@ -0,0 +1,42 @@ +--- +layout: post +title: "🐼 Release: Android Components 0.25" +date: 2018-09-26 20:33:00 +0200 +categories: releases +author: arturo +--- + +# 0.25.1 (2018-09-27) + +* **browser-engine-system**: Fixed a `NullPointerException` in `SystemEngineSession.captureThumbnail()`. + +# 0.25 (2018-09-26) + +* [Commits](https://github.com/mozilla-mobile/android-components/compare/v0.24...v0.25), +[Milestone](https://github.com/mozilla-mobile/android-components/milestone/25?closed=1), +[API reference](https://mozilla-mobile.github.io/android-components/api/0.25/index) + +* 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) + +* ⚠️ **This is the last release compiled against Android SDK 27. Upcoming releases of the components will require Android SDK 28**. +* **service-fretboard**: + * Fixed a bug in `FlatFileExperimentStorage` that caused updated experiment configurations not being saved to disk. + * Added [WorkManager](https://developer.android.com/reference/kotlin/androidx/work/WorkManager) implementation for updating experiment configurations in the background (See ``WorkManagerSyncScheduler``). + * `Experiment.id` is not accessible by component consumers anymore. +* **browser-engine-system**: + * URL changes are now reported earlier; when the URL of the main frame changes. + * Fixed an issue where fullscreen mode would only take up part of the screen. + * Fixed a crash that could happen when loading invalid URLs. + * `RequestInterceptor.onErrorRequest()` can return custom error page content to be displayed now (the original URL that caused the error will be preserved). +* **feature-intent**: New component providing intent processing functionality (Code moved from *feature-session*). +* **support-utils**: `DownloadUtils.guessFileName()` will replace extension in the URL with the MIME type file extension if needed (`http://example.com/file.aspx` + `image/jpeg` -> `file.jpg`). \ No newline at end of file -- cgit v1.2.3