GeckoView API Changelog.


  • Added GeckoSession.SessionState.fromString. This can be used to deserialize a GeckoSession.SessionState instance previously serialized to a String via GeckoSession.SessionState.toString.
  • Added messaging support for WebExtension. setMessageDelegate allows embedders to listen to messages coming from a WebExtension. Port allows bidirectional communication between the embedder and the WebExtension.


  • Updated video autoplay API to reflect changes in Gecko. Instead of being a per-video permission in the PermissionDelegate, it is a runtime setting that either allows or blocks autoplay videos.
  • Added GeckoSession.getDefaultUserAgent to expose the build-time default user agent synchronously.

  • Changed WebResponse.body from a ByteBuffer to an InputStream. Apps that want access to the entire response body will now need to read the stream themselves.

  • Added GeckoWebExecutor.FETCH_FLAGS_NO_REDIRECTS, which will cause GeckoWebExecutor.fetch() to not automatically follow HTTP redirects (e.g., 302).

  • Moved GeckoVRManager into the org.mozilla.geckoview package.

  • Add missing @Nullable annotation to return value for GeckoSession.PromptDelegate.ChoiceCallback.onPopupResult()

  • Added default implementations for all non-functional interfaces.

  • Added ContentDelegate.onWebAppManifest, which will deliver the contents of a parsed and validated Web App Manifest on pages that contain one.


  • Removed redundant field trackingMode from SecurityInformation. Use TrackingProtectionDelegate.onTrackerBlocked for notification of blocked elements during page load.


  • Changed GeckoRuntimeSettings#getLocale to getLocales and related APIs.
  • Merged org.mozilla.gecko.gfx.LayerSession into GeckoSession
  • Changed LoadRequest.isUserTriggered to isRedirect.