GeckoView API Changelog.
⚠️ breaking change and deprecation notices
v88
- Added
WebExtension.Download#update
that can be used to implement the WebExtensiondownloads
API. This method is used to communicate updates in the download status to the Web Extension - Added
PanZoomController.onTouchEventForDetailResult
andGeckoView.onTouchEventForDetailResult
to tell information that the website doesn’t expect browser apps to react the event, also and deprecatedPanZoomController.onTouchEventForResult
andGeckoView.onTouchEventForResult
. With these new methods browser apps can differentiate cases where the browser can do something the browser’s specific behavior in response to the event (e.g. pull-to-refresh) and cases where the browser should not react to the event because the event was consumed in the web site (e.g. in canvas like web apps). (bug 1678505).
v87
- ⚠ Added
WebExtension.DownloadInitData
class that can be used to implement the WebExtensiondownloads
API. This class represents initial state of a download. - Added
WebExtension.Download.Info
interface that can be used to implement the WebExtensiondownloads
API. This interface allows communicating download’s state to Web Extension. Image#getBitmap
now throwsImageProcessingException
if the image cannot be processed. (bug 1689745)- Added support for HTTPS-only mode to
GeckoRuntimeSettings
viasetAllowInsecureConnections
.
v86
- Removed deprecated [
ContentDelegate#onExternalResponse(GeckoSession, WebResponseInfo)
]. UseContentDelegate#onExternalResponse(GeckoSession, WebResponse)
instead. (bug 1665157) - Added
WebExtension.DownloadDelegate
and that can be used to implement the WebExtensiondownloads
API. (bug 1656336) - Added
WebRequest.Builder#body(@Nullable String)
which converts a string to direct byte buffer. - Removed deprecated
REPLACED_UNSAFE_CONTENT
. (bug 1667471) - Removed deprecated
GeckoSession#loadUri
variants in favor ofGeckoSession#load
. See docs forLoader
. (bug 1667471) - Added
GeckoResult#map
to synchronously map a GeckoResult value. - Added
PanZoomController#INPUT_RESULT_IGNORED
. (bug 1687430)
v85
- Added
WebExtension.BrowsingDataDelegate
that can be used to implement the WebExtensionbrowsingData
API.
v84
- ⚠️ Removed deprecated [
GeckoRuntimeSettings.Builder.useMultiprocess
] and [GeckoRuntimeSettings.getUseMultiprocess
]. Single-process GeckoView is no longer supported. (bug 1650118) - Deprecated members now have an additional
@DeprecationSchedule
annotation which includes theversion
that we expect to remove the member and anid
that can be used to group annotation notices in tooling. (bug 1671460) - ⚠️ Removed deprecated [
ContentBlockingController.ExceptionList
] abd [ContentBlockingController.restoreExceptionList
]. (bug 1674500)
v83
- Added
WebExtension.MetaData.temporary
which exposes whether an extension has been installed temporarily, e.g. when using web-ext. (bug 1624410) - ⚠️ Removing unsupported
MediaSession.Delegate.onPictureInPicture
for now. Also,MediaSession.Delegate.onMetadata
is no longer dispatched for plain media elements. (bug 1658937) - Replaced android.util.ArrayMap with java.util.TreeMap in
WebMessage
to enable case-insensitive handling of the HTTP headers. (bug 1666013) - Added
ContentBlocking.SafeBrowsingProvider
to configure Safe Browsing providers. (bug 1660241) - Added
GeckoRuntime.ActivityDelegate
which allows applications to handle starting external Activities on behalf of GeckoView. Currently this is used to integrate FIDO support for WebAuthn. - Added ‘GeckoWebExecutor#FETCH_FLAG_PRIVATE’. This new flag allows for private browsing downloads using WebExecutor. (bug 1665426)
- ⚠️ Deprecated
GeckoSession#loadUri
variants in favor ofGeckoSession#load
. See docs forLoader
. (bug 1667471) - Added
Loader#headerFilter
to override the default header filtering behavior. (bug 1667471)
v82
- ⚠️
WebNotification.source
is now@Nullable
to account for WebExtension notifications which don’t have asource
field. - ⚠️ Deprecated
ContentDelegate#onExternalResponse(GeckoSession, WebResponseInfo)
with the intention of removing them in GeckoView v85. (bug 1530022) - Added
ContentDelegate#onExternalResponse(GeckoSession, WebResponse)
to eliminate the need to make a second request for downloads and ensure more efficient and reliable downloads in a single request. The second parameter is now aWebResponse
(bug 1530022) - Added
Image
support for size-dependent bitmap retrieval from image resources. (bug 1658456) - ⚠️ Use
Image
forMediaSession
artwork andWebExtension
icon support. (bug 1662508) - Added
RepostConfirmPrompt
to prompt the user for cofirmation before resending POST requests. (bug 1659073) - Removed
Parcelable
support inGeckoSession
. UseProgressDelegate#onSessionStateChange
andProgressDelegate#restoreState
instead. (bug 1650108) - ⚠️ Use AndroidX instead of the Android support library. For the public API this only changes the thread and nullable annotation types.
- Added
REPLACED_TRACKING_CONTENT
to content blocking API to indicate when unsafe content is shimmed. (bug 1663756)
v81
- Added
cookiePurging
toContentBlocking.Settings.Builder
andgetCookiePurging
andsetCookiePurging
toContentBlocking.Settings
. - Added
GeckoSession.ContentDelegate.onPaintStatusReset()
callback which notifies when valid content is no longer being rendered. - Made
GeckoSession.ContentDelegate.onFirstContentfulPaint()
additionally be called for the first contentful paint following aonPaintStatusReset()
event, rather than just the first contentful paint of the session. - Removed deprecated
GeckoRuntime.registerWebExtension
. UseWebExtensionController.install
instead. ⚠️ - ChangedGeckoView.onTouchEventForResult
to return aGeckoResult
, as it now makes a round-trip to Gecko. The result will be more accurate now, since how content treats the event is now considered. - Added
MediaSession
API for session-based media events and control.
v80
- Removed
GeckoSession.hashCode
andGeckoSession.equals
overrides in favor of the default implementations. (bug 1647883) - Added
strictSocialTrackingProtection
toContentBlocking.Settings.Builder
andgetStrictSocialTrackingProtection
toContentBlocking.Settings
.
v79
- Added
runtime.openOptionsPage
support. Foroptions_ui.open_in_new_tab
==false
,TabDelegate.onOpenOptionsPage
is called. (bug 1618058) - Added
WebNotification.source
, which is the URL of the page or Service Worker that created the notification. - Removed deprecated
WebExtensionController.setTabDelegate
andWebExtensionController.getTabDelegate
APIs (bug 1618987). - ⚠️
RuntimeTelemetry#getSnapshots
is removed after deprecation. Use Glean to handle Gecko telemetry. (bug 1644447) - Added
ensureBuiltIn
that ensures that a built-in extension is installed without re-installing. (bug 1635564) - Added
ProfilerController
, accessible viaGeckoRuntime.getProfilerController
to allow adding gecko profiler markers. (bug 1624993) - ⚠️ Deprecated
Parcelable
support inGeckoSession
with the intention of removing in GeckoView v82. (bug 1649529) - ⚠️ Deprecated
GeckoRuntimeSettings.Builder.useMultiprocess
andGeckoRuntimeSettings.getUseMultiprocess
with the intention of removing them in GeckoView v82. (bug 1649530)
v78
- Added
WebExtensionController.installBuiltIn
that allows installing an extension that is bundled with the APK. This method is meant as a replacement forGeckoRuntime.registerWebExtension
, ⚠️ which is now deprecated and will be removed in GeckoView 81. - Added
CookieBehavior.ACCEPT_FIRST_PARTY_AND_ISOLATE_OTHERS
to allow enabling dynamic first party isolation; this will block tracking cookies and isolate all other third party cookies by keying them based on the first party from which they are accessed. - Added
cookieStoreId
field toWebExtension.CreateTabDetails
. This adds the optional ability to create a tab with a given cookie store ID for itscontextual identity
. (bug 1622500) - Added
NavigationDelegate.onSubframeLoadRequest
to allow intercepting non-top-level navigations. - Added
BeforeUnloadPrompt
to respond to prompts from onbeforeunload. - ⚠️ Refactored
LoginStorage
to theAutocomplete
API to support login form autocomplete delegation. Refactored ‘LoginStorage.Delegate’ to ‘Autocomplete.LoginStorageDelegate’. RefactoredGeckoSession.PromptDelegate.onLoginStoragePrompt
toGeckoSession.PromptDelegate.onLoginSave
. AddedGeckoSession.PromptDelegate.onLoginSelect
. (bug 1618058) - Added
GeckoRuntimeSettings#setLoginAutofillEnabled
to control whether login forms should be automatically filled in suitable situations.
v77
- Added
GeckoRuntime.appendAppNotesToCrashReport
For adding app notes to the crash report. (bug 1626979) - ⚠️ Remove the
DynamicToolbarAnimator
API along with accesors onGeckoView
andGeckoSession
. (bug 1627716)
v76
- Added
GeckoSession.PermissionDelegate.PERMISSION_MEDIA_KEY_SYSTEM_ACCESS
to control EME media key access. RuntimeTelemetry#getSnapshots
is deprecated and will be removed in 79. Use Glean to handle Gecko telemetry. (bug 1620395)- Added [
LoadRequest.isDirectNavigation
] to know when calls toonLoadRequest
originate from a direct navigation made by the app itself. (bug 1624675)
v75
- ⚠️ Remove
GeckoRuntimeSettings.Builder#useContentProcessHint
. The content process is now preloaded by default ifGeckoRuntimeSettings.Builder#useMultiprocess
is enabled. - ⚠️ Move
GeckoSessionSettings.Builder#useMultiprocess
toGeckoRuntimeSettings.Builder#useMultiprocess
. Multiprocess state is no longer determined per session. - Added
DebuggerDelegate#onExtensionListUpdated
to notify that a temporary extension has been installed by the debugger. (bug 1614295) - ⚠️ Removed
GeckoRuntimeSettings.setAutoplayDefault
, useGeckoSession.PermissionDelegate#PERMISSION_AUTOPLAY_AUDIBLE
andGeckoSession.PermissionDelegate#PERMISSION_AUTOPLAY_INAUDIBLE
to control autoplay. (bug 1614894) - Added
GeckoSession.reload(int flags)
That takes a load flag parameter. - ⚠️ Moved
ActionDelegate
andMessageDelegate
toSessionController
. (bug 1616625) - Added
SessionTabDelegate
toSessionController
andTabDelegate
toWebExtension
which receive respectively calls for the session and the runtime.TabDelegate
is also now per-WebExtension
object instead of being global. The existing globalTabDelegate
is now deprecated and will be removed in GeckoView 77. (bug 1616625) - Added
SessionTabDelegate#onUpdateTab
which is called whenever an extension callstabs.update
on the correspondingGeckoSession
.TabDelegate#onCreateTab
now takes aCreateTabDetails
object which contains additional information about the newly created tab (including theurl
which used to be passed in directly). (bug 1616625) - Added
GeckoRuntimeSettings.setWebManifestEnabled
,GeckoRuntimeSettings.webManifest
, andGeckoRuntimeSettings.getWebManifestEnabled
(bug 1614894), to enable or check Web Manifest support. - Added
GeckoDisplay.safeAreaInsetsChanged
to notify the content of safe area insets. (bug 1503656) - Added
GeckoResult#cancel()
,GeckoResult#setCancellationDelegate()
, andGeckoResult.CancellationDelegate
. This adds the optional ability to cancel an operation behind a pendingGeckoResult
. - Added
baseUrl
toWebExtension.MetaData
to expose the base URL for all WebExtension pages for a given extension. (bug 1560048) - Added
allowedInPrivateBrowsing
andsetAllowedInPrivateBrowsing
to control whether an extension can run in private browsing or not. Extensions installed withregisterWebExtension
will always be allowed to run in private browsing. (bug 1599139)
v74
- Added
WebExtensionController.enable
anddisable
to enable and disable extensions. (bug 1599585) - ⚠️ Added ‘GeckoSession.ProgressDelegate.SecurityInformation#certificate’, which is the full server certificate in use, if any. The other certificate-related fields were removed. (bug 1508730)
- Added ‘WebResponse#isSecure’, which indicates whether or not the response was delivered over a secure connection. (bug 1508730)
- Added ‘WebResponse#certificate’, which is the server certificate used for the response, if any. (bug 1508730)
- Added ‘WebRequestError#certificate’, which is the server certificate used in the failed request, if any. (bug 1508730)
- ⚠️ Updated
ContentBlockingController
to use new representation for content blocking exceptions and to add better support for removing exceptions. This deprecatesExceptionList
andrestoreExceptionList
with the intent to remove them in 76. (bug 1587552) - Added
GeckoSession.ContentDelegate.onMetaViewportFitChange
. This exposesviewport-fit
value that is CSS Round Display Level 1. (bug 1574307) - Extended
LoginStorage.Delegate
withonLoginUsed
to report when existing login entries are used for autofill. (bug 1610353) - Added ‘WebExtensionController#setTabActive’, which is used to notify extensions about tab changes (bug 1597793)
- Added ‘WebExtension.metaData.optionsUrl’ and ‘WebExtension.metaData.openOptionsPageInTab’, which is the addon metadata necessary to show their option pages. (bug 1598792)
- Added
WebExtensionController.update
to update extensions. (bug 1599581) - ⚠️ Replaced
subscription
argument inWebPushDelegate.onSubscriptionChanged
from aWebPushSubscription
to theString
scope
.
v73
- Added
WebExtensionController.install
anduninstall
to manage installed extensions - ⚠️ Renamed
ScreenLength.VIEWPORT_WIDTH
,ScreenLength.VIEWPORT_HEIGHT
,ScreenLength.fromViewportWidth
andScreenLength.fromViewportHeight
toScreenLength.VISUAL_VIEWPORT_WIDTH
,ScreenLength.VISUAL_VIEWPORT_HEIGHT
,ScreenLength.fromVisualViewportWidth
andScreenLength.fromVisualViewportHeight
respectively. - Added the
LoginStorage
API. Apps may handle login fetch requests now by attaching aLoginStorage.Delegate
viaGeckoRuntime#setLoginStorageDelegate
(bug 1602881) - ⚠️
WebExtension
’s constructor now requires aWebExtensionController
instance. - Added
GeckoResult.allOf
for consuming a list of results. - Added
WebExtensionController.list
to list all installed extensions. - Added
GeckoSession.PermissionDelegate#PERMISSION_AUTOPLAY_AUDIBLE
andGeckoSession.PermissionDelegate#PERMISSION_AUTOPLAY_INAUDIBLE
. These control autoplay permissions for audible and inaudible videos. (bug 1577596) - Added
LoginStorage.Delegate.onLoginSave
for login storage save requests andGeckoSession.PromptDelegate.onLoginStoragePrompt
for login storage prompts. (bug 1599873)
v72
- Added
GeckoSession.NavigationDelegate.LoadRequest#hasUserGesture
. This indicates if a load was requested while a user gesture was active (e.g., a tap). (bug 1555337) - ⚠️ Refactored
AutofillElement
andAutofillSupport
into theAutofill
API. (bug 1591462) - Make
read()
in theInputStream
returned fromWebResponse#body
timeout according toWebResponse#setReadTimeoutMillis()
. The default timeout value is reflected inWebResponse#DEFAULT_READ_TIMEOUT_MS
, currently 30s. (bug 1595145) - ⚠️ Removed
GeckoResponse
(bug 1581161) - ⚠️ Removed
actions
andresponse
arguments fromSelectionActionDelegate.onShowActionRequest
andBasicSelectionActionDelegate.onShowActionRequest
(bug 1581161) - Added text selection action methods to
SelectionActionDelegate.Selection
(bug 1581161) - Added
BasicSelectionActionDelegate.getSelection
(bug 1581161) - Changed
BasicSelectionActionDelegate.clearSelection
to public. (bug 1581161) - Added
Autofill
commit support. (bug 1577005) - Added
GeckoView.setViewBackend
to set whether GeckoView should be backed by aTextureView
or aSurfaceView
. (bug 1530402) - Added support for Browser and Page Action from the WebExtension API.
See
WebExtension.Action
. (bug 1530402) - ⚠️ Split
ContentBlockingController.Event.LOADED_TRACKING_CONTENT
intoContentBlockingController.Event.LOADED_LEVEL_1_TRACKING_CONTENT
andContentBlockingController.Event.LOADED_LEVEL_2_TRACKING_CONTENT
. - Replaced
subscription
argument inWebPushDelegate.onPushEvent
from aWebPushSubscription
to theString
scope
. - ⚠️ Renamed
WebExtension.ActionIcon
toIcon
. - Added ‘GeckoWebExecutor#FETCH_FLAGS_STREAM_FAILURE_TEST’, which is a new
flag used to immediately fail when reading a
WebResponse
body. (bug 1594905) - Changed
CrashReporter#sendCrashReport(Context, File, JSONObject)
to accept a JSON object instead of a Map. Said object also includes the application name that was previously passed as the fourth argument to the method, which was thus removed. - Added WebXR device access permission support,
PERMISSION_PERSISTENT_XR
. (bug 1599927)
=
v71
- Added a content blocking flag for blocked social cookies to
ContentBlocking
. (bug 1584479) - Added
onBooleanScalar
,onLongScalar
,onStringScalar
toRuntimeTelemetry.Delegate
to support scalars in streaming telemetry. ⚠️ As part of this change,onTelemetryReceived
has been renamed toonHistogram
, andMetric
now takes a type parameter. (bug 1576730) - Added overloads of
GeckoSession.loadUri
that accept a map of additional HTTP request headers. (bug 1567549) - Added support for exposing the content blocking log in
ContentBlockingController
. (bug 1580201) - ⚠️ Added
nativeApp
toWebExtension.MessageDelegate.onMessage
which exposes the native application identifier that was used to send the message. (bug 1546445) - Added
GeckoRuntime.ServiceWorkerDelegate
set viasetServiceWorkerDelegate
to supportServiceWorkerClients.openWindow
(bug 1511033) - Added
GeckoRuntimeSettings.Builder#aboutConfigEnabled
to control whether or notabout:config
should be available. (bug 1540065) - Added
GeckoSession.ContentDelegate.onFirstContentfulPaint
(bug 1578947) - Added
setEnhancedTrackingProtectionLevel
to [ContentBlocking.Settings
][71.14]. (bug 1580854) - ⚠️ Added
GeckoView.onTouchEventForResult
and modifiedPanZoomController.onTouchEvent
to return how the touch event was handled. This allows apps to know if an event is handled by touch event listeners in web content. The methods inPanZoomController
now returnint
instead ofboolean
. - Added
GeckoSession.purgeHistory
allowing apps to clear a session’s history. (bug 1583265) - Added
GeckoRuntimeSettings.Builder#forceUserScalableEnabled
to control whether or not to force user scalable zooming. (bug 1540615) - ⚠️ Moved Autofill related methods from
SessionTextInput
andGeckoSession.TextInputDelegate
intoGeckoSession
andAutofillDelegate
. - Added
GeckoSession.getAutofillElements()
, which is a new method for getting an autofill virtual structure without usingViewStructure
. It relies on a new class,AutofillElement
, for representing the virtual tree. - Added
GeckoView.setAutofillEnabled
for controlling whether or not theGeckoView
instance participates in Android autofill. When enabled, this connects anAutofillDelegate
to the session it holds. - Changed
AutofillElement.children
interface toCollection
to provide an efficient way to pre-allocate memory when fillingViewStructure
. - Added
GeckoSession.PromptDelegate.onSharePrompt
to support the WebShare API. (bug 1402369) - Added
GeckoDisplay.screenshot
allowing apps finer grain control over screenshots. (bug 1577192) - Added
GeckoView.setDynamicToolbarMaxHeight
to make ICB size static, ICB doesn’t include the dynamic toolbar region. (bug 1586144)
v70
- Added API for session context assignment
GeckoSessionSettings.Builder.contextId
and deletion of data related to a session contextStorageController.clearDataForSessionContext
. (bug 1501108) - Removed
setSession(session, runtime)
fromGeckoView
. With this change,GeckoView
will no longer manage opening/closing of theGeckoSession
and instead leave that up to the app. It’s also now allowed to callsetSession
with a closedGeckoSession
. (bug 1510314) - Added an overload of
GeckoSession.loadUri()
that accepts a referringGeckoSession
. This should be used when the URI we’re loading originates from another page. A common example of this would be long pressing a link and then opening that in a newGeckoSession
. (bug 1561079) - Added capture parameter to
onFilePrompt
and correspondingCAPTURE_TYPE_*
constants. (bug 1553603) - Removed the obsolete
success
parameter fromCrashReporter#sendCrashReport(Context, File, File, String)
andCrashReporter#sendCrashReport(Context, File, Map, String)
. (bug 1570789) - Add
GeckoSession.LOAD_FLAGS_REPLACE_HISTORY
. (bug 1571088) - Complete rewrite of
PromptDelegate
. (bug 1499394) - Added
RuntimeTelemetry.Delegate
that receives streaming telemetry data from GeckoView. (bug 1566367) - Updated
ContentBlocking
to better report blocked and allowed ETP events. (bug 1567268) - Added API for controlling Gecko logging
GeckoRuntimeSettings.debugLogging
(bug 1573304) - Added
WebNotification
andWebNotificationDelegate
for handling Web Notifications. (bug 1533057) - Added Social Tracking Protection support to
ContentBlocking
. (bug 1568295) - Added
WebExtensionController
andWebExtensionController.TabDelegate
to handlebrowser.tabs.create
calls by WebExtensions. (bug 1539144) - Added
onCloseTab
toWebExtensionController.TabDelegate
to handlebrowser.tabs.remove
calls by WebExtensions. (bug 1565782) - Added onSlowScript to
ContentDelegate
which allows handling of slow and hung scripts. (bug 1621094) - Added support for Web Push via
WebPushController
,WebPushDelegate
, andWebPushSubscription
. - Added
ContentBlockingController
, accessible viaGeckoRuntime.getContentBlockingController
to allow modification and inspection of a content blocking exception list.
v69
- Modified behavior of ‘setAutomaticFontSizeAdjustment’ so that it no longer has any effect on ‘setFontInflationEnabled’
- Add GeckoSession.LOAD_FLAGS_FORCE_ALLOW_DATA_URI
- Added
GeckoResult.accept
for consuming a result without transforming it. GeckoSession.setMessageDelegate
callers must now specify theWebExtension
that theMessageDelegate
will receive messages from.- Created
onKill
toContentDelegate
to differentiate from crashes.
v68
- Added
GeckoRuntime#configurationChanged
to notify the device configuration has changed. - Added
onSessionStateChange
toProgressDelegate
and removedsaveState
. - Added
ContentBlocking#AT_CRYPTOMINING
for cryptocurrency miner blocking. - Added
ContentBlocking#AT_DEFAULT
,ContentBlocking#AT_STRICT
,ContentBlocking#CB_DEFAULT
andContentBlocking#CB_STRICT
for clearer app default selections. - Added
GeckoSession.SessionState.fromString
. This can be used to deserialize aGeckoSession.SessionState
instance previously serialized to aString
viaGeckoSession.SessionState.toString
. - Added
GeckoRuntimeSettings#setPreferredColorScheme
to override the default color theme for web content (“light” or “dark”). - Added
@NonNull
or@Nullable
to all fields. RuntimeTelemetry#getSnapshots
returns aJSONObject
now.- Removed all
org.mozilla.gecko
references in the API. - Added
ContentBlocking#AT_FINGERPRINTING
to block fingerprinting trackers. - Added
HistoryItem
andHistoryList
interfaces andonHistoryStateChange
toHistoryDelegate
and addedgotoHistoryIndex
toGeckoSession
. GeckoView
will not create aGeckoSession
anymore when attached to a window without a session.- Added
GeckoRuntimeSettings.Builder#configFilePath
to set a path to a configuration file from which GeckoView will read configuration options such as Gecko process arguments, environment variables, and preferences. - Added
unregisterWebExtension
to unregister a web extension. - 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. - Expose the following prefs in
GeckoRuntimeSettings
:setAutoZoomEnabled
,setDoubleTapZoomingEnabled
,setGlMsaaLevel
. - Added new constant for requesting external storage Android permissions,
PERMISSION_PERSISTENT_STORAGE
- Added
setVerticalClipping
toGeckoDisplay
andGeckoView
to tell Gecko how much of its vertical space is clipped. - Added
StorageController
API for clearing data. - Added
onRecordingStatusChanged
toMediaDelegate
to handle events related to the status of recording devices. - Removed redundant constants in
MediaSource
v67
- Added
setAutomaticFontSizeAdjustment
toGeckoRuntimeSettings
for automatically adjusting font size settings depending on the OS-level font size setting. - Added
setFontSizeFactor
toGeckoRuntimeSettings
for setting a font size scaling factor, and for enabling font inflation for non-mobile-friendly pages. - 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. - Change
ContentBlocking.AT_AD
andContentBlocking.SB_ALL
values to mirror the actual constants they encompass. - Added nested
ContentBlocking
runtime settings. - Added
RuntimeSettings
base class to support nested settings. - Added
baseUri
toContentDelegate.ContextElement
and changedlinkUri
to absolute form. - Added
scrollBy
andscrollTo
toPanZoomController
. - Added
GeckoSession.getDefaultUserAgent
to expose the build-time default user agent synchronously. - Changed
WebResponse.body
from aByteBuffer
to anInputStream
. 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 causeGeckoWebExecutor.fetch()
to not automatically follow HTTP redirects (e.g., 302). - Moved
GeckoVRManager
into the org.mozilla.geckoview package. - Initial WebExtension support.
GeckoRuntime#registerWebExtension
allows embedders to register a local web extension. - Added API to
GeckoView
to take screenshot of the visible page. CallingcapturePixels
returns a ‘GeckoResult’ that completes to aBitmap
of the currentSurface
contents, or anIllegalStateException
if theGeckoSession
is not ready to render content. - Added API to capture a screenshot to
GeckoDisplay
.capturePixels
returns a ‘GeckoResult’ that completes to aBitmap
of the currentSurface
contents, or anIllegalStateException
if theGeckoSession
is not ready to render content. - Add missing
@Nullable
annotation to return value forGeckoSession.PromptDelegate.ChoiceCallback.onPopupResult()
- Added
default
implementations for all non-functionalinterface
s. - Added
ContentDelegate.onWebAppManifest
, which will deliver the contents of a parsed and validated Web App Manifest on pages that contain one.
v66
- Removed redundant field
trackingMode
fromSecurityInformation
. UseTrackingProtectionDelegate.onTrackerBlocked
for notification of blocked elements during page load. - Added
@NonNull
or@Nullable
to all APIs. - Added methods for each setting in
GeckoSessionSettings
- Added
GeckoSessionSettings
for enabling desktop viewport. Desktop viewport is no longer set byUSER_AGENT_MODE_DESKTOP
and must be set separately. - Added
@UiThread
toGeckoSession.releaseSession
andGeckoSession.setSession
v65
- Added experimental ad-blocking category to
GeckoSession.TrackingProtectionDelegate
. - Moved
CompositorController
,DynamicToolbarAnimator
,OverscrollEdgeEffect
,PanZoomController
fromorg.mozilla.gecko.gfx
toorg.mozilla.geckoview
- Added
@UiThread
,@AnyThread
annotations to all APIs - Changed
GeckoRuntimeSettings#getLocale
togetLocales
and related APIs. - Merged
org.mozilla.gecko.gfx.LayerSession
intoGeckoSession
- Added
GeckoSession.MediaDelegate
andMediaElement
. This allow monitoring and control of web media elements (play, pause, seek, etc). - Removed unused
access
parameter fromGeckoSession.PermissionDelegate#onContentPermissionRequest
- Added
WebMessage
,WebRequest
,WebResponse
, andGeckoWebExecutor
. This exposes Gecko networking to apps. It includes speculative connections, name resolution, and a Fetch-like HTTP API. - Added
GeckoSession.HistoryDelegate
. This allows apps to implement their own history storage system and provide visited link status. - Added
ContentDelegate#onFirstComposite
to get first composite callback after a compositor start. - Changed
LoadRequest.isUserTriggered
toisRedirect
. - Added
GeckoSession.LOAD_FLAGS_BYPASS_CLASSIFIER
to bypass the URI classifier. - Added a
protected
empty constructor to all field-only classes so that apps can mock these classes in tests. - Added
ContentDelegate.ContextElement
to extend the information passed toContentDelegate#onContextMenu
. Extended information includes the element’s title and alt attributes. - Changed
ContentDelegate.ContextElement
TYPE_
constants to public access. - Changed
ContentDelegate.ContextElement
,GeckoSession.FinderResult
to non-final class. - Update
CrashReporter#sendCrashReport
to return the crash ID as aGeckoResult<String>
.