Firefox 132 for developers
This article provides information about the changes in Firefox 132 that affect developers. Firefox 132 was released on October 29, 2024.
Changes for web developers
HTML
No notable changes
CSS
- The
text-emphasis-position
property now supports theauto
value to bring it inline withtext-underline-position
(Firefox bug 1919658). - CSS now supports the Nested declaration rule, which means that nested CSS is now parsed in the correct order (Firefox bug 1918408).
Removals
- The
-moz-user-modify
CSS property has been removed. This property has been deprecated in favour of thecontenteditable
global attribute. (Firefox bug 1920118).
JavaScript
- The
(?ims-ims:...)
regular expression modifiers allow you to make changes to only take effect in a specific part of a regex pattern. (Firefox bug 1913752 & Firefox bug 1899813).
HTTP
Removals
-
HTTP/2 Server Push is deactivated by default with the preference
network.http.http2.allow-push
now set tofalse
. This feature is no longer supported by any other major browser, and the implementation may be completely removed in a future release. (Firefox bug 1915848).
Privacy
- All third-party cookies are now blocked in Strict Enhanced Tracking Protection. (Firefox bug 1918037).
APIs
- The
drawingBufferColorSpace
andunpackColorSpace
properties of theWebGLRenderingContext
andWebGL2RenderingContext
interfaces are now supported. These specify the color space of the WebGL drawing buffer, and the color space to convert to when importing textures, respectively. (Firefox bug 1885491, Firefox bug 1885446). - The
Notification.silent
property is now supported, which controls whether system notifications should be silent. Whensilent: true
is specified in theNotification()
constructor, the resulting system notification is issued without accompanying sounds or vibrations, regardless of device settings (Firefox bug 1809028). - The
fetchpriority
attribute of the<link>
,<script>
, and<img>
elements, thefetchPriority
property of theHTMLLinkElement
,HTMLScriptElement
, andHTMLImageElement
interfaces, theoptions.priority
parameter passed to theRequest()
constructor, and thefetchpriority
directive in the HTTPLink
header, are now supported. These allow developers to provide a hint about the relative priority for fetching a particular resource compared to other resources of the same type, and can be used alongside other ways of setting the priority, such as preloading. (Firefox bug 1854077). - The
CSSNestedDeclarations
interface and associatedCSSNestedDeclarations.style
property are now supported (Firefox bug 1918408). - The
microphone
andcamera
permissions can now be used in thePermissions.query()
method to test whether access to the corresponding hardware has been granted, denied, or still requires user approval. (Firefox bug 1609427 and Firefox bug 1915222).
Media, WebRTC, and Web Audio
- The
requestVideoFrameCallback()
andcancelVideoFrameCallback()
methods of theHTMLVideoElement
interface are now supported. TherequestVideoFrameCallback()
registers a callback function that runs when a new video frame is sent to the compositor. Developers can use this function to perform operations on each video frame, enabling more efficient painting to a canvas, video analysis, synchronization with external audio sources, and so on. The method returns a callback handle that can be passed tocancelVideoFrameCallback()
in order to cancel the outstanding callback request. (Firefox bug 1919367, Firefox bug 1800882). - The
MediaStreamTrack.getCapabilities()
method is now supported. This returns an object detailing the accepted values or value range for each constrainable property of the associatedMediaStreamTrack
(Firefox bug 1179084).
WebDriver conformance (WebDriver BiDi, Marionette)
WebDriver BiDi
- Implemented several improvements to make WebDriver BiDi commands more reliable when used during navigation or with newly created tabs. Previously commands such as
browsingContext.setViewport
were likely to fail due to anAbortError
, they will now be retried a few times to avoid such issues. (Firefox bug 1854942, Firefox bug 1918287, Firefox bug 1918672, Firefox bug 1921756) - The
browsingContext.contextCreated
event is now correctly emitted for lazy-loaded frames. Previously the event would only be emitted when the iframe actually started loading its content. (Firefox bug 1878166) - Network events are now correctly emitted for cached stylesheet requests. (Firefox bug 1879438)
- Network event timings were previously using the wrong unit and were provided in microseconds. They are now correctly set in milliseconds. (Firefox bug 1916685)
- The
requestTime
from network event timings should now be more accurate and really match the time where the request actually started. (Firefox bug 1922390)
Experimental web features
These features are newly shipped in Firefox 132 but are disabled by default. To experiment with them, search for the appropriate preference on the about:config
page and set it to true
. You can find more such features on the Experimental features page.
-
Cookie Store API:
dom.cookieStore.enabled
.The Cookie Store API is a modern,
Promise
-based method of managing cookies that does not block the event loop and does not rely onDocument
(it can therefore be made available to service workers). As of Firefox 132, a subset of the Cookie Store API has been implemented. (Firefox bug 1800882). This includes:- The
CookieStore
interface, butpartitioned
is not included in return values. - The
CookieChangeEvent
interface, excludingpartitioned
properties. - The
Window.cookieStore
property. - The
ServiceWorkerGlobalScope.cookieStore
property.
- The
-
The
fetch()
keepalive
option:dom.fetchKeepalive.enabled
.The global
fetch()
method has akeepalive
initialization option. Whenkeepalive
is set totrue
, the browser will not abort the associated request if the page that initiated it is unloaded before the request is complete.This enables a fetch request to function as an alternative to
Navigator.sendBeacon()
when sending analytics at the end of a session, which has some advantages (you can use HTTP methods other thanPOST
, customize request properties, and access the server response via the fetchPromise
fulfillment). It is also available in service workers. (Firefox bug 1906952). -
CloseWatcher
:dom.closewatcher.enabled
. TheCloseWatcher
interface enables developers to implement components that can be closed using device-native mechanisms, in the same way as built-in components. For example, on Android you can close a dialog using the back button: this interface allows you to similarly close a custom sidebar. (Firefox bug 1888729). -
Promise.try()
:javascript.options.experimental.promise_try
.Promise.try()
is a convenience method that takes a callback of any kind (returns or throws, synchronously or asynchronously) and wraps its result in aPromise
so that promise semantics (e.g..then()
,.catch()
) can be used to handle it (Firefox bug 1905364). -
JSON.parse
with source:javascript.options.experimental.json_parse_with_source
. TheJSON.parse
source text access proposal extendsJSON.parse
behavior to provide features to mitigate issues around loss of precision when converting values such as large floats and date values between JavaScript values and JSON text (Firefox bug 1913085, Firefox bug 1925334). Specifically, the following features are now available:- The
JSON.parse()
reviver
parametercontext
argument: Provides access to the original JSON source text that was parsed. JSON.isRawJSON()
: Tests whether a value is an object returned byJSON.rawJSON()
.JSON.rawJSON()
: Creates a "raw JSON" object containing a piece of JSON text, which can then be included in an object to preserve the specified value when that object is stringified.
- The
Older versions
- Firefox 131 for developers
- Firefox 130 for developers
- Firefox 129 for developers
- Firefox 128 for developers
- Firefox 127 for developers
- Firefox 126 for developers
- Firefox 125 for developers
- Firefox 124 for developers
- Firefox 123 for developers
- Firefox 122 for developers
- Firefox 121 for developers
- Firefox 120 for developers
- Firefox 119 for developers
- Firefox 118 for developers
- Firefox 117 for developers
- Firefox 116 for developers
- Firefox 115 for developers
- Firefox 114 for developers
- Firefox 113 for developers
- Firefox 112 for developers
- Firefox 111 for developers
- Firefox 110 for developers
- Firefox 109 for developers
- Firefox 108 for developers
- Firefox 107 for developers
- Firefox 106 for developers
- Firefox 105 for developers
- Firefox 104 for developers
- Firefox 103 for developers
- Firefox 102 for developers
- Firefox 101 for developers