Firefox 129 release notes for developers
This article provides information about the changes in Firefox 129 that affect developers. Firefox 129 was released on August 6, 2024.
Changes for web developers
>CSS
- The @starting-style CSS at-rule is supported. This lets you define starting values for properties set on an element that you want to transition from when the element receives its first style update. Currently animating from
display: none;is not supported (Firefox bug 1834876 and Firefox bug 1834877). - The
transition-behaviorCSS property is supported. This lets you specify if discrete properties, such asdisplayandoverlay, can be transitioned by setting the value toallow-discrete. (Firefox bug 1901645). -webkit-font-feature-settingshas been implemented as an alias of the standardfont-feature-settingsproperty (Firefox bug 1595620).
JavaScript
Float16Arraytyped arrays are now supported, along withDataView.prototype.getFloat16()andDataView.prototype.setFloat16()for reading and settingFloat16Arrayvalues from aDataView, and theMath.f16round()static method, which can be used to round numbers to 16 bits. The new type is useful for sharing data with a GPU, in particular for use cases where it makes sense to trade off precision for memory consumption. (Firefox bug 1903329.)- Regular expressions can now use the same name for named capturing groups in different disjunction alternatives. This is allowed because only one alternative in a disjunction will match, so a name declared in several alternatives can only reference one captured group. The names must still be unique within a particular alternative, and across the rest of the pattern. (Firefox bug 1903288.)
HTTP
- HTTPS DNS records can now be resolved using the operating system's DNS resolver on Windows 11, Linux, and Android 10+. This ensures that DNS over HTTPS (DoH) will be used if a user has enabled it on the device, even if it is not enabled in the browser. This feature allows the use of HTTP/3 without needing to use the
Alt-Svcheader and enables automatic upgrade of HTTP requests to HTTPS when the HTTPS DNS record is present. Most importantly, it now allows the use of Encrypted Client Hello (ECH) privacy feature even when DoH is only enabled on the device, not in the browser. (Firefox bug 1906239).
APIs
- The deprecated
textInputevent is now supported, enabling web apps that use legacy libraries or frameworks that rely on these events. Thebeforeinputevent supersedestextInput, and should always be used by new applications. (Firefox bug 1901923.) - The default
.toJSON()methodsGeolocationCoordinates.toJSON()andGeolocationPosition.toJSON()are now supported, enabling serialization ofGeolocationCoordinatesandGeolocationPositionobjects withJSON.stringify()(Firefox bug 1890706). CSSPageDescriptorsis now supported, and is used as the type forCSSPageRule.styleinstead ofCSSStyleDeclaration— matching the current specification. This ensures thatCSSPageDescriptorsonly exposes the@pagerelated properties, rather than all properties, and also resolves an issue where setting the pagesizein a CSS@pageat-rule was not reflected inCSSPageRule.style. (Firefox bug 1890842, Firefox bug 1867106.)MediaCapabilities.decodingInfo()can now get decoding information for a particular encrypted media configuration as well unencrypted media, allowing applications to tell ahead of time if the configuration is supported, and whether it will play the content smoothly and be power efficient. Changes include a new propertykeySystemConfigurationon the method'sconfigurationargument that defines the properties of the key system used to encrypt the media, and a newkeySystemAccessproperty on the returned object, which is aMediaKeySystemAccessobject that can be used to create keys and decode the content for playback. (Firefox bug 1898344).- Firefox now fires events for a synchronous
XMLHttpRequestbefore firing the events for any ongoing asynchronousXMLHttpRequest. This fixes a long-standing behavioral difference with other browsers. Note that while this should fix some sites, it may also cause degraded performance on sites that expect the old "non-blocking" behavior for a synchronousXMLHttpRequest. Please file a bug if your website should have been fixed by this change but still appears to have related issues. (Firefox bug 697151.) - The Ed25519 digital signature algorithm is supported by the Web Crypto API, and can be used in the
SubtleCryptomethods:sign(),verify(),generateKey(),importKey()andexportKey()(Firefox bug 1804788). - The
contentTypeandresponseStatusproperties of thePerformanceResourceTiminginterface are now supported, indicating the content type of the fetched resource and the HTTP response status code returned when fetching the resource, respectively. (Firefox bug 1800443, Firefox bug 1796785.) - The
RTCDTMFSender.canInsertDTMFproperty is now supported. It enables you to check whether a WebRTC sender can insert DTMF tones into the outgoing connection. If supported, you can insert DTMF tones by usingRTCDTMFSender.insertDTMF(). (Firefox bug 1623193).
Removals
- The
Navigator.vibrate()method has been removed (Firefox bug 1653318, Firefox bug 1900037).
WebDriver conformance (WebDriver BiDi, Marionette)
Removals
- By default CDP (Chrome DevTools Protocol) is now disabled. It can be re-enabled via the
remote.active-protocolspreference. You can learn more about this on the following blog post. (Firefox bug 1882089)
WebDriver BiDi
- Added support for the
network.setCacheBehaviorcommand, which allows to configure the browser to bypass the network cache either globally or for a set of top level browsing contexts. (Firefox bug 1901032 and Firefox bug 1906100) - Added support for prompts of type
beforeUnloadwhich can now be handled in the same way as other user prompts. (Firefox bug 1824220) - We now support all arguments for the
network.provideResponsecommand when used in thebeforeRequestSentphase, such as thebodyparameter which allows to return mock responses. (Firefox bug 1853882) - The
browsingContext.userPromptOpenednow includes thehandlerfield which contains the user prompt handler configured for the prompt which triggered the event. (Firefox bug 1904822) - The
BrowsingContextInfotype will now provide anoriginalOpenerfield which is the context id of the "opener" browsing context. This will be set for instance if the new context was created by using a link (even withrel=noopener),window.openetc. If the new browsing context has no relevant opener, the field will be set to null. (Firefox bug 1898004) - Network events (
beforeRequestSent,responseStartedandresponseCompleted) are now created for requests to data URLs. In Firefox 129, only navigation requests will be listed. (Firefox bug 1805176) - We added support for the
promptUnloadargument forbrowsingContext.close, which allows to bypass "beforeunload" prompts when closing a context via this command. (Firefox bug 1862380) - Fixed a bug in
network.continueRequestwhere you could not set multiple values for the same header. (Firefox bug 1904379) - Fixed a bug for the
unhandledPromptBehaviorcapability, which could not be used with BiDi only sessions. (Firefox bug 1907935) - Fixed a bug with
session.endandbrowser.closewhich would unexpectedly fail when no Marionette client was connected. (Firefox bug 1890091) - Fixed a bug with
browsingContext.navigatewhich would fail to resolve if a same-document navigation started on "beforeunload". (Firefox bug 1879163) - Improved the
browser.closecommand to discard all "beforeunload" prompts when closing the top-level browsing contexts. (Firefox bug 1873196) - Fixed a bug in the
browsingContext.userPromptOpenedevent, which would unexpectedly miss thedefaultValuefield (Firefox bug 1859814) - Fixed an issue with the
network.responseCompletedevent during authentication flows, which was emitted too many times compared to the specifications. Only oneresponseCompleted(orfetchError) event is expected for the whole HTTP authentication flow. (Firefox bug 1906106) - Improved the
browser.removeUserContextcommand to skip all "beforeunload" prompts. (Firefox bug 1876062)