Firefox 131 release notes 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-areaCSS property has been renamed toposition-areain 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 helper methods 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 intermediateArrayobjects. They can also be used with very large data sets where creating an intermediateArraywould not even be possible. For more information, see Iterator helper methods in theIteratorinterface. (Firefox bug 1896390).
HTTP
- A
Set-CookieHTTP header with the attribute value ofSameSite=Nonemust now also include theSecureattribute. This ensures that cookies set withSameSite=Noneare only ever sent over HTTPS channels. In addition, since Firefox interprets an unspecifiedSameSitevalue asSameSite=None, cookies that don't specifySameSitewill 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
partitioneddirective of theSet-CookieHTTP 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
altitudeAngleandazimuthAngleproperties of thePointerEventinterface 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.fragmentDirectiveproperty (an instance of theFragmentDirectiveinterface) to feature-check for text fragment support. Additionally, the::target-textpseudo-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 theDocumentinterface 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.ShadowRootobjects can be passed to the method using theshadowRootsproperty of the newly addedoptionsargument. (Firefox bug 1914596).
WebAssembly
- The new exception reference with the value of
exnrefcan 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
keyUpandkeyDownactions will no longer accept multiple characters for thevalue. (Firefox bug 1910352).
WebDriver BiDi
- Added support for remaining arguments of the
network.continueResponsecommand:- 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.navigatecommand will now return if thewaitargument isnoneand abeforeunloadprompt is triggered. (Firefox bug 1763134). - The
browsingContext.navigatecommand will return anunknown errorin all cases where a navigation failure occurs, as required by the specification. (Firefox bug 1905083). - The
session.newcommand will no longer include theunhandledPromptBehaviorcapability 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.sessionAPI 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 137 (Firefox bug 1915688). This enables extensions that rely on the previous behavior to correct any issues. (Firefox bug 1908925) storage.sessionnow supports thestorage.StorageArea.getBytesInUse()API and thestorage.session.QUOTA_BYTESproperty. (Firefox bug 1908925)tabs.onUpdatedis now triggered whenopenerTabIdis changed throughtabs.update()(Firefox bug 1409262).tabs.updatenow acceptsopenerTabIdset to-1to 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.The
microphoneandcamerapermissions 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).