GeckoView API Changelog.
⚠️ breaking change and deprecation notices
v134
- ⚠️
WebExtensionController.PromptDelegate.onInstallPrompt
is removed see https://bugzilla.mozilla.org/show_bug.cgi?id=1919374 for more details. - Added support for controlling
javascript.options.mem.gc_parallel_marking
viaGeckoRuntimeSettings.setParallelMarkingEnabled
v133
- Added
GeckoSession.getWebCompatInfo
that returns aGeckoResult<JSONObject>
for web compatability information. (bug 1917273). - Added
isInteractiveWidgetDefaultResizesVisual
to tell the preference value of “dom.interactive_widget_default_resizes_visual”. - Added
WebExtension.PermissionPromptResponse
Represents a response fromWebExtension
prompt request. - Added
WebExtension.onInstallPromptRequest
Delegate notified when install prompt needs to be shown. - ⚠️
WebExtensionController.PromptDelegate.onInstallPrompt
is deprecated, and it will be deleted in version 134 see https://bugzilla.mozilla.org/show_bug.cgi?id=1919374. - Added
ERROR_SOFT_BLOCKED
toWebExtension.InstallException.ErrorCodes
, andSOFT_BLOCKLIST
toWebExtension.DisabledFlags
. (bug 1917852) - Added
InstallException.extensionId
, which indicates the ID of the extension that caused the exception. - Added
getFissionEnabled()
onGeckoRuntimeSettings
andfissionEnabled(boolean)
onGeckoRuntimeSettings.Builder
to control Fission on Android. - Added
InstallException.extensionVersion
, which indicates the version of the extension that caused the exception. - Added
WebExtensionController.INSTALLATION_METHOD_ONBOARDING
, which should be used when aWebExtension
is installed from the embedder’s onboarding feature. - Added support for controlling
network.fetchpriority.enabled
viaGeckoRuntimeSettings.setFetchPriorityEnabled
- Added
GeckoRuntimeSettings.setCookieBehaviorOptInPartitioning
andGeckoRuntimeSettings.setCookieBehaviorOptInPartitioningPBM
to control the cookie behavior opt-in partitioning.
v132
-Added getDisableShip
to get the setting for Session History in Parent (SHIP)) and disableShip
to set the status of SHIP on the GeckoRuntimeSettings
builder.
- Added
setWebContentIsolationStrategy
andgetWebContentIsolationStrategy
and defined the strategies.
v131
- Added
GeckoDisplay.windowInsetsChanged
. - Added
GeckoView.addWindowInsetsListener
andGeckoView.removeWindowInsetsListener
to allow listening WindowInsets changes of Activity’s root window with multiple listeners. - ⚠️Increased
compileSdkVersion
to 35 (Android 15) - ️️⚠️ Removed deprecated
GeckoSession.ContentDelegate.onProductUrl
. - Added support for controlling
toolkit.telemetry.user_characteristics_ping.current_version
viaGeckoRuntimeSettings.setUserCharacteristicPingCurrentVersion
v130
- ⚠️ Removed
TranslationState
constructor, please use the newTranslationState
constructor withhasVisibleChange
. (bug 1895275) - Added support for controlling
privacy.fingerprintingProtection
andprivacy.fingerprintingProtection.pbmode
viaGeckoRuntimeSettings.setFingerprintingProtection
- Added support for controlling
privacy.fingerprintingProtection.overrides
viaGeckoRuntimeSettings.setFingerprintingProtectionOverrides
- Added support for controlling
javascript.options.use_fdlibm_for_sin_cos_tan
viaGeckoRuntimeSettings.setFdlibmMathEnabled
v129
- Added
ERROR_ADMIN_INSTALL_ONLY
toWebExtension.InstallException.ErrorCodes
. (bug 1902222) - Added
ContentDelegate.onHideDynamicToolbar
to notify the app that it must fully-collapse its dynamic toolbar (bug 1855990) - Added
PURGED_BOUNCETRACKER
andBLOCKED_SUSPICIOUS_FINGERPRINTING
toContentBlockingController.Event
. (bug 1901808)
v128
- ⚠️ Removed deprecated
GeckoSession.NavigationDelegate.onLocationChange
- Reverted the change to the
WebExtension.MetaData
related to “prompt” permissions (bug 1879543) and explicitly passed the permissions/origins into thePromptDelegate
methods. Required permissions and origins are now available viaWebExtension.MetaData.requiredPermissions
andWebExtension.MetaData.requiredOrigins
. - Added additional
Autocomplete.LoginSelectOption
constructor that takes ahint
(bug 1877237). - ⚠️ Deprecated
GeckoSession.ContentDelegate.onProductUrl
, will now be removed in v131. (bug 1898055)
v127
- ⚠️ Removed deprecated
RuntimeTelemetry
,GeckoRuntimeSettings.getTelemetryDelegate
andGeckoRuntimeSettings.telemetryDelegate
. - Added FINDER_FIND_FORWARD
- Added
WebExtensionController.AddonManagerDelegate.onOptionalPermissionsChanged
(bug 1892302. - Added a new
TranslationState
constructor to addhasVisibleChange
and deprecated the priorTranslationsState
constructor to be removed in v130.
v125
- ⚠️ Deprecated
GeckoSession.NavigationDelegate.onLocationChange
, to be removed in v127. (bug 1837601) - Added
GeckoSession.NavigationDelegate.onLocationChange#hasUserGesture
. This indicates if a location change was requested while a user gesture was active (e.g., a tap). (bug 1837601) - Added
WebExtension.MetaData.optionalPermissions
andWebExtension.MetaData.optionalOrigins
which expose the optional and origin optional permissions of an extension (bug 1811900). - ⚠️ Deprecated
RuntimeTelemetry
,GeckoRuntimeSettings.getTelemetryDelegate
andGeckoRuntimeSettings.telemetryDelegate
, to be removed in v127. (bug 1877836) - Added
WebExtension.MetaData.grantedOptionalPermissions
andWebExtension.MetaData.grantedOptionalOrigins
which expose the granted optional and origin optional permissions of an extension (bug 1879543). - Added
WebExtension.MetaData.promptPermissions
which exposes a list of permissions which needs to be prompted to users (bug 1879547). - ⚠️ Deprecate the
WebExtension.MetaData.permissions
API to be removed in v131. Please useWebExtension.MetaData.promptPermissions
]125.10 instead. - Added
WebExtensionController.addOptionalPermissions
andWebExtensionController.removeOptionalPermissions
, which allow to add and remove optional permissions/origins of an extension (bug 1796176).
v124
- Added
GeckoRuntimeSettings#setTrustedRecursiveResolverMode
to enable DNS-over-HTTPS using different resolver modes (bug 1591533). - Added
GeckoRuntimeSettings#setTrustedRecursiveResolverUri
to specify the DNS-over-HTTPS server to be used if DoH is enabled (bug 1591533). - Added
GeckoRuntimeSettings#setLargeKeepaliveFactor
to increase the keepalive timeout used for a connection (bug 1591533). - Added
PanZoomController.onDragEvent
to support drag and drop. (bug 1586471) - Added
WebExtension.MetaData.incognito
property. (bug 1875229)
v123
- For Translations, added
checkPairDownloadSize
andTranslationsException.ERROR_MODEL_LANGUAGE_REQUIRED
as an error state. - ⚠️ Deprecated
GeckoSession.requestAnalysisCreationStatus
by 124, please useGeckoSession.requestCreateAnalysis
instead. - ⚠️ Removed deprecated
GeckoSession.requestAnalysisCreationStatus
- Added
GeckoSession.sendPlacementAttributionEvent
for sending placement attribution event for a given product recommendation.
v122
- ⚠️ Removed
onGetNimbusFeature
, please useExperimentDelegate.onGetExperimentFeature
instead. - Added
GeckoSession.reportBackInStock
for reporting a Shopping product is back in stock.(bug 1858945) - Added
GeckoSession.requestCreateAnalysis
to return aAnalysisStatusResponse
that contains a status and a progress field. (bug 1866112) - Added support for controlling
privacy.globalprivacycontrol.enabled
andprivacy.globalprivacycontrol.pbmode.enabled
andprivacy.globalprivacycontrol.functionality.enabled
viaGeckoRuntimeSettings.Builder.globalPrivacyControlEnabled
- Added named translations exceptions via
TranslationsException
. - Added
ERROR_UNSUPPORTED_ADDON_TYPE
toWebExtension.InstallException.ErrorCodes
. (bug 1867873) - Added
WebExtensionController.install
requiresWebExtensionController.InstallationMethod
. - Added runtime options to set and get specific “never translate this site” preferences on
RuntimeTranslation
. - Added APIs for toggling
privacy.trackingprotection.emailtracking.pbmode.enabled
. (bug 1866927.
v121
- Added runtime controller functions.
RuntimeTranslation
has options for retrieving translation languages and managing language models. - Added support for controlling
cookiebanners.service.enableGlobalRules
andcookiebanners.service.enableGlobalRules.subFrames
viaGeckoSession.ContentDelegate.cookieBannerGlobalRulesEnabled
andGeckoSession.ContentDelegate.cookieBannerGlobalRulesSubFramesEnabled
. - Added
GeckoSession.sendClickAttributionEvent
for sending click attribution event for a given product recommendation. - Added
GeckoSession.sendImpressionAttributionEvent
for sending impression attribution event for a given product recommendation. - Added support for controlling
privacy.query_stripping.enabled
andprivacy.query_stripping.enabled.pbmode
viaGeckoSession.ContentDelegate.queryParameterStrippingEnabled
andGeckoSession.ContentDelegate.queryParameterStrippingPrivateBrowsingEnabled
. - Added support for controlling
privacy.query_stripping.allow_list
andprivacy.query_stripping.strip_list
viaGeckoSession.ContentDelegate.queryParameterStrippingAllowList
andGeckoSession.ContentDelegate.queryParameterStrippingStripList
. - Add
WebExtensionController.AddonManagerDelegate.onReady
(bug 1859585. - ⚠️
WebExtensionController.install
method will not be implicitly awaiting for the installed extension to be fully started anymore, callers of the install method should now expect theWebExtension.MetaData
propertiesbaseUrl
andoptionsPageUrl
to be not be defined yet until theWebExtensionController.AddonManagerDelegate.onReady
delegated method has been called (bug 1859585. - Added additional support for translation settings such as:
getLanguageSetting
,setLanguageSetting
,getNeverTranslateSiteSetting
,setNeverTranslateSiteSetting
, on the Translations Controller 121.11, andgetTranslationsOfferPopup
,setTranslationsOfferPopup
on the Runtime Settings 121.12. - Added
privacy.trackingprotection.emailtracking.enabled
to strict mode for email tracker blocking in GeckoView. Removed unnecessary string manipulation on STP Pref string. 121.13 (bug 1856634.
v120
- Added
disableExtensionProcessSpawning
for disabling the extension process spawning. (bug 1855405) - Added
DisabledFlags.SIGNATURE
for extensions disabled because they aren’t correctly signed. (bug 1847266) - Added
Builder
pattern constructors forReviewAnalysis
andRecommendation
(part of bug 1846341) - Added
DisabledFlags.APP_VERSION
for extensions disabled because they aren’t compatible with the application version. (bug 1847266) - Added more metadata to the WebExtension class. (bug 1850674, bug 1858925)
- Added session and translations controller. Includes
TranslationsController
,TranslationsController.SessionTranslation
(notably translate), and a translations delegate.
v119
- Added
remoteType
to GeckoView child crash intent. (bug 1851518)
v118
- Added
ExperimentDelegate
to allow GeckoView to send and retrieve experiment information from an embedder. - Added
ERROR_BLOCKLISTED
toWebExtension.InstallException.ErrorCodes
. (bug 1845745) - Added
ContentDelegate.onProductUrl
to notify the app when on a supported product page. - Added
GeckoSession.requestAnalysis
for requesting product review analysis. - Added
GeckoSession.requestRecommendations
for requesting product recommendations given a specific product url. - Added
ERROR_INCOMPATIBLE
toWebExtension.InstallException.ErrorCodes
. (bug 1845749) - Added
GeckoRuntimeSettings.Builder.extensionsWebAPIEnabled
. (bug 1847173) - Changed
GeckoSession.AccountSelectorPrompt
: added the Provider to which the Account belongs (bug 1847059) - Added
getExperimentDelegate
andsetExperimentDelegate
to the GeckoSession allow GeckoView to get and set the experiment delegate for the session. Default is to use the runtime delegate. - ⚠️ Deprecated
onGetNimbusFeature
by 122, please useExperimentDelegate.onGetExperimentFeature
instead. - Added
GeckoRuntimeSettings.Builder.extensionsProcessEnabled
for setting whether extensions process is enabled. (bug 1843926) - Added
ExtensionProcessDelegate
to allow GeckoView to notify disabling of the extension process spawning due to excessive crash/kill. (bug 1819737) - Added
enableExtensionProcessSpawning
for enabling the extension process spawning - Add
WebExtensionController.AddonManagerDelegate.onInstallationFailed
(bug 1848100. - Add
InstallException.extensionName
which indicates the name of the extension that caused the exception.
v116
- Added
GeckoSession.didPrintPageContent
to included extra print status for a standard print and newGeckoPrintException.ERROR_NO_PRINT_DELEGATE
- Added
PromptInstanceDelegate.onSelectIdentityCredentialProvider
to allow the user to choose an Identity Credential provider (FedCM) to be used when authenticating. (bug 1836356) - Changed [
Gecko.CrashHandler
] location toGeckoView.CrashHandler
(bug 1550206) - Added
PromptInstanceDelegate.onSelectIdentityCredentialAccount
to allow the user to choose an account on the Identity Credential Provider (FedCM) they previously chose to be used when authenticating. (bug 1836363) - Added
PromptInstanceDelegate.onShowPrivacyPolicyIdentityCredential
to allow the user to indicate if agrees or not with the privacy policy of the Identity Credential provider. (bug 1836358)
v115
- Changed
SessionPdfFileSaver.createResponse
to response of saving PDF to accept two additional arguments:skipConfirmation
andrequestExternalApp
. - Added
GeckoDisplay.NewSurfaceProvider
interface, which allows Gecko to request a new rendering Surface from the application. (bug 1824083) - Add
onPrintWithStatus
to retrieve additional printing status information. - Added new
GeckoPrintException
errors ofERROR_NO_ACTIVITY_CONTEXT
andERROR_NO_ACTIVITY_CONTEXT_DELEGATE
- Added
GeckoSession.ContentDelegate.onGetNimbusFeature
- Added
textContent
toContentDelegate.ContextElement
and a newconstructor
toContentDelegate.ContextElement
- Changed
SessionPdfFileSaver.createResponse
to response of saving PDF to accept an url and return a [GeckoResult<WebResponse>
]. - ⚠️ Deprecated
GeckoSession.PdfSaveResult
v114
- Add
SessionPdfFileSaver.createResponse
to response of saving PDF. - Added
requestExternalApp
andskipConfirmation
with builder fields on a WebResponse to request that a downloaded file be opened in an external application or to skip a confirmation, respectively. - ⚠️ Removed deprecated
CookieBannerMode.COOKIE_BANNER_MODE_DETECT_ONLY
v113
- Add
DisplayMdoe
annotation todisplayMode
,getDisplayMode
andsetDisplayMode
. (bug 1820567) - Add
UserAgentMode
annotation touserAgentMode
,getUserAgentMode
andsetUserAgentMode
. (bug 1820567) - Add
ViewportMode
annotation toviewportMode
,getViewportMode
andsetViewportMode
. (bug 1820567) - Add
WebExtensionController.AddonManagerDelegate
(bug 1822763, bug 1826739)
v112
- Added
GeckoSession.LOAD_FLAGS_BYPASS_LOAD_URI_DELEGATE
, see (bug 1809269). - Added
GeckoSession.hasCookieBannerRuleForBrowsingContextTree
to expose Gecko API nsICookieBannerService::hasRuleForBrowsingContextTree see (bug 1806740) - Removed deprecated
Autofill.Node.getDimensions
(bug 1815830)
v111
- Removed deprecated
SelectionActionDelegate.Selection.clientRect
,BasicSelectionActionDelegate.mTempMatrix
andBasicSelectionActionDelegate.mTempRect
, (bug 1801615) - Added
GeckoSession.ContentDelegate.cookieBannerHandlingDetectOnlyMode
see (bug 1810742) - ⚠️ Deprecated
CookieBannerMode.COOKIE_BANNER_MODE_DETECT_ONLY
- Added
GeckoView.ActivityContextDelegate
,setActivityContextDelegate
, andgetActivityContextDelegate
toGeckoView
- Added
GeckoSession.PrintDelegate
, aPrintDocumentAdapter
, getters and setters for thePrintDelegate
, and [printPageContent
] to printsession content
- Added
GeckoSession.PdfSaveResult
, aSessionPdfFileSaver
andisPdfJs
, see (bug 1810761)
v110
- Added
GeckoSession.ContentDelegate.onCookieBannerDetected
andGeckoSession.ContentDelegate.onCookieBannerHandled
- Added
CookieBannerMode.COOKIE_BANNER_MODE_DETECT_ONLY
, for detecting cookie banners but not handle them, see (bug 1797581) - Added
StorageController.setCookieBannerModeAndPersistInPrivateBrowsingForDomain
see (bug 1804747) - Added
Autofill.Node.getScreenRect
for fission compatible. - ⚠️ Deprecated
Autofill.Node.getDimensions
. (bug 1803733) - Added
ColorPrompt.predefinedValues
to expose predefined values bydatalist
element in the color prompt. (bug 1805616)
v109
- Added
SelectionActionDelegate.Selection.screenRect
for fission compatible. - ⚠️ Deprecated
SelectionActionDelegate.Selection.clientRect
,BasicSelectionActionDelegate.mTempMatrix
andBasicSelectionActionDelegate.mTempRect
. (bug 1785759) - Added
StorageController.setCookieBannerModeForDomain
,StorageController.getCookieBannerModeForDomain
andStorageController.removeCookieBannerModeForDomain
see (bug 1797581)
v108
- Added
ContentBlocking.CookieBannerMode
;cookieBannerHandlingMode
andcookieBannerHandlingModePrivateBrowsing
toContentBlocking.Settings.Builder
;getCookieBannerMode
,setCookieBannerMode
,getCookieBannerModePrivateBrowsing
andsetCookieBannerModePrivateBrowsing
toContentBlocking.Settings
(bug 1790724) - Added
GeckoSession.GeckoPrintException
to improver error reporting while generating a PDF from website, (bug 1798402). - Added
GeckoSession.containsFormData
that returns aGeckoResult<Boolean>
for whether or not a session has form data, (bug 1777506).
v107
- Removed deprecated
cookieLifetime
- Removed deprecated
setPermission
, see deprecation note in v90
v106
- Added
SelectionActionDelegate.onShowClipboardPermissionRequest
,SelectionActionDelegate.onDismissClipboardPermissionRequest
,BasicSelectionActionDelegate.onShowClipboardPermissionRequest
,BasicSelectionActionDelegate.onDismissCancelClipboardPermissionRequest
andSelectionActionDelegate.ClipboardPermission
to handle permission request for reading clipboard data byclipboard.readText
. (bug 1776829)
v104
- Removed deprecated Autofill.Delegate
onAutofill
, Autofill.NodefillViewStructure
,getFocused
,getId
,getValue
,getVisible
, Autofill.NodeDataAutofill.Notify
, Autofill.SessionsurfaceChanged
. (bug 1781180) - Removed deprecated
GeckoDisplay.surfaceChanged
functions [1] [2] - Removed deprecated
GeckoSession.autofill
. (bug 1781180) - Removed deprecated
onLocationChange(2)
(bug 1781180)
v103
- Added
GeckoSession.saveAsPdf
that returns aGeckoResult<InputStream>
that contains a PDF of the current session’s page. - Added missing
@Deprecated
tag forsetPermission
, see deprecation note in v90. - ⚠️ Deprecated
cookieLifetime
, this feature is not available anymore.
v102
- Added
DateTimePrompt.stepValue
to exportstep
attribute of input element. (bug 1499635) - Deprecated
onLocationChange(2)
, please useonLocationChange(3)
. - Added
GeckoSession.setPriorityHint
function to set the session to either high priority or default. WebRequestError.ERROR_HTTPS_ONLY
now has error categoryERROR_CATEGORY_NETWORK
rather thanERROR_CATEGORY_SECURITY
.- ⚠️ The Autofill.Delegate API now receives a
AutofillNode
object instead of the entireNode
structure. TheonAutofill
delegate method is now split into several methods:onNodeAdd
,onNodeBlur
,onNodeFocus
,onNodeRemove
,onNodeUpdate
,onSessionCancel
,onSessionCommit
,onSessionStart
. - Added
PromptInstanceDelegate.onPromptUpdate
to allow GeckoView to update current prompts. (bug 1758800) - Deprecated
GeckoSession.autofill
, useAutofill.Session.autofill
instead. (bug 1770010) - Added
WebRequestError.ERROR_BAD_HSTS_CERT
error code to notify the app of a connection to a site that does not allow error overrides. (bug 1721220)
v101
- Added
GeckoDisplay.surfaceChanged
function taking new typeGeckoDisplay.SurfaceInfo
. This allows the caller to provide aSurfaceControl
object, which must be set on SDK level 29 and above when rendering in to aSurfaceView
. (bug 1762424) - ⚠️ Deprecated old
GeckoDisplay.surfaceChanged
functions [1] [2]. - Add
WebExtensionController.optionalPrompt
to allow handling of optional permission requests from extensions.
v100
- ⚠️ Changed
GeckoSession.isOpen
to@UiThread
. WebNotification
now implementsParcelable
to support persisting notifications and responding to them while the browser is not running.- Removed deprecated
GeckoRuntime.EXTRA_CRASH_FATAL
- Removed deprecated
MediaSource.rawId
v99
- Removed deprecated
GeckoRuntimeSettings.Builder.enterpiseRootsEnabled
. (bug 1754244)
v98
- Add
WebRequest.beConservative
to allow critical infrastructure to avoid using bleeding-edge network features. (bug 1750231)
v97
- ⚠️ Deprecated
MediaSource.rawId
, which now provides the same string asid
. (bug 1744346) - Added
EXTRA_CRASH_PROCESS_TYPE
field toACTION_CRASHED
intents, and correspondingCRASHED_PROCESS_TYPE_*
constants, indicating which type of process a crash occured in. (bug 1743454) - ⚠️ Deprecated
EXTRA_CRASH_FATAL
. UseEXTRA_CRASH_PROCESS_TYPE
instead. (bug 1743454) - Added
OrientationController
to allow GeckoView to handle orientation locking. (bug 1697647) - Added GeckoSession.goBack and GeckoSession.goForward with a
userInteraction
parameter. Updated the default goBack/goForward behaviour to also be considered as a user interaction. (bug 1644595)
v96
- Added
onLoginFetch
which allows apps to provide all saved logins to GeckoView. (bug 1733423) - Added
GeckoResult.finally_
to unconditionally run an action after the GeckoResult has been completed. (bug 1736433) - Added
ERROR_INVALID_DOMAIN
toWebExtension.InstallException.ErrorCodes
. (bug 1740634) - Added
Selection.pasteAsPlainText
to paste HTML content as plain text. (bug 1740414) - Removed deprecated Content Blocking APIs. (bug 1743706)
v95
- Added
GeckoSession.ContentDelegate.onPointerIconChange()
to notify the application of changing pointer icon. If the application wants to handle pointer icon, it should override this. (bug 1672609) - Deprecated
ContentBlockingController
, useStorageController
instead. APERMISSION_TRACKING
permission is now present inonLocationChange
for every page load, which can be used to set tracking protection exceptions. (bug 1714945) - Added
setPrivateBrowsingPermanentPermission
, which allows apps to set permanent permissions in private browsing (e.g. to set permanent tracking protection permissions in private browsing). (bug 1714945) - Deprecated
GeckoRuntimeSettings.Builder.enterpiseRootsEnabled
due to typo. (bug 1708815) - Added
GeckoRuntimeSettings.Builder.enterpriseRootsEnabled
to replaceGeckoRuntimeSettings.Builder.enterpiseRootsEnabled
. (bug 1708815) - Added
GeckoSession.ContentDelegate.onPreviewImage
to notify the application of a preview image URL. (bug 1732219)
v94
- Extended
Autocomplete
API to support credit card saving. (bug 1703976)
v93
- Removed deprecated
Autocomplete.LoginStorageDelegate
. (bug 1725469) - Removed deprecated
GeckoRuntime.getProfileDir
. (bug 1725469) - Added
PromptInstanceDelegate
to allow GeckoView to dismiss stale prompts. (bug 1710668) - Added
WebRequestError.ERROR_HTTPS_ONLY
error code to allow GeckoView display custom HTTPS-only error pages and bypass them. (bug 1697866)
v92
- Added
PermissionDelegate.PERMISSION_STORAGE_ACCESS
to control the allowing of third-party frames to access first-party cookies and storage. (bug 1543720) - Added
ContentDelegate.onShowDynamicToolbar
to notify the app that it must fully-expand its dynamic toolbar (bug 1690296) - Removed deprecated
GeckoResult.ALLOW
andGeckoResult.DENY
. UseGeckoResult.allow
andGeckoResult.deny
instead.
v91
- Extended
Autocomplete
API to support addresses. (bug 1699794). - Added
clearDataFromBaseDomain
toStorageController
for clearing site data by base domain. This includes data of associated subdomains and data partitioned viaState Partitioning
. - Removed deprecated
MediaElement
API.
v90
- Added
WebNotification.silent
andWebNotification.vibrate
support. See also Web/API/Notification/silent and Web/API/Notification/vibrate. (bug 1696145) - ⚠️ Deprecated
GeckoRuntime.getProfileDir
, the API is being kept for compatibility but it always returns null. - Added
forceEnableAccessibility
runtime setting to enable accessibility during testing. (bug 1701269) - Removed deprecated
GeckoView.onTouchEventForResult
. (bug 1706403) - ⚠️ Updated
onContentPermissionRequest
to useContentPermission
; addedsetPermission
toStorageController
for modifying existing permissions, and allowed Gecko to handle persisting permissions. - ⚠️ Added a deprecation schedule to most existing content blocking exception functionality;
other than
addException
, content blocking exceptions should be treated as content permissions going forward.
v89
- Added
ContentPermission
, which is used to report what permissions content is loaded with inonLocationChange
. - Added
StorageController.getPermissions
andStorageController.getAllPermissions
, allowing inspection of what permissions have been set for a given URI and for all URIs. - ⚠️ Deprecated
NavigationDelegate.onLocationChange
, to be removed in v92. The newonLocationChange
callback simply adds permissions information, migration of existing functionality should only require updating the function signature. - Added
GeckoRuntimeSettings.setEnterpriseRootsEnabled
which allows GeckoView to add third party certificate roots from the Android OS CA store. (bug 1678191). - ⚠️
GeckoSession.load
now throwsIllegalArgumentException
if the session has noGeckoSession.NavigationDelegate
and the request’sdata
URI is too long. If aGeckoSession
does have aGeckoSession.NavigationDelegate
andGeckoSession.load
is called with a top-leveldata
URI that is too long,NavigationDelgate.onLoadError
will be called with aWebRequestError
containing error codeWebRequestError.ERROR_DATA_URI_TOO_LONG
. (bug 1668952) - Extended
Autocomplete
API to support credit cards. (bug 1691819). - ⚠️ Deprecated
Autocomplete.LoginStorageDelegate
with the intention of removing it in GeckoView v93. Please useAutocomplete.StorageDelegate
instead. (bug 1691819). - Added
ALLOWED_TRACKING_CONTENT
to content blocking API to indicate when unsafe content is allowed by a shim. (bug 1661330) - ⚠️ Added
setCookieBehaviorPrivateMode
to control cookie behavior for private browsing mode independently of normal browsing mode. To maintain current behavior, set this to the same value assetCookieBehavior
is set to.
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). - ⚠️ Deprecate the
MediaElement
API to be removed in v91. Please useMediaSession
for media events and control. (bug 1693584). - ⚠️ Deprecate
GeckoResult.ALLOW
andGeckoResult.DENY
in favor ofGeckoResult.allow
andGeckoResult.deny
. (bug 1697270). - ⚠️ Update
SessionState
to handle null states/strings more gracefully. (bug 1685486).
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
. - Removed
JSONException
throws fromSessionState.fromString
, fixed annotations, and clarified null-handling a bit.
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
andContentBlockingController.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. RefactoredLoginStorage.Delegate
toAutocomplete.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
andWebExtension.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 aWebResponse
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 onsetFontInflationEnabled
- 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 aGeckoResult
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 aGeckoResult
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>
.