Firefox 124 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-wrap
property has now been converted to a shorthand property and covers the constituent propertiestext-wrap-mode
andtext-wrap-style
. (Firefox bug 1758391).
JavaScript
No notable changes.
SVG
- The
::first-letter
and::first-line
CSS 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
filter
argument to only return cookies matching specific criteria. And thepartition
argument 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
cookie
parameter, and optionally apartition
parameter 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
AuthRequired
phase. 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
BeforeRequestSent
or theResponseStarted
phases.(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.onPerformanceWarning
event 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
. TheSharedArrayBuffer
is now growable using theSharedArrayBuffer.prototype.grow()
method. The maximum allowed size of the buffer is specified using theoptions.maxByteLength
parameter to theSharedArrayBuffer()
constructor. TheSharedArrayBuffer.prototype.growable
andSharedArrayBuffer.prototype.maxByteLength
properties indicate whether the buffer can be grow, and its maximum allowed size, respectively. (Firefox bug 1842773.) -
Resizable
ArrayBuffer
:javascript.options.experimental.arraybuffer_resizable
. TheArrayBuffer
can now be resized using theArrayBuffer.prototype.resize()
method. The maximum allowed size of the buffer is specified using theoptions.maxByteLength
parameter to theArrayBuffer()
constructor. TheArrayBuffer.prototype.resizable
andArrayBuffer.prototype.maxByteLength
properties indicate whether the buffer can be resized, and its maximum allowed size, respectively. (Firefox bug 1842773.)
Older versions
- 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
- Firefox 100 for developers
- Firefox 99 for developers
- Firefox 98 for developers
- Firefox 97 for developers
- Firefox 96 for developers
- Firefox 95 for developers
- Firefox 94 for developers
- Firefox 93 for developers