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:

  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(;

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

// Load a URL

Example App

Firefox Focus has a build variant that uses Gecko. To build, check out the Focus code from 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


Klar Blockers

  • P1 [geckoview:klar] bugs:
Full Query
ID Priority Summary Whiteboard Assigned to
927831 P1 [geckoview] Support running without special permissions [geckoview:klar]
1322579 P1 [geckoview] Add loadData and loadDataWithBaseUri [geckoview:klar] James Willcox (:snorp) (
1433968 P1 Figure out GeckoView crash reporting (Sentry and/or Breakpad?) [geckoview:klar]
1437551 P1 Add GeckoView API for Telemetry [geckoview:klar] Eugen Sawin [:esawin]
1437701 P1 Add DownloadListener.onDownloadStart support [geckoview:klar] James Willcox (:snorp) (
1439013 P1 Add gesture information to NavigationDelegate.onLoadRequest() [geckoview:klar]
1440708 P1 GeckoView: Add API for enabling/disabling JavaScript [geckoview:klar]
1441279 P1 GeckoView: Support text selection actions menu [geckoview:klar] (pto) Jim Chen [:jchen] [:darchons]
1441810 P1 GeckoView: Save and restore state [geckoview:klar] Dylan Roeh (:droeh)
1442176 P1 GeckoView: Do not scroll while moving text selection handles [geckoview:klar] Sebastian Kaspari (:sebastian)
1444138 P1 onLocationChange() sometimes gives URIs for non-toplevel frames [geckoview:klar]
1445400 P1 GeckoView: Add API to enable/disable/configure Fingerprinting Protection [geckoview:klar]
1446202 P1 [geckoview] Klar+GeckoView: fails to display a date picker [geckoview:klar]
1446211 P1 Drop down menu crash on certain devices: ClassCastException: String cannot be cast to Boolean [geckoview:klar]

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

  • Other GeckoView P1 bugs:
Full Query
ID Priority Summary Whiteboard Assigned to
1322577 P1 [geckoview] Add flags/header support to GeckoView.loadUri() James Willcox (:snorp) (
1350924 P1 [geckoview] Fix content process shutdown Eugen Sawin [:esawin]
1422137 P1 Rename Java NativePanZoomController to PanZoomController
1425930 P1 Crash in @0x0 | nsScreenAndroid::GetDensity James Willcox (:snorp) (
1436754 P1 Remove LayerSession
1440592 P1 Crash in java.lang.IllegalStateException: Unexpected new session at org.mozilla.gecko.customtabs.CustomTabsActivity.onNewSession( Eugen Sawin [:esawin]
1445420 P1 Add GeckoRuntime for Gecko setup and initialization Eugen Sawin [:esawin]
1446423 P1 Startup race of nsILoadUriDelegate registration Eugen Sawin [:esawin]
1446478 P1 Allow async NavigationDelegate.onLoadRequest handling Eugen Sawin [:esawin]
1447088 P1 Eliminate spurious events upon session creation

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

Klar Backlog

  • P2-P3 [geckoview:klar] bugs:
Full Query
ID Priority Summary Whiteboard Assigned to
1433198 P2 Publish GeckoView Maven repo on Bintray/JCenter or S3 [geckoview:klar] Chris AtLee [:catlee]
1445285 P2 Animating GeckoView [geckoview:klar]
1309021 P3 Cancel flywheel if the user scrolls slowly between the two fast flings [geckoview:klar][gfx-noted]
1380316 P3 Improve APZ fling scroll physics values on Android [geckoview:klar][gfx-noted] Carol Huang [:Carol]
1425739 P3 Scrolling in Android has a distinct hitch when releasing finger [gfx-noted][geckoview:klar]
1445286 P3 Does GeckoView come with fonts and hyphenation dictionaries? [geckoview:klar]
1230176 P3 Weirdness at end of Fennec fling. Don't send duplicate DOM 'scroll' event for sub-pixel scrolling [apz-evangelism] [sitewait] [geckoview:klar][gfx-noted]
1343317 P3 Investigate making GeckoView accessible on UiAutomator (DOM Tree visible) [geckoview:klar] Eitan Isaacson [:eeejay]
1421644 P3 Slow flinging on Android [gfx-noted][geckoview:klar] Carol Huang [:Carol]
1437549 P3 Add callback for startup completion [geckoview:klar] Eugen Sawin [:esawin]

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

Klar Unprioritized

  • Unprioritized [geckoview:klar] bugs:

No results.

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

Crow Bugs

  • All [geckoview:crow] bugs:
Full Query
ID Priority Summary Whiteboard Assigned to
1437547 P3 Bring back Fennec's error pages for GeckoView in apps that don't show their own error pages [geckoview:crow] James Willcox (:snorp) (
1446898 P3 [meta] ARM64 JS baseline failures [geckoview:crow]
1439570 P3 Run JS test suite on ARM64 hardware [geckoview:crow]

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

Other GeckoView Bugs