Firefox 131 for developers
This article provides information about the changes in Firefox 131 that affect developers. Firefox 131 was released on October 1, 2024.
Changes for web developers
CSS
- The
inset-area
CSS property has been renamed toposition-area
in preparation for further implementation of Anchor Positioning. Currently, this property is only used internally for parsing values. The Anchor Positioning features are being progressively rolled out behind a preference. See Experimental features in Firefox: CSS Anchor Positioning for more information. (Firefox bug 1909358 and Firefox bug 1838746).
JavaScript
- Support for synchronous iterator helpers has been added, including:
Iterator.prototype.drop()
,Iterator.prototype.every()
,Iterator.prototype.filter()
,Iterator.prototype.find()
,Iterator.prototype.flatMap()
,Iterator.prototype.forEach()
,Iterator.prototype.map()
,Iterator.prototype.reduce()
,Iterator.prototype.some()
, andIterator.prototype.take()
. These helpers allowArray
-like operations on iterators without having to create intermediateArray
objects. They can also be used with very large data sets where creating an intermediateArray
would not even be possible. For more information, see Iterator helpers in theIterator
interface. (Firefox bug 1896390).
HTTP
- A
Set-Cookie
HTTP header with the attribute value ofSameSite=None
must now also include theSecure
attribute. This ensures that cookies set withSameSite=None
are only ever sent over HTTPS channels. In addition, since Firefox interprets an unspecifiedSameSite
value asSameSite=None
, cookies that don't specifySameSite
will have the same restriction. (Firefox bug 1909673). -
Cookies Having Independent Partitioned State (CHIPS), or "partitioned cookies", are now supported.
This feature allows developers to opt a cookie into partitioned storage using the
partitioned
directive of theSet-Cookie
HTTP header. When set, cookies have separate storage for each top-level site and can only be read within the same top-level site they were set on and its subdomains. This blocks cross-site tracking while still enabling legitimate uses of third-party cookies, such as persisting state of embedded maps or chat widgets across different subdomains of a site. (Firefox bug 1908160).
APIs
- The
altitudeAngle
andazimuthAngle
properties of thePointerEvent
interface are now supported. These provide the angle between the pointer/stylus and the screen (X-Y plane), and the rotation of the stylus over the screen relative to its x-axis, respectively. (Firefox bug 1656377). -
Text fragments are now supported, allowing users to link to and highlight specific portions of text in a web page. This feature uses a particular syntax in the URL fragment that identifies the target based on patterns in the rendered text.
Developers can now also use the existence of the
Document.fragmentDirective
property (an instance of theFragmentDirective
interface) to feature-check for text fragment support. Additionally, the::target-text
pseudo-element can be used to select and style text that has been selected using a text fragment link. (Firefox bug 1914877) - The
caretPositionFromPoint()
method of theDocument
interface has been updated to return the text node and offset for a caret position within a shadow DOM, provided the shadow root corresponding to the point has been supplied to the method.ShadowRoot
objects can be passed to the method using theshadowRoots
property of the newly addedoptions
argument. (Firefox bug 1914596).
WebAssembly
- The new exception reference with the value of
exnref
can now be used to help with exception handling between WebAssembly and JavaScript in both directions. (Firefox bug 1908375).
WebDriver conformance (WebDriver BiDi, Marionette)
General
- For both WebDriver Classic and BiDi, the
keyUp
andkeyDown
actions will no longer accept multiple characters for thevalue
. (Firefox bug 1910352).
WebDriver BiDi
- Added support for remaining arguments of the
network.continueResponse
command:- The cookies and headers arguments. (Firefox bug 1853887).
- The
statusCode
(e.g., 200, 304) andreasonPhrase
(e.g., "OK", "Not modified") arguments. (Firefox bug 1913737).
- The
browsingContext.navigate
command will now return if thewait
argument isnone
and abeforeunload
prompt is triggered. (Firefox bug 1763134). - The
browsingContext.navigate
command will return anunknown error
in all cases where a navigation failure occurs, as required by the specification. (Firefox bug 1905083). - The
session.new
command will no longer include theunhandledPromptBehavior
capability in its response if it was not specified by the client as an argument. (Firefox bug 1909455).
Changes for add-on developers
- The 10 MB quota for data stored by the
storage.session
API is now enforced in Firefox Nightly 131. Previously, Firefox didn't implement this quota. This enforcement rolls out to release versions of Firefox from version 134 (Firefox bug 1915688). This enables extensions that rely on the previous behavior to correct any issues. (Firefox bug 1908925) storage.session
now supports thestorage.StorageArea.getBytesInUse()
API and thestorage.session.QUOTA_BYTES
property. (Firefox bug 1908925)tabs.onUpdated
is now triggered whenopenerTabId
is changed throughtabs.update()
(Firefox bug 1409262).tabs.update
now acceptsopenerTabId
set to-1
to clearopenerTabId
(Firefox bug 1409262).
Experimental web features
These features are newly shipped in Firefox 131 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.
-
Regular expression (?ims-ims:...) modifiers:
javascript.options.experimental.regexp_modifiers
. The (?ims-ims:...) regular expression modifiers allow you to make changes that take effect only in a specific part of a regex pattern. (Firefox bug 1899813). -
Permissions for microphone and camera:
permissions.media.query.enabled
. Themicrophone
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).
Older versions
- 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
- Firefox 100 for developers