GeckoView API Changelog.
⚠️ breaking change and deprecation notices
v146
- Added
getSafeBrowsingV5EnabledandsetSafeBrowsingV5EnabledtoContentBlocking.Settingsto control whether to use the SafeBrowsing V5 protocol to access the Google SafeBrowsing service. - Added
Autocomplete.AddressStructureAPI used to retrieve the structure of an address for a given country. - Added
GeckoRuntimeSettings.getAppZygoteProcessEnabledandGeckoRuntimeSettings.Builder.appZygoteProcessEnabledto control whether content service runs using App Zygote preloading or not.
v145
- Added
WebNotification.show. Implementations ofWebNotificationDelegate.onShowNotificationshould now call eithershowwhen the notification is successfully opened, ordismissif it failed. - Added
WebExtension.InvalidMetaDataException. (bug 1981496) - Added
GeckoSession.PromptDelegate.RedirectPromptto display a prompt when a third-party redirect is blocked. - Added support for controlling
security.pki.crlite_channelviaGeckoRuntimeSettings.setCrliteChannel - Changed certificate transparency information in TLS connections to now be required by default. This can be controlled by the
GeckoRuntimeSettings.setCertificateTransparencyModeAPI.
v144
- Added
GeckoRuntimeSettings.getIsolatedProcessEnabledandGeckoRuntimeSettings.Builder.isolatedProcessEnabledto control whether content service runs on isolated process or not. - Added
ContentBlocking.GOOGLE_SAFE_BROWSING_V5_PROVIDERfor the configuration of the SafeBrowsing V5 provider - ⚠️ Removed deprecated
onOptionalPromptfunction signature. (bug 1972510) - ⚠️ Removed deprecated
onUpdatePromptfunction signature. (bug 1974744) - Added
RequiresApiannotations to APIs. - Added
appLinkLaunchTypetoGeckoSession.Loaderto set the launch type of the app session for the load.(bug 1982622) - ⭐ Support for
16 KB page sizesis now available.
v143
- Added an option to set multiple preferences on
GeckoPreferenceControllerascheckStateAndSetGeckoPrefs. - Added
WebNotification.originthat shows the origin of the notification. (bug 1976269) - ⚠️ Removed deprecated functions that were scheduled for removal in GeckoView 143. Includes deprecations to versions of
onInstallPromptRequest,removeOptionalPermissions,addOptionalPermissions,PermissionPromptResponse(), andCertificateRequest(). (bug 1980176) - Added
GeckoRuntimeSettings#setLnaBlockingEnabled,GeckoRuntimeSettings#getLnaBlockingEnabledandGeckoRuntimeSettings.Builder#setLnaBlockingEnabledto enable LNA blocking. - Added new permissions
GeckoSession.PermissionDelegate#PERMISSION_LOCAL_DEVICE_ACCESSandGeckoSession.PermissionDelegate#PERMISSION_LOCAL_NETWORK_ACCESS
v142
- Added support for data collection permissions to
WebExtensionController.onOptionalPrompt(bug 1964999) - ⚠️ Removed deprecated functions that were scheduled for removal in GeckoView 142. (bug 1963053)
- Added
setBounceTrackingProtectionMode,getBounceTrackingProtectionModetoContentBlocking.Settings. (bug 1963445) - Added the list of data collection permission names to
WebExtension(bug 1972228) - Added
@ExperimentalGeckoViewApito annotate APIs that need special care. Opt in via@OptIn(markerClass = ExperimentalGeckoViewApi.class)to accept the risks. - ⚠️
GeckoPreferenceControlleris now annotated with@ExperimentalGeckoViewApi. - Added
setAllowListBaselineTrackingProtection,getAllowListBaselineTrackingProtection,setAllowListConvenienceTrackingProtection,setAllowListConvenienceTrackingProtectiontoContentBlocking.Settings. (bug 1970649) - Added support for data collection permissions to
WebExtensionController.onUpdatePrompt(bug 1974742)
v141
- Changed the methods in
ProfilerControllerto static. (bug 1955403) - ⚠️ Deprecated
GeckoRuntime.getProfilerController, will now be removed in v142. (bug 1955403) - Added options on
GeckoPreferenceControllertoregister multiple prefsandderegister multiple prefs - Added
GeckoRuntime.notifyTelemetryPrefChangedto notify Gecko about telemetry preference changes. - Added
GeckoRuntimeSettings.getBaselineFingerprintingProtection,GeckoRuntimeSettings.getBaselineFingerprintingProtectionOverrides,GeckoRuntimeSettings.setBaselineFingerprintingProtection, andGeckoRuntimeSettings.setBaselineFingerprintingProtectionOverridesto control the baseline fingerprinting protection settings via Nimbus. - Added data collection permissions to
WebExtension.MetaData(bug 1960551) - Added option on
GeckoPreferenceControllertoget multiple preferencevalues at once. - Added
WebNotificationActionthat represents action buttons of notifications. - Added
WebNotification.actionsand a new function signature withactiontoWebNotification.click()to indicate action click. - Added support for special “technical and interaction” data collection permission (bug 1964992)
- Added support for data collection permissions in
WebExtensionController.addOptionalPermissionsandWebExtensionController.removeOptionalPermissions(bug 1964992) - Added
CrashPullController.Delegateinterface, which allows Gecko’sRemoteSettingsCrashPullmodule to request that the application uploads a specified subset of user crash dumps.
v140
- Added a
GeckoPreferenceControllerclass to manage Gecko preferences. - Introduced a new
preference observer delegateand a way toregisterpreferences on the delegate. - Added options on
GeckoPreferenceControllertoGetandSetGecko preferences. - Added option on
GeckoPreferenceControllertoCleara Gecko preference. - Added
setSameDocumentNavigationOverridesLoadTypeandsetSameDocumentNavigationOverridesLoadTypeForceDisableto set values on theGeckoRuntimeSettingsbuilder to determine whether the same document navigation should override the load type or not. - Added
getSameDocumentNavigationOverridesLoadType,setSameDocumentNavigationOverridesLoadType,getSameDocumentNavigationOverridesLoadTypeForceDisable,setSameDocumentNavigationOverridesLoadTypeForceDisableto get the runtime settings for same document navigation overriding the load type. - ⚠️ Deprecated a
GeckoSession.PromptDelegate.CertificateRequestconstructor in favor of one that takes an array of acceptable issuers. - Added support for controlling
network.android_doh.autoselect_enabledviaGeckoRuntimeSettings.setDohAutoselectEnabled - Added support for controlling
network.security.ports.bannedviaGeckoRuntimeSettings.setBannedPorts
v139
- ⚠️ Removed deprecated
GeckoSession.requestAnalysis,GeckoSession.requestCreateAnalysis,GeckoSession.requestAnalysisStatus,GeckoSession.sendPlacementAttributionEvent,GeckoSession.pollForAnalysisCompleted,GeckoSession.sendClickAttributionEvent,GeckoSession.sendImpressionAttributionEvent,GeckoSession.sendPlacementAttributionEvent,GeckoSession.requestRecommendations,GeckoSession.reportBackInStock,AnalysisStatusResponse,ReviewAnalysisandRecommendation. - Added
CompositorController.onPipModeChangedtoCompositorControllerto inform GeckoSession of changes to and from picture-in-picture mode. - ⚠️Increased
compileSdkVersionto 36 (Android 16) - Added
getLowMemoryDetection()onGeckoRuntimeSettingsandlowMemoryDetection(boolean)onGeckoRuntimeSettings.Builderto control the low-memory detection machinery. - ⚠️ Changed the meaning of
EXTRA_CRASH_PROCESS_TYPE: it now refers to the actual process type reported by gecko. The previous meaning has moved toEXTRA_CRASH_PROCESS_VISIBILITYinACTION_CRASHEDintents to avoid confusion with “process type” terminology in crash handling code. TheCRASHED_PROCESS_TYPE_*constants are deprecated (to be removed in v142) and equivalentCRASHED_PROCESS_VISIBILITY_*constants have been added. (bug 1959799 - Added
setEnhancedTrackingProtectionCategorytoContentBlocking.Settings. (bug 1956620)
v138
- Added
GeckoSession.Loader.originalInputoption, which allows passing through the original user address bar input - Added
PromptDelegate.FilePrompt.Type.FOLDERto show directory picker. (bug 1674428) - Added
onFolderUploadPromptandPromptDelegate.FolderUploadPromptto confirm folder upload. (bug 1674428) - Added
GeckoSession.PromptDelegate.onRequestCertificateto support client authentication certificates. (bug 1813930) - Added
Loader#textDirectiveUserActivationto set text directive user activation. (bug 1912095) - Added
GeckoSession.sendMoreWebCompatInfothat sends aGeckoResult<JSONObject>of web compatibility information. (bug 1952931). - Added
GeckoWebExecutor#FETCH_FLAG_OHTTP. This new flag allows for making Oblivious HTTP requests.
v137
- ⚠️
GeckoSession.requestAnalysis,GeckoSession.requestCreateAnalysis,GeckoSession.requestAnalysisStatus,GeckoSession.sendPlacementAttributionEvent,GeckoSession.pollForAnalysisCompleted,GeckoSession.sendClickAttributionEvent,GeckoSession.sendImpressionAttributionEvent,GeckoSession.sendPlacementAttributionEvent,GeckoSession.requestRecommendations,GeckoSession.reportBackInStock,AnalysisStatusResponse,ReviewAnalysisandRecommendationare deprecated, and it will be deleted in version 139 see https://bugzilla.mozilla.org/show_bug.cgi?id=1941470. - Added support for controlling
network.trr.default_provider_uriviaGeckoRuntimeSettings.setDefaultRecursiveResolverUriandGeckoRuntimeSettings.getDefaultRecursiveResolverUri GeckoRuntimeSettings.getFingerprintingProtectionandGeckoRuntimeSettings.getFingerprintingProtectionPrivateBrowsingare now@Nullableto indicates that their values are controlled by the engine.- Added support for controlling
security.tls.enable_kyberandnetwork.http.http3.enable_kyberviaGeckoRuntimeSettings.setPostQuantumKeyExchangeEnabled
v136
- Added support for controlling
security.pki.certificate_transparency.modeviaGeckoRuntimeSettings.setCertificateTransparencyMode - Added
GeckoSession.CompositorScrollDelegateinterface, which allows reacting to scroll position changes as soon as they are composited - Added support for controlling
network.trr.excluded-domainsviaGeckoRuntimeSettings.setTrustedRecursiveResolverExcludedDomainsandGeckoRuntimeSettings.getTrustedRecursiveResolverExcludedDomains - Added
GeckoSession.Loader.originalInputoption, which allows passing through the original user address bar input
v134
- ⚠️
WebExtensionController.PromptDelegate.onInstallPromptis removed see https://bugzilla.mozilla.org/show_bug.cgi?id=1919374 for more details. - Added support for controlling
javascript.options.mem.gc_parallel_markingviaGeckoRuntimeSettings.setParallelMarkingEnabled
v133
- Added
GeckoSession.getWebCompatInfothat returns aGeckoResult<JSONObject>for web compatability information. (bug 1917273). - Added
isInteractiveWidgetDefaultResizesVisualto tell the preference value of “dom.interactive_widget_default_resizes_visual”. - Added
WebExtension.PermissionPromptResponseRepresents a response fromWebExtensionprompt request. - Added
WebExtension.onInstallPromptRequestDelegate notified when install prompt needs to be shown. - ⚠️
WebExtensionController.PromptDelegate.onInstallPromptis deprecated, and it will be deleted in version 134 see https://bugzilla.mozilla.org/show_bug.cgi?id=1919374. - Added
ERROR_SOFT_BLOCKEDtoWebExtension.InstallException.ErrorCodes, andSOFT_BLOCKLISTtoWebExtension.DisabledFlags. (bug 1917852) - Added
InstallException.extensionId, which indicates the ID of the extension that caused the exception. - Added
getFissionEnabled()onGeckoRuntimeSettingsandfissionEnabled(boolean)onGeckoRuntimeSettings.Builderto 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 aWebExtensionis installed from the embedder’s onboarding feature. - Added support for controlling
network.fetchpriority.enabledviaGeckoRuntimeSettings.setFetchPriorityEnabled - Added
GeckoRuntimeSettings.setCookieBehaviorOptInPartitioningandGeckoRuntimeSettings.setCookieBehaviorOptInPartitioningPBMto 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
setWebContentIsolationStrategyandgetWebContentIsolationStrategyand defined the strategies.
v131
- Added
GeckoDisplay.windowInsetsChanged. - Added
GeckoView.addWindowInsetsListenerandGeckoView.removeWindowInsetsListenerto allow listening WindowInsets changes of Activity’s root window with multiple listeners. - ⚠️Increased
compileSdkVersionto 35 (Android 15) - ️️⚠️ Removed deprecated
GeckoSession.ContentDelegate.onProductUrl. - Added support for controlling
toolkit.telemetry.user_characteristics_ping.current_versionviaGeckoRuntimeSettings.setUserCharacteristicPingCurrentVersion
v130
- ⚠️ Removed
TranslationStateconstructor, please use the newTranslationStateconstructor withhasVisibleChange. (bug 1895275) - Added support for controlling
privacy.fingerprintingProtectionandprivacy.fingerprintingProtection.pbmodeviaGeckoRuntimeSettings.setFingerprintingProtection - Added support for controlling
privacy.fingerprintingProtection.overridesviaGeckoRuntimeSettings.setFingerprintingProtectionOverrides - Added support for controlling
javascript.options.use_fdlibm_for_sin_cos_tanviaGeckoRuntimeSettings.setFdlibmMathEnabled
v129
- Added
ERROR_ADMIN_INSTALL_ONLYtoWebExtension.InstallException.ErrorCodes. (bug 1902222) - Added
ContentDelegate.onHideDynamicToolbarto notify the app that it must fully-collapse its dynamic toolbar (bug 1855990) - Added
PURGED_BOUNCETRACKERandBLOCKED_SUSPICIOUS_FINGERPRINTINGtoContentBlockingController.Event. (bug 1901808)
v128
- ⚠️ Removed deprecated
GeckoSession.NavigationDelegate.onLocationChange - Reverted the change to the
WebExtension.MetaDatarelated to “prompt” permissions (bug 1879543) and explicitly passed the permissions/origins into thePromptDelegatemethods. Required permissions and origins are now available viaWebExtension.MetaData.requiredPermissionsandWebExtension.MetaData.requiredOrigins. - Added additional
Autocomplete.LoginSelectOptionconstructor that takes ahint(bug 1877237). - ⚠️ Deprecated
GeckoSession.ContentDelegate.onProductUrl, will now be removed in v131. (bug 1898055)
v127
- ⚠️ Removed deprecated
RuntimeTelemetry,GeckoRuntimeSettings.getTelemetryDelegateandGeckoRuntimeSettings.telemetryDelegate. - Added FINDER_FIND_FORWARD
- Added
WebExtensionController.AddonManagerDelegate.onOptionalPermissionsChanged(bug 1892302. - Added a new
TranslationStateconstructor to addhasVisibleChangeand deprecated the priorTranslationsStateconstructor 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.optionalPermissionsandWebExtension.MetaData.optionalOriginswhich expose the optional and origin optional permissions of an extension (bug 1811900). - ⚠️ Deprecated
RuntimeTelemetry,GeckoRuntimeSettings.getTelemetryDelegateandGeckoRuntimeSettings.telemetryDelegate, to be removed in v127. (bug 1877836) - Added
WebExtension.MetaData.grantedOptionalPermissionsandWebExtension.MetaData.grantedOptionalOriginswhich expose the granted optional and origin optional permissions of an extension (bug 1879543). - Added
WebExtension.MetaData.promptPermissionswhich exposes a list of permissions which needs to be prompted to users (bug 1879547). - ⚠️ Deprecate the
WebExtension.MetaData.permissionsAPI to be removed in v131. Please useWebExtension.MetaData.promptPermissions]125.10 instead. - Added
WebExtensionController.addOptionalPermissionsandWebExtensionController.removeOptionalPermissions, which allow to add and remove optional permissions/origins of an extension (bug 1796176).
v124
- Added
GeckoRuntimeSettings#setTrustedRecursiveResolverModeto enable DNS-over-HTTPS using different resolver modes (bug 1591533). - Added
GeckoRuntimeSettings#setTrustedRecursiveResolverUrito specify the DNS-over-HTTPS server to be used if DoH is enabled (bug 1591533). - Added
GeckoRuntimeSettings#setLargeKeepaliveFactorto increase the keepalive timeout used for a connection (bug 1591533). - Added
PanZoomController.onDragEventto support drag and drop. (bug 1586471) - Added
WebExtension.MetaData.incognitoproperty. (bug 1875229)
v123
- For Translations, added
checkPairDownloadSizeandTranslationsException.ERROR_MODEL_LANGUAGE_REQUIREDas an error state. - ⚠️ Deprecated
GeckoSession.requestAnalysisCreationStatusby 124, please useGeckoSession.requestCreateAnalysisinstead. - ⚠️ Removed deprecated
GeckoSession.requestAnalysisCreationStatus - Added
GeckoSession.sendPlacementAttributionEventfor sending placement attribution event for a given product recommendation.
v122
- ⚠️ Removed
onGetNimbusFeature, please useExperimentDelegate.onGetExperimentFeatureinstead. - Added
GeckoSession.reportBackInStockfor reporting a Shopping product is back in stock.(bug 1858945) - Added
GeckoSession.requestCreateAnalysisto return aAnalysisStatusResponsethat contains a status and a progress field. (bug 1866112) - Added support for controlling
privacy.globalprivacycontrol.enabledandprivacy.globalprivacycontrol.pbmode.enabledandprivacy.globalprivacycontrol.functionality.enabledviaGeckoRuntimeSettings.Builder.globalPrivacyControlEnabled - Added named translations exceptions via
TranslationsException. - Added
ERROR_UNSUPPORTED_ADDON_TYPEtoWebExtension.InstallException.ErrorCodes. (bug 1867873) - Added
WebExtensionController.installrequiresWebExtensionController.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.
RuntimeTranslationhas options for retrieving translation languages and managing language models. - Added support for controlling
cookiebanners.service.enableGlobalRulesandcookiebanners.service.enableGlobalRules.subFramesviaGeckoSession.ContentDelegate.cookieBannerGlobalRulesEnabledandGeckoSession.ContentDelegate.cookieBannerGlobalRulesSubFramesEnabled. - Added
GeckoSession.sendClickAttributionEventfor sending click attribution event for a given product recommendation. - Added
GeckoSession.sendImpressionAttributionEventfor sending impression attribution event for a given product recommendation. - Added support for controlling
privacy.query_stripping.enabledandprivacy.query_stripping.enabled.pbmodeviaGeckoSession.ContentDelegate.queryParameterStrippingEnabledandGeckoSession.ContentDelegate.queryParameterStrippingPrivateBrowsingEnabled. - Added support for controlling
privacy.query_stripping.allow_listandprivacy.query_stripping.strip_listviaGeckoSession.ContentDelegate.queryParameterStrippingAllowListandGeckoSession.ContentDelegate.queryParameterStrippingStripList. - Add
WebExtensionController.AddonManagerDelegate.onReady(bug 1859585. - ⚠️
WebExtensionController.installmethod will not be implicitly awaiting for the installed extension to be fully started anymore, callers of the install method should now expect theWebExtension.MetaDatapropertiesbaseUrlandoptionsPageUrlto be not be defined yet until theWebExtensionController.AddonManagerDelegate.onReadydelegated 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,setTranslationsOfferPopupon the Runtime Settings 121.12. - Added
privacy.trackingprotection.emailtracking.enabledto strict mode for email tracker blocking in GeckoView. Removed unnecessary string manipulation on STP Pref string. 121.13 (bug 1856634.
v120
- Added
disableExtensionProcessSpawningfor disabling the extension process spawning. (bug 1855405) - Added
DisabledFlags.SIGNATUREfor extensions disabled because they aren’t correctly signed. (bug 1847266) - Added
Builderpattern constructors forReviewAnalysisandRecommendation(part of bug 1846341) - Added
DisabledFlags.APP_VERSIONfor 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
remoteTypeto GeckoView child crash intent. (bug 1851518)
v118
- Added
ExperimentDelegateto allow GeckoView to send and retrieve experiment information from an embedder. - Added
ERROR_BLOCKLISTEDtoWebExtension.InstallException.ErrorCodes. (bug 1845745) - Added
ContentDelegate.onProductUrlto notify the app when on a supported product page. - Added
GeckoSession.requestAnalysisfor requesting product review analysis. - Added
GeckoSession.requestRecommendationsfor requesting product recommendations given a specific product url. - Added
ERROR_INCOMPATIBLEtoWebExtension.InstallException.ErrorCodes. (bug 1845749) - Added
GeckoRuntimeSettings.Builder.extensionsWebAPIEnabled. (bug 1847173) - Changed
GeckoSession.AccountSelectorPrompt: added the Provider to which the Account belongs (bug 1847059) - Added
getExperimentDelegateandsetExperimentDelegateto the GeckoSession allow GeckoView to get and set the experiment delegate for the session. Default is to use the runtime delegate. - ⚠️ Deprecated
onGetNimbusFeatureby 122, please useExperimentDelegate.onGetExperimentFeatureinstead. - Added
GeckoRuntimeSettings.Builder.extensionsProcessEnabledfor setting whether extensions process is enabled. (bug 1843926) - Added
ExtensionProcessDelegateto allow GeckoView to notify disabling of the extension process spawning due to excessive crash/kill. (bug 1819737) - Added
enableExtensionProcessSpawningfor enabling the extension process spawning - Add
WebExtensionController.AddonManagerDelegate.onInstallationFailed(bug 1848100. - Add
InstallException.extensionNamewhich indicates the name of the extension that caused the exception.
v116
- Added
GeckoSession.didPrintPageContentto included extra print status for a standard print and newGeckoPrintException.ERROR_NO_PRINT_DELEGATE - Added
PromptInstanceDelegate.onSelectIdentityCredentialProviderto 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.onSelectIdentityCredentialAccountto 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.onShowPrivacyPolicyIdentityCredentialto allow the user to indicate if agrees or not with the privacy policy of the Identity Credential provider. (bug 1836358)
v115
- Changed
SessionPdfFileSaver.createResponseto response of saving PDF to accept two additional arguments:skipConfirmationandrequestExternalApp. - Added
GeckoDisplay.NewSurfaceProviderinterface, which allows Gecko to request a new rendering Surface from the application. (bug 1824083) - Add
onPrintWithStatusto retrieve additional printing status information. - Added new
GeckoPrintExceptionerrors ofERROR_NO_ACTIVITY_CONTEXTandERROR_NO_ACTIVITY_CONTEXT_DELEGATE - Added
GeckoSession.ContentDelegate.onGetNimbusFeature - Added
textContenttoContentDelegate.ContextElementand a newconstructortoContentDelegate.ContextElement - Changed
SessionPdfFileSaver.createResponseto response of saving PDF to accept an url and return a [GeckoResult<WebResponse>]. - ⚠️ Deprecated
GeckoSession.PdfSaveResult
v114
- Add
SessionPdfFileSaver.createResponseto response of saving PDF. - Added
requestExternalAppandskipConfirmationwith 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
DisplayMdoeannotation todisplayMode,getDisplayModeandsetDisplayMode. (bug 1820567) - Add
UserAgentModeannotation touserAgentMode,getUserAgentModeandsetUserAgentMode. (bug 1820567) - Add
ViewportModeannotation toviewportMode,getViewportModeandsetViewportMode. (bug 1820567) - Add
WebExtensionController.AddonManagerDelegate(bug 1822763, bug 1826739)
v112
- Added
GeckoSession.LOAD_FLAGS_BYPASS_LOAD_URI_DELEGATE, see (bug 1809269). - Added
GeckoSession.hasCookieBannerRuleForBrowsingContextTreeto expose Gecko API nsICookieBannerService::hasRuleForBrowsingContextTree see (bug 1806740) - Removed deprecated
Autofill.Node.getDimensions(bug 1815830)
v111
- Removed deprecated
SelectionActionDelegate.Selection.clientRect,BasicSelectionActionDelegate.mTempMatrixandBasicSelectionActionDelegate.mTempRect, (bug 1801615) - Added
GeckoSession.ContentDelegate.cookieBannerHandlingDetectOnlyModesee (bug 1810742) - ⚠️ Deprecated
CookieBannerMode.COOKIE_BANNER_MODE_DETECT_ONLY - Added
GeckoView.ActivityContextDelegate,setActivityContextDelegate, andgetActivityContextDelegatetoGeckoView - Added
GeckoSession.PrintDelegate, aPrintDocumentAdapter, getters and setters for thePrintDelegate, and [printPageContent] to printsession content - Added
GeckoSession.PdfSaveResult, aSessionPdfFileSaverandisPdfJs, see (bug 1810761)
v110
- Added
GeckoSession.ContentDelegate.onCookieBannerDetectedandGeckoSession.ContentDelegate.onCookieBannerHandled - Added
CookieBannerMode.COOKIE_BANNER_MODE_DETECT_ONLY, for detecting cookie banners but not handle them, see (bug 1797581) - Added
StorageController.setCookieBannerModeAndPersistInPrivateBrowsingForDomainsee (bug 1804747) - Added
Autofill.Node.getScreenRectfor fission compatible. - ⚠️ Deprecated
Autofill.Node.getDimensions. (bug 1803733) - Added
ColorPrompt.predefinedValuesto expose predefined values bydatalistelement in the color prompt. (bug 1805616)
v109
- Added
SelectionActionDelegate.Selection.screenRectfor fission compatible. - ⚠️ Deprecated
SelectionActionDelegate.Selection.clientRect,BasicSelectionActionDelegate.mTempMatrixandBasicSelectionActionDelegate.mTempRect. (bug 1785759) - Added
StorageController.setCookieBannerModeForDomain,StorageController.getCookieBannerModeForDomainandStorageController.removeCookieBannerModeForDomainsee (bug 1797581)
v108
- Added
ContentBlocking.CookieBannerMode;cookieBannerHandlingModeandcookieBannerHandlingModePrivateBrowsingtoContentBlocking.Settings.Builder;getCookieBannerMode,setCookieBannerMode,getCookieBannerModePrivateBrowsingandsetCookieBannerModePrivateBrowsingtoContentBlocking.Settings(bug 1790724) - Added
GeckoSession.GeckoPrintExceptionto improver error reporting while generating a PDF from website, (bug 1798402). - Added
GeckoSession.containsFormDatathat 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.onDismissCancelClipboardPermissionRequestandSelectionActionDelegate.ClipboardPermissionto 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.surfaceChangedfunctions [1] [2] - Removed deprecated
GeckoSession.autofill. (bug 1781180) - Removed deprecated
onLocationChange(2)(bug 1781180)
v103
- Added
GeckoSession.saveAsPdfthat returns aGeckoResult<InputStream>that contains a PDF of the current session’s page. - Added missing
@Deprecatedtag forsetPermission, see deprecation note in v90. - ⚠️ Deprecated
cookieLifetime, this feature is not available anymore.
v102
- Added
DateTimePrompt.stepValueto exportstepattribute of input element. (bug 1499635) - Deprecated
onLocationChange(2), please useonLocationChange(3). - Added
GeckoSession.setPriorityHintfunction to set the session to either high priority or default. WebRequestError.ERROR_HTTPS_ONLYnow has error categoryERROR_CATEGORY_NETWORKrather thanERROR_CATEGORY_SECURITY.- ⚠️ The Autofill.Delegate API now receives a
AutofillNodeobject instead of the entireNodestructure. TheonAutofilldelegate method is now split into several methods:onNodeAdd,onNodeBlur,onNodeFocus,onNodeRemove,onNodeUpdate,onSessionCancel,onSessionCommit,onSessionStart. - Added
PromptInstanceDelegate.onPromptUpdateto allow GeckoView to update current prompts. (bug 1758800) - Deprecated
GeckoSession.autofill, useAutofill.Session.autofillinstead. (bug 1770010) - Added
WebRequestError.ERROR_BAD_HSTS_CERTerror code to notify the app of a connection to a site that does not allow error overrides. (bug 1721220)
v101
- Added
GeckoDisplay.surfaceChangedfunction taking new typeGeckoDisplay.SurfaceInfo. This allows the caller to provide aSurfaceControlobject, which must be set on SDK level 29 and above when rendering in to aSurfaceView. (bug 1762424) - ⚠️ Deprecated old
GeckoDisplay.surfaceChangedfunctions [1] [2]. - Add
WebExtensionController.optionalPromptto allow handling of optional permission requests from extensions.
v100
- ⚠️ Changed
GeckoSession.isOpento@UiThread. WebNotificationnow implementsParcelableto 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.beConservativeto 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_TYPEfield toACTION_CRASHEDintents, and correspondingCRASHED_PROCESS_TYPE_*constants, indicating which type of process a crash occured in. (bug 1743454) - ⚠️ Deprecated
EXTRA_CRASH_FATAL. UseEXTRA_CRASH_PROCESS_TYPEinstead. (bug 1743454) - Added
OrientationControllerto allow GeckoView to handle orientation locking. (bug 1697647) - Added GeckoSession.goBack and GeckoSession.goForward with a
userInteractionparameter. Updated the default goBack/goForward behaviour to also be considered as a user interaction. (bug 1644595)
v96
- Added
onLoginFetchwhich 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_DOMAINtoWebExtension.InstallException.ErrorCodes. (bug 1740634) - Added
Selection.pasteAsPlainTextto 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, useStorageControllerinstead. APERMISSION_TRACKINGpermission is now present inonLocationChangefor 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.enterpiseRootsEnableddue to typo. (bug 1708815) - Added
GeckoRuntimeSettings.Builder.enterpriseRootsEnabledto replaceGeckoRuntimeSettings.Builder.enterpiseRootsEnabled. (bug 1708815) - Added
GeckoSession.ContentDelegate.onPreviewImageto notify the application of a preview image URL. (bug 1732219)
v94
- Extended
AutocompleteAPI to support credit card saving. (bug 1703976)
v93
- Removed deprecated
Autocomplete.LoginStorageDelegate. (bug 1725469) - Removed deprecated
GeckoRuntime.getProfileDir. (bug 1725469) - Added
PromptInstanceDelegateto allow GeckoView to dismiss stale prompts. (bug 1710668) - Added
WebRequestError.ERROR_HTTPS_ONLYerror code to allow GeckoView display custom HTTPS-only error pages and bypass them. (bug 1697866)
v92
- Added
PermissionDelegate.PERMISSION_STORAGE_ACCESSto control the allowing of third-party frames to access first-party cookies and storage. (bug 1543720) - Added
ContentDelegate.onShowDynamicToolbarto notify the app that it must fully-expand its dynamic toolbar (bug 1690296) - Removed deprecated
GeckoResult.ALLOWandGeckoResult.DENY. UseGeckoResult.allowandGeckoResult.denyinstead.
v91
- Extended
AutocompleteAPI to support addresses. (bug 1699794). - Added
clearDataFromBaseDomaintoStorageControllerfor clearing site data by base domain. This includes data of associated subdomains and data partitioned viaState Partitioning. - Removed deprecated
MediaElementAPI.
v90
- Added
WebNotification.silentandWebNotification.vibratesupport. 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
forceEnableAccessibilityruntime setting to enable accessibility during testing. (bug 1701269) - Removed deprecated
GeckoView.onTouchEventForResult. (bug 1706403) - ⚠️ Updated
onContentPermissionRequestto useContentPermission; addedsetPermissiontoStorageControllerfor 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.getPermissionsandStorageController.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 newonLocationChangecallback simply adds permissions information, migration of existing functionality should only require updating the function signature. - Added
GeckoRuntimeSettings.setEnterpriseRootsEnabledwhich allows GeckoView to add third party certificate roots from the Android OS CA store. (bug 1678191). - ⚠️
GeckoSession.loadnow throwsIllegalArgumentExceptionif the session has noGeckoSession.NavigationDelegateand the request’sdataURI is too long. If aGeckoSessiondoes have aGeckoSession.NavigationDelegateandGeckoSession.loadis called with a top-leveldataURI that is too long,NavigationDelgate.onLoadErrorwill be called with aWebRequestErrorcontaining error codeWebRequestError.ERROR_DATA_URI_TOO_LONG. (bug 1668952) - Extended
AutocompleteAPI to support credit cards. (bug 1691819). - ⚠️ Deprecated
Autocomplete.LoginStorageDelegatewith the intention of removing it in GeckoView v93. Please useAutocomplete.StorageDelegateinstead. (bug 1691819). - Added
ALLOWED_TRACKING_CONTENTto content blocking API to indicate when unsafe content is allowed by a shim. (bug 1661330) - ⚠️ Added
setCookieBehaviorPrivateModeto control cookie behavior for private browsing mode independently of normal browsing mode. To maintain current behavior, set this to the same value assetCookieBehavioris set to.
v88
- Added
WebExtension.Download#updatethat can be used to implement the WebExtensiondownloadsAPI. This method is used to communicate updates in the download status to the Web Extension - Added
PanZoomController.onTouchEventForDetailResultandGeckoView.onTouchEventForDetailResultto tell information that the website doesn’t expect browser apps to react the event, also and deprecatedPanZoomController.onTouchEventForResultandGeckoView.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
MediaElementAPI to be removed in v91. Please useMediaSessionfor media events and control. (bug 1693584). - ⚠️ Deprecate
GeckoResult.ALLOWandGeckoResult.DENYin favor ofGeckoResult.allowandGeckoResult.deny. (bug 1697270). - ⚠️ Update
SessionStateto handle null states/strings more gracefully. (bug 1685486).
v87
- ⚠️ Added
WebExtension.DownloadInitDataclass that can be used to implement the WebExtensiondownloadsAPI. This class represents initial state of a download. - Added
WebExtension.Download.Infointerface that can be used to implement the WebExtensiondownloadsAPI. This interface allows communicating download’s state to Web Extension. Image#getBitmapnow throwsImageProcessingExceptionif the image cannot be processed. (bug 1689745)- Added support for HTTPS-only mode to
GeckoRuntimeSettingsviasetAllowInsecureConnections. - Removed
JSONExceptionthrows 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.DownloadDelegateand that can be used to implement the WebExtensiondownloadsAPI. (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#loadUrivariants in favor ofGeckoSession#load. See docs forLoader. (bug 1667471) - Added
GeckoResult#mapto synchronously map a GeckoResult value. - Added
PanZoomController#INPUT_RESULT_IGNORED. (bug 1687430)
v85
- Added
WebExtension.BrowsingDataDelegatethat can be used to implement the WebExtensionbrowsingDataAPI.
v84
- ⚠️ Removed deprecated
GeckoRuntimeSettings.Builder.useMultiprocessand [GeckoRuntimeSettings.getUseMultiprocess]. Single-process GeckoView is no longer supported. (bug 1650118) - Deprecated members now have an additional
@DeprecationScheduleannotation which includes theversionthat we expect to remove the member and anidthat can be used to group annotation notices in tooling. (bug 1671460) - ⚠️ Removed deprecated
ContentBlockingController.ExceptionListandContentBlockingController.restoreExceptionList. (bug 1674500)
v83
- Added
WebExtension.MetaData.temporarywhich exposes whether an extension has been installed temporarily, e.g. when using web-ext. (bug 1624410) - ⚠️ Removing unsupported
MediaSession.Delegate.onPictureInPicturefor now. Also,MediaSession.Delegate.onMetadatais no longer dispatched for plain media elements. (bug 1658937) - Replaced android.util.ArrayMap with java.util.TreeMap in
WebMessageto enable case-insensitive handling of the HTTP headers. (bug 1666013) - Added
ContentBlocking.SafeBrowsingProviderto configure Safe Browsing providers. (bug 1660241) - Added
GeckoRuntime.ActivityDelegatewhich 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#loadUrivariants in favor ofGeckoSession#load. See docs forLoader. (bug 1667471) - Added
Loader#headerFilterto override the default header filtering behavior. (bug 1667471)
v82
- ⚠️
WebNotification.sourceis now@Nullableto account for WebExtension notifications which don’t have asourcefield. - ⚠️ 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
Imagesupport for size-dependent bitmap retrieval from image resources. (bug 1658456) - ⚠️ Use
ImageforMediaSessionartwork andWebExtensionicon support. (bug 1662508) - Added
RepostConfirmPromptto prompt the user for cofirmation before resending POST requests. (bug 1659073) - Removed
Parcelablesupport inGeckoSession. UseProgressDelegate#onSessionStateChangeandProgressDelegate#restoreStateinstead. (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_CONTENTto content blocking API to indicate when unsafe content is shimmed. (bug 1663756)
v81
- Added
cookiePurgingtoContentBlocking.Settings.BuilderandgetCookiePurgingandsetCookiePurgingtoContentBlocking.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.installinstead. ⚠️ - ChangedGeckoView.onTouchEventForResultto 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
MediaSessionAPI for session-based media events and control.
v80
- Removed
GeckoSession.hashCodeandGeckoSession.equalsoverrides in favor of the default implementations. (bug 1647883) - Added
strictSocialTrackingProtectiontoContentBlocking.Settings.BuilderandgetStrictSocialTrackingProtectiontoContentBlocking.Settings.
v79
- Added
runtime.openOptionsPagesupport. Foroptions_ui.open_in_new_tab == false,TabDelegate.onOpenOptionsPageis called. (bug 1618058) - Added
WebNotification.source, which is the URL of the page or Service Worker that created the notification. - Removed deprecated
WebExtensionController.setTabDelegateandWebExtensionController.getTabDelegateAPIs (bug 1618987). - ⚠️
RuntimeTelemetry#getSnapshotsis removed after deprecation. Use Glean to handle Gecko telemetry. (bug 1644447) - Added
ensureBuiltInthat ensures that a built-in extension is installed without re-installing. (bug 1635564) - Added
ProfilerController, accessible viaGeckoRuntime.getProfilerControllerto allow adding gecko profiler markers. (bug 1624993) - ⚠️ Deprecated
Parcelablesupport inGeckoSessionwith the intention of removing in GeckoView v82. (bug 1649529) - ⚠️ Deprecated
GeckoRuntimeSettings.Builder.useMultiprocessandGeckoRuntimeSettings.getUseMultiprocesswith the intention of removing them in GeckoView v82. (bug 1649530)
v78
- Added
WebExtensionController.installBuiltInthat 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_OTHERSto 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
cookieStoreIdfield toWebExtension.CreateTabDetails. This adds the optional ability to create a tab with a given cookie store ID for itscontextual identity. (bug 1622500) - Added
NavigationDelegate.onSubframeLoadRequestto allow intercepting non-top-level navigations. - Added
BeforeUnloadPromptto respond to prompts from onbeforeunload. - ⚠️ Refactored
LoginStorageto theAutocompleteAPI to support login form autocomplete delegation. RefactoredLoginStorage.DelegatetoAutocomplete.LoginStorageDelegate. RefactoredGeckoSession.PromptDelegate.onLoginStoragePrompttoGeckoSession.PromptDelegate.onLoginSave. AddedGeckoSession.PromptDelegate.onLoginSelect. (bug 1618058) - Added
GeckoRuntimeSettings#setLoginAutofillEnabledto control whether login forms should be automatically filled in suitable situations.
v77
- Added
GeckoRuntime.appendAppNotesToCrashReportFor adding app notes to the crash report. (bug 1626979) - ⚠️ Remove the
DynamicToolbarAnimatorAPI along with accesors onGeckoViewandGeckoSession. (bug 1627716)
v76
- Added
GeckoSession.PermissionDelegate.PERMISSION_MEDIA_KEY_SYSTEM_ACCESSto control EME media key access. RuntimeTelemetry#getSnapshotsis deprecated and will be removed in 79. Use Glean to handle Gecko telemetry. (bug 1620395)- Added
LoadRequest.isDirectNavigationto know when calls toonLoadRequestoriginate 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#useMultiprocessis enabled. - ⚠️ Move
GeckoSessionSettings.Builder#useMultiprocesstoGeckoRuntimeSettings.Builder#useMultiprocess. Multiprocess state is no longer determined per session. - Added
DebuggerDelegate#onExtensionListUpdatedto notify that a temporary extension has been installed by the debugger. (bug 1614295) - ⚠️ Removed
GeckoRuntimeSettings.setAutoplayDefault, useGeckoSession.PermissionDelegate#PERMISSION_AUTOPLAY_AUDIBLEandGeckoSession.PermissionDelegate#PERMISSION_AUTOPLAY_INAUDIBLEto control autoplay. (bug 1614894) - Added
GeckoSession.reload(int flags)That takes a load flag parameter. - ⚠️ Moved
ActionDelegateandMessageDelegatetoSessionController. (bug 1616625) - Added
SessionTabDelegatetoSessionControllerandTabDelegatetoWebExtensionwhich receive respectively calls for the session and the runtime.TabDelegateis also now per-WebExtensionobject instead of being global. The existing globalTabDelegateis now deprecated and will be removed in GeckoView 77. (bug 1616625) - Added
SessionTabDelegate#onUpdateTabwhich is called whenever an extension callstabs.updateon the correspondingGeckoSession.TabDelegate#onCreateTabnow takes aCreateTabDetailsobject which contains additional information about the newly created tab (including theurlwhich 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.safeAreaInsetsChangedto 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
baseUrltoWebExtension.MetaDatato expose the base URL for all WebExtension pages for a given extension. (bug 1560048) - Added
allowedInPrivateBrowsingandsetAllowedInPrivateBrowsingto control whether an extension can run in private browsing or not. Extensions installed withregisterWebExtensionwill always be allowed to run in private browsing. (bug 1599139)
v74
- Added
WebExtensionController.enableanddisableto 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
ContentBlockingControllerto use new representation for content blocking exceptions and to add better support for removing exceptions. This deprecatesExceptionListandrestoreExceptionListwith the intent to remove them in 76. (bug 1587552) - Added
GeckoSession.ContentDelegate.onMetaViewportFitChange. This exposesviewport-fitvalue that is CSS Round Display Level 1. (bug 1574307) - Extended
LoginStorage.DelegatewithonLoginUsedto 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.optionsUrlandWebExtension.metaData.openOptionsPageInTab, which is the addon metadata necessary to show their option pages. (bug 1598792) - Added
WebExtensionController.updateto update extensions. (bug 1599581) - ⚠️ Replaced
subscriptionargument inWebPushDelegate.onSubscriptionChangedfrom aWebPushSubscriptionto theStringscope.
v73
- Added
WebExtensionController.installanduninstallto manage installed extensions - ⚠️ Renamed
ScreenLength.VIEWPORT_WIDTH,ScreenLength.VIEWPORT_HEIGHT,ScreenLength.fromViewportWidthandScreenLength.fromViewportHeighttoScreenLength.VISUAL_VIEWPORT_WIDTH,ScreenLength.VISUAL_VIEWPORT_HEIGHT,ScreenLength.fromVisualViewportWidthandScreenLength.fromVisualViewportHeightrespectively. - Added the
LoginStorageAPI. Apps may handle login fetch requests now by attaching aLoginStorage.DelegateviaGeckoRuntime#setLoginStorageDelegate(bug 1602881) - ⚠️
WebExtension’s constructor now requires aWebExtensionControllerinstance. - Added
GeckoResult.allOffor consuming a list of results. - Added
WebExtensionController.listto list all installed extensions. - Added
GeckoSession.PermissionDelegate#PERMISSION_AUTOPLAY_AUDIBLEandGeckoSession.PermissionDelegate#PERMISSION_AUTOPLAY_INAUDIBLE. These control autoplay permissions for audible and inaudible videos. (bug 1577596) - Added
LoginStorage.Delegate.onLoginSavefor login storage save requests andGeckoSession.PromptDelegate.onLoginStoragePromptfor 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
AutofillElementandAutofillSupportinto theAutofillAPI. (bug 1591462) - Make
read()in theInputStreamreturned fromWebResponse#bodytimeout according toWebResponse#setReadTimeoutMillis(). The default timeout value is reflected inWebResponse#DEFAULT_READ_TIMEOUT_MS, currently 30s. (bug 1595145) - ⚠️ Removed
GeckoResponse(bug 1581161) - ⚠️ Removed
actionsandresponsearguments fromSelectionActionDelegate.onShowActionRequestandBasicSelectionActionDelegate.onShowActionRequest(bug 1581161) - Added text selection action methods to
SelectionActionDelegate.Selection(bug 1581161) - Added
BasicSelectionActionDelegate.getSelection(bug 1581161) - Changed
BasicSelectionActionDelegate.clearSelectionto public. (bug 1581161) - Added
Autofillcommit support. (bug 1577005) - Added
GeckoView.setViewBackendto set whether GeckoView should be backed by aTextureViewor aSurfaceView. (bug 1530402) - Added support for Browser and Page Action from the WebExtension API.
See
WebExtension.Action. (bug 1530402) - ⚠️ Split
ContentBlockingController.Event.LOADED_TRACKING_CONTENTintoContentBlockingController.Event.LOADED_LEVEL_1_TRACKING_CONTENTandContentBlockingController.Event.LOADED_LEVEL_2_TRACKING_CONTENT. - Replaced
subscriptionargument inWebPushDelegate.onPushEventfrom aWebPushSubscriptionto theStringscope. - ⚠️ Renamed
WebExtension.ActionIcontoIcon. - Added
GeckoWebExecutor#FETCH_FLAGS_STREAM_FAILURE_TEST, which is a new flag used to immediately fail when reading aWebResponsebody. (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,onStringScalartoRuntimeTelemetry.Delegateto support scalars in streaming telemetry. ⚠️ As part of this change,onTelemetryReceivedhas been renamed toonHistogram, andMetricnow takes a type parameter. (bug 1576730) - Added overloads of
GeckoSession.loadUrithat accept a map of additional HTTP request headers. (bug 1567549) - Added support for exposing the content blocking log in
ContentBlockingController. (bug 1580201) - ⚠️ Added
nativeApptoWebExtension.MessageDelegate.onMessagewhich exposes the native application identifier that was used to send the message. (bug 1546445) - Added
GeckoRuntime.ServiceWorkerDelegateset viasetServiceWorkerDelegateto supportServiceWorkerClients.openWindow(bug 1511033) - Added
GeckoRuntimeSettings.Builder#aboutConfigEnabledto control whether or notabout:configshould be available. (bug 1540065) - Added
GeckoSession.ContentDelegate.onFirstContentfulPaint(bug 1578947) - Added
setEnhancedTrackingProtectionLevelto [ContentBlocking.Settings][71.14]. (bug 1580854) - ⚠️ Added
GeckoView.onTouchEventForResultand modifiedPanZoomController.onTouchEventto 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 inPanZoomControllernow returnintinstead ofboolean. - Added
GeckoSession.purgeHistoryallowing apps to clear a session’s history. (bug 1583265) - Added
GeckoRuntimeSettings.Builder#forceUserScalableEnabledto control whether or not to force user scalable zooming. (bug 1540615) - ⚠️ Moved Autofill related methods from
SessionTextInputandGeckoSession.TextInputDelegateintoGeckoSessionandAutofillDelegate. - 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.setAutofillEnabledfor controlling whether or not theGeckoViewinstance participates in Android autofill. When enabled, this connects anAutofillDelegateto the session it holds. - Changed
AutofillElement.childreninterface toCollectionto provide an efficient way to pre-allocate memory when fillingViewStructure. - Added
GeckoSession.PromptDelegate.onSharePromptto support the WebShare API. (bug 1402369) - Added
GeckoDisplay.screenshotallowing apps finer grain control over screenshots. (bug 1577192) - Added
GeckoView.setDynamicToolbarMaxHeightto make ICB size static, ICB doesn’t include the dynamic toolbar region. (bug 1586144)
v70
- Added API for session context assignment
GeckoSessionSettings.Builder.contextIdand deletion of data related to a session contextStorageController.clearDataForSessionContext. (bug 1501108) - Removed
setSession(session, runtime)fromGeckoView. With this change,GeckoViewwill no longer manage opening/closing of theGeckoSessionand instead leave that up to the app. It’s also now allowed to callsetSessionwith 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
onFilePromptand correspondingCAPTURE_TYPE_*constants. (bug 1553603) - Removed the obsolete
successparameter 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.Delegatethat receives streaming telemetry data from GeckoView. (bug 1566367) - Updated
ContentBlockingto better report blocked and allowed ETP events. (bug 1567268) - Added API for controlling Gecko logging
GeckoRuntimeSettings.debugLogging(bug 1573304) - Added
WebNotificationandWebNotificationDelegatefor handling Web Notifications. (bug 1533057) - Added Social Tracking Protection support to
ContentBlocking. (bug 1568295) - Added
WebExtensionControllerandWebExtensionController.TabDelegateto handlebrowser.tabs.createcalls by WebExtensions. (bug 1539144) - Added
onCloseTabtoWebExtensionController.TabDelegateto handlebrowser.tabs.removecalls by WebExtensions. (bug 1565782) - Added onSlowScript to
ContentDelegatewhich allows handling of slow and hung scripts. (bug 1621094) - Added support for Web Push via
WebPushController,WebPushDelegate, andWebPushSubscription. - Added
ContentBlockingController, accessible viaGeckoRuntime.getContentBlockingControllerto allow modification and inspection of a content blocking exception list.
v69
- Modified behavior of
setAutomaticFontSizeAdjustmentso that it no longer has any effect onsetFontInflationEnabled - Add GeckoSession.LOAD_FLAGS_FORCE_ALLOW_DATA_URI
- Added
GeckoResult.acceptfor consuming a result without transforming it. GeckoSession.setMessageDelegatecallers must now specify theWebExtensionthat theMessageDelegatewill receive messages from.- Created
onKilltoContentDelegateto differentiate from crashes.
v68
- Added
GeckoRuntime#configurationChangedto notify the device configuration has changed. - Added
onSessionStateChangetoProgressDelegateand removedsaveState. - Added
ContentBlocking#AT_CRYPTOMININGfor cryptocurrency miner blocking. - Added
ContentBlocking#AT_DEFAULT,ContentBlocking#AT_STRICT,ContentBlocking#CB_DEFAULTandContentBlocking#CB_STRICTfor clearer app default selections. - Added
GeckoSession.SessionState.fromString. This can be used to deserialize aGeckoSession.SessionStateinstance previously serialized to aStringviaGeckoSession.SessionState.toString. - Added
GeckoRuntimeSettings#setPreferredColorSchemeto override the default color theme for web content (“light” or “dark”). - Added
@NonNullor@Nullableto all fields. RuntimeTelemetry#getSnapshotsreturns aJSONObjectnow.- Removed all
org.mozilla.geckoreferences in the API. - Added
ContentBlocking#AT_FINGERPRINTINGto block fingerprinting trackers. - Added
HistoryItemandHistoryListinterfaces andonHistoryStateChangetoHistoryDelegateand addedgotoHistoryIndextoGeckoSession. GeckoViewwill not create aGeckoSessionanymore when attached to a window without a session.- Added
GeckoRuntimeSettings.Builder#configFilePathto set a path to a configuration file from which GeckoView will read configuration options such as Gecko process arguments, environment variables, and preferences. - Added
unregisterWebExtensionto unregister a web extension. - Added messaging support for WebExtension.
setMessageDelegateallows embedders to listen to messages coming from a WebExtension.Portallows 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
setVerticalClippingtoGeckoDisplayandGeckoViewto tell Gecko how much of its vertical space is clipped. - Added
StorageControllerAPI for clearing data. - Added
onRecordingStatusChangedtoMediaDelegateto handle events related to the status of recording devices. - Removed redundant constants in
MediaSource
v67
- Added
setAutomaticFontSizeAdjustmenttoGeckoRuntimeSettingsfor automatically adjusting font size settings depending on the OS-level font size setting. - Added
setFontSizeFactortoGeckoRuntimeSettingsfor 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_ADandContentBlocking.SB_ALLvalues to mirror the actual constants they encompass. - Added nested
ContentBlockingruntime settings. - Added
RuntimeSettingsbase class to support nested settings. - Added
baseUritoContentDelegate.ContextElementand changedlinkUrito absolute form. - Added
scrollByandscrollTotoPanZoomController. - Added
GeckoSession.getDefaultUserAgentto expose the build-time default user agent synchronously. - Changed
WebResponse.bodyfrom aByteBufferto 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
GeckoVRManagerinto the org.mozilla.geckoview package. - Initial WebExtension support.
GeckoRuntime#registerWebExtensionallows embedders to register a local web extension. - Added API to
GeckoViewto take screenshot of the visible page. CallingcapturePixelsreturns aGeckoResultthat completes to aBitmapof the currentSurfacecontents, or anIllegalStateExceptionif theGeckoSessionis not ready to render content. - Added API to capture a screenshot to
GeckoDisplay.capturePixelsreturns aGeckoResultthat completes to aBitmapof the currentSurfacecontents, or anIllegalStateExceptionif theGeckoSessionis not ready to render content. - Add missing
@Nullableannotation to return value forGeckoSession.PromptDelegate.ChoiceCallback.onPopupResult() - Added
defaultimplementations for all non-functionalinterfaces. - 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
trackingModefromSecurityInformation. UseTrackingProtectionDelegate.onTrackerBlockedfor notification of blocked elements during page load. - Added
@NonNullor@Nullableto all APIs. - Added methods for each setting in
GeckoSessionSettings - Added
GeckoSessionSettingsfor enabling desktop viewport. Desktop viewport is no longer set byUSER_AGENT_MODE_DESKTOPand must be set separately. - Added
@UiThreadtoGeckoSession.releaseSessionandGeckoSession.setSession
v65
- Added experimental ad-blocking category to
GeckoSession.TrackingProtectionDelegate. - Moved
CompositorController,DynamicToolbarAnimator,OverscrollEdgeEffect,PanZoomControllerfromorg.mozilla.gecko.gfxtoorg.mozilla.geckoview - Added
@UiThread,@AnyThreadannotations to all APIs - Changed
GeckoRuntimeSettings#getLocaletogetLocalesand related APIs. - Merged
org.mozilla.gecko.gfx.LayerSessionintoGeckoSession - Added
GeckoSession.MediaDelegateandMediaElement. This allow monitoring and control of web media elements (play, pause, seek, etc). - Removed unused
accessparameter 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#onFirstCompositeto get first composite callback after a compositor start. - Changed
LoadRequest.isUserTriggeredtoisRedirect. - Added
GeckoSession.LOAD_FLAGS_BYPASS_CLASSIFIERto bypass the URI classifier. - Added a
protectedempty constructor to all field-only classes so that apps can mock these classes in tests. - Added
ContentDelegate.ContextElementto extend the information passed toContentDelegate#onContextMenu. Extended information includes the element’s title and alt attributes. - Changed
ContentDelegate.ContextElementTYPE_constants to public access. - Changed
ContentDelegate.ContextElement,GeckoSession.FinderResultto non-final class. - Update
CrashReporter#sendCrashReportto return the crash ID as aGeckoResult<String>.