Mobile/GeckoView

From MozillaWiki
Jump to: navigation, search

What is GeckoView

GeckoView is an Android library project that allows third-party developers to use Gecko as an Android View in their own applications. GeckoView is similar to Android's built in WebView, but it is not a drop in replacement for WebView.

Note that GeckoView is NOT ready to be used in a production environment. It is currently possible to load webpages, but that's about it. See bug 1322573.

Using GeckoView

  1. Download a recent GeckoView AAR from treeherder (mozilla-central tree). The AAR is available from the 'Android API16+ Gradle opt' job under the 'Bng' symbol. After clicking that, there is a link to 'geckoview-0.0.1.aar' in the bottom pane.
  2. Add the GeckoView AAR to your Gradle / Android Studio project. In Android Studio you can add the .aar as follows:
    1. Move the geckoview aar to your project's 'app/libs' folder.
    2. Use the 'New Module' option under the 'File' menu.
    3. Import the .aar file.
    4. Add the new GeckoView AAR module as a dependency to the application.

You can now use GeckoView your app by including the following in a layout XML file:

<org.mozilla.gecko.GeckoView
  android:id="@+id/geckoview"
  android:layout_width="fill_parent"
  android:layout_height="wrap_content" />

You can then load a page in your code with:

// Find the GeckoView in our layout
GeckoView geckoView = (GeckoView) findViewById(R.id.geckoview);

// Attach the GeckoView to a new GeckoSession
GeckoSession session = new GeckoSession();
geckoView.setSession(session);

// Load a URL
session.loadUri("http://mozilla.com");

Example App

Firefox Focus has a build variant that uses Gecko. To build, check out the Focus code from https://github.com/mozilla-mobile/focus-android and follow the instructions. The only difference is you need to select one of the Gecko build variants from the Android Studio 'Build' menu.

The Gecko-related code for Focus lives in WebViewProvider.java

Bugs

Klar+GeckoView Bugs

Full Query
ID Priority Summary Keywords Whiteboard Assigned to
1439013 -- Consider adding shouldInterceptRequest method to GeckoView [geckoview:klar]
1433198 -- Publish GeckoView Maven repo on ftp.mozilla.org [geckoview:klar]
1437549 P1 Add callback for startup completion [geckoview:klar] Jim Chen [:jchen] [:darchons]
1437701 P1 Add download support [geckoview:klar]
1437547 P1 [geckoview] Bring back Fennec's error pages [geckoview:klar] James Willcox (:snorp) (jwillcox@mozilla.com)
1437551 P1 Add GeckoView API for Telemetry [geckoview:klar] Eugen Sawin [:esawin]
1437869 P1 Allow viewing sites in desktop mode [geckoview:klar]
1437988 P3 Consider adding onProgressChanged method for smoother loading appearance [geckoview:klar]
1343317 P3 Investigate making GeckoView accessible on UiAutomator (DOM Tree visible) [geckoview:klar]

9 Total; 9 Open (100%); 0 Resolved (0%); 0 Verified (0%);


Crow+GeckoView Bugs

  • Bugs with [geckoview:crow] whiteboard tag:
Full Query
ID Priority Summary Keywords Whiteboard Assigned to
1407535 P3 [meta] ARM64 support for wasm baseline (Rabaldr) [geckoview:crow] Lars T Hansen [:lth]
1439570 P3 Run JS test suite on ARM64 hardware [geckoview:crow]

2 Total; 2 Open (100%); 0 Resolved (0%); 0 Verified (0%);