Files
tubestation/mobile/android/android-components/components/browser/engine-system
Narcis Beleuzu a84dc052f1 Backed out 9 changesets (bug 1880805, bug 1880792) for gradle-dependencies TL bustages. CLOSED TREE
Backed out changeset f94e6acf0cd3 (bug 1880805)
Backed out changeset 22e14524bf1f (bug 1880805)
Backed out changeset 774b263652b5 (bug 1880805)
Backed out changeset 77fe8fb48620 (bug 1880805)
Backed out changeset 3ae77f91197e (bug 1880805)
Backed out changeset 1ffaa88f56da (bug 1880805)
Backed out changeset 1dee3246c6a2 (bug 1880805)
Backed out changeset 9abb09c562ef (bug 1880792)
Backed out changeset 24a1c7a574c4 (bug 1880792)
2024-08-06 22:41:06 +03:00
..

Android Components > Browser > Engine-System

Engine implementation based on the system's WebView.

Usage

See concept-engine for a documentation of the abstract engine API this component implements.

Setting up the dependency

Use Gradle to download the library from maven.mozilla.org (Setup repository):

implementation "org.mozilla.components:browser-engine-system:{latest-version}"

Initializing

It is recommended t create only one SystemEngine instance per app.

// Create default settings (optional) and enable tracking protection for all future sessions.
val defaultSettings = DefaultSettings().apply {
    trackingProtectionPolicy = EngineSession.TrackingProtectionPolicy.all()
}

// Create an engine instance to be used by other components.
val engine = SystemEngine(context, defaultSettings)

Integration

Usually it is not needed to interact with the Engine component directly. The browser-session component will take care of making the state accessible and link a Session to an EngineSession internally. The feature-session component will provide "use cases" to perform actions like loading URLs and takes care of rendering the selected Session on an EngineView.

View

SystemEngineView is the Gecko-based implementation of EngineView in order to render web content.

<mozilla.components.browser.engine.system.SystemEngineView
    android:id="@+id/engineView"
    android:layout_width="match_parent"
    android:layout_height="match_parent" />

SystemEngineView can render any SystemEngineSession using the render() method.

val engineSession = engine.createSession()
val engineView = view.findViewById<SystemEngineView>(R.id.engineView)
engineView.render(engineSession)

License

This Source Code Form is subject to the terms of the Mozilla Public
License, v. 2.0. If a copy of the MPL was not distributed with this
file, You can obtain one at http://mozilla.org/MPL/2.0/