Firefox 124 release notes for developers
This article provides information about the changes in Firefox 124 that affect developers. Firefox 124 was released on March 19, 2024.
Changes for web developers
>HTML
No notable changes.
CSS
- The
text-wrapproperty has now been converted to a shorthand property and covers the constituent propertiestext-wrap-modeandtext-wrap-style. (Firefox bug 1758391).
JavaScript
No notable changes.
SVG
- The
::first-letterand::first-lineCSS pseudo-elements can now be applied to the<text>SVG element. This allows you to change the fill, stroke or font of the first letter/line of a<text>element using CSS, for example. (Firefox bug 1302722).
APIs
AbortSignal.any()is now supported, allowing a composite signal to be created that can be used to abort an operation from multiple signal sources. (Firefox bug 1830781).- The
WebSocket()constructor now allows HTTPS, HTTP, and relative URLs. They are often more ergonomic than using WS and WSS URLs (Firefox bug 1797449).
WebDriver conformance (WebDriver BiDi, Marionette)
WebDriver BiDi
- Implemented the storage.getCookies command, which allows users to retrieve cookies. This command accepts two optional arguments. Clients can provide the
filterargument to only return cookies matching specific criteria. And thepartitionargument can be used to build the partition key and retrieve cookies owned by the corresponding partition. (Firefox bug 1854580) - Implemented the storage.setCookie command, which creates a new cookie. Users can provide information about the cookie in the
cookieparameter, and optionally apartitionparameter to build the partition key of the partition which should own the cookie. (Firefox bug 1854582) - Implemented various commands to intercept requests:
- network.addIntercept which allows users to define URL patterns which will be used to intercept network requests during various phases of a network event lifecycle. This command returns the unique id generated for the created network intercept. (Firefox bug 1826192)
- network.removeIntercept allows to remove intercepts based on their unique id. (Firefox bug 1826193)
- network.continueWithAuth allows to resume requests intercepted in the
AuthRequiredphase. Using the "action" argument, clients can either "cancel", "provideCredentials" with username and password, or fallback to "default" to let the browser display the authentication prompt.(Firefox bug 1826196) - network.failRequest allows to cancel requests intercepted in the
BeforeRequestSentor theResponseStartedphases.(Firefox bug 1853883) - network.continueRequest, network.continueResponse and network.provideResponse are also available, but at the moment they only support the "request" argument and will only allow to resume a blocked request. In future releases, additional arguments will allow to modify the request and response. (Firefox bug 1874206 and Firefox bug 1853882)
- Implemented several commands around "user contexts", implemented as containers in Firefox:
- browser.createUserContext creates a new user context and returns the unique id of the new user context. (Firefox bug 1870848)
- browser.removeUserContext can be used to remove any non-default user context, by specifying its unique id. (Firefox bug 1870849)
- browser.getUserContexts allows clients to retrieve the list of all available user contexts, including the default user context. (Firefox bug 1870847)
- Added support for the "userContext" argument to the browsingContext.create command, which allows to assign a new browsing context (tab or window) to a specific user context (Firefox container). (Firefox bug 1874918)
- Updated the browsingContext.Info type to include the "userContext" field, which is the unique id of the user context owning the tab for this browsing context. (Firefox bug 1874920)
- Added support for the "contexts" argument to the script.addPreloadScript command, this allows clients to add preload scripts only to specific browsing context trees (tabs) by specifying their top-level browsing context. (Firefox bug 1858458)
- Fixed a bug where browsingContext.close would not be able to close the last tab of a window. (Firefox bug 1873948)
Marionette
- Fixed an issue with Get Element Text, which ignored the slot value of a web component when no custom text is specified. (Firefox bug 1865381)
Changes for add-on developers
- Adds the
runtime.onPerformanceWarningevent that enables extensions to obtain information when the browser detects that the extension has a runtime performance issue such as a slow-running content script (Firefox bug 1861445).
Experimental web features
These features are newly shipped in Firefox 124 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.
-
Growable
SharedArrayBuffer:javascript.options.experimental.sharedarraybuffer_growable.The
SharedArrayBufferis now growable using theSharedArrayBuffer.prototype.grow()method. The maximum allowed size of the buffer is specified using theoptions.maxByteLengthparameter to theSharedArrayBuffer()constructor. TheSharedArrayBuffer.prototype.growableandSharedArrayBuffer.prototype.maxByteLengthproperties indicate whether the buffer can be grow, and its maximum allowed size, respectively. (Firefox bug 1842773.) -
Resizable
ArrayBuffer:javascript.options.experimental.arraybuffer_resizable.The
ArrayBuffercan now be resized using theArrayBuffer.prototype.resize()method. The maximum allowed size of the buffer is specified using theoptions.maxByteLengthparameter to theArrayBuffer()constructor. TheArrayBuffer.prototype.resizableandArrayBuffer.prototype.maxByteLengthproperties indicate whether the buffer can be resized, and its maximum allowed size, respectively. (Firefox bug 1842773.)