Skip to content
Branch: master
Find file History
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
..
Failed to load latest commit information.
src
README.md
build.gradle
proguard-rules.pro

README.md

Android Components > Browser > Engine-Gecko

Engine implementation based on GeckoView (Beta channel).

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-gecko-beta:{latest-version}"

Initializing

It is recommended to create only one GeckoEngine instance per app. To create a GeckoEngine a GeckoRuntime and optionally DefaultSettings are needed.

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

// Create and initialize a Gecko runtime with the default settings.
val runtime = GeckoRuntime.getDefault(applicationContext)

// Create an engine instance to be used by other components.
val engine = GeckoEngine(runtime, 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

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

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

GeckoEngineView can render any GeckoEngineSession using the render() method.

val engineSession = engine.createSession()
val engineView = view.findViewById<GeckoEngineView>(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/
You can’t perform that action at this time.