Back to Content

Firefox 131 release notes for developers

files/en-us/mozilla/firefox/releases/131/index.md

latest8.1 KB
Original Source

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 to {{CSSXRef("position-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. (Firefox bug 1909358 and Firefox bug 1838746).

JavaScript

  • Support for synchronous iterator helper methods has been added, including: {{jsxref("Iterator.prototype.drop()")}}, {{jsxref("Iterator.prototype.every()")}}, {{jsxref("Iterator.prototype.filter()")}}, {{jsxref("Iterator.prototype.find()")}}, {{jsxref("Iterator.prototype.flatMap()")}}, {{jsxref("Iterator.prototype.forEach()")}}, {{jsxref("Iterator.prototype.map()")}}, {{jsxref("Iterator.prototype.reduce()")}}, {{jsxref("Iterator.prototype.some()")}}, and {{jsxref("Iterator.prototype.take()")}}. These helpers allow Array-like operations on iterators without having to create intermediate Array objects. They can also be used with very large data sets where creating an intermediate Array would not even be possible. For more information, see Iterator helper methods in the Iterator interface. (Firefox bug 1896390).

HTTP

  • A {{httpheader("Set-Cookie")}} HTTP header with the attribute value of SameSite=None must now also include the Secure attribute. This ensures that cookies set with SameSite=None are only ever sent over HTTPS channels. In addition, since Firefox interprets an unspecified SameSite value as SameSite=None, cookies that don't specify SameSite 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 the {{HTTPHeader("Set-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 {{domxref('PointerEvent.altitudeAngle','altitudeAngle')}} and {{domxref('PointerEvent.azimuthAngle','azimuthAngle')}} properties of the {{domxref('PointerEvent')}} 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 {{domxref("Document.fragmentDirective")}} property (an instance of the {{domxref("FragmentDirective")}} interface) to feature-check for text fragment support. Additionally, the {{CSSxRef("::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 {{domxref('Document/caretPositionFromPoint','caretPositionFromPoint()')}} method of the {{domxref("Document")}} 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. {{domxref("ShadowRoot")}} objects can be passed to the method using the shadowRoots property of the newly added options argument. (Firefox bug 1914596).

WebAssembly

WebDriver conformance (WebDriver BiDi, Marionette)

General

  • For both WebDriver Classic and BiDi, the keyUp and keyDown actions will no longer accept multiple characters for the value. (Firefox bug 1910352).

WebDriver BiDi

  • Added support for remaining arguments of the network.continueResponse command:
  • The browsingContext.navigate command will now return if the wait argument is none and a beforeunload prompt is triggered. (Firefox bug 1763134).
  • The browsingContext.navigate command will return an unknown 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 the unhandledPromptBehavior 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 {{WebExtAPIRef("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 137 (Firefox bug 1915688). This enables extensions that rely on the previous behavior to correct any issues. (Firefox bug 1908925)
  • {{WebExtAPIRef("storage.session")}} now supports the {{WebExtAPIRef("storage.StorageArea.getBytesInUse()")}} API and the {{WebExtAPIRef("storage.session.QUOTA_BYTES")}} property. (Firefox bug 1908925)
  • {{WebExtAPIRef("tabs.onUpdated")}} is now triggered when openerTabId is changed through tabs.update() (Firefox bug 1409262).
  • {{WebExtAPIRef("tabs.update")}} now accepts openerTabId set to -1 to clear openerTabId (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 microphone and camera permissions can now be used in the {{domxref("Permissions.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).