Firefox 154 release notes for developers (Stable)

This article provides information about the changes in Firefox 154 that affect developers. Firefox 154 was released on August 18, 2026.

Changes for web developers

Developer Tools

  • The JSON Viewer now displays a breadcrumb at the bottom of the panel indicating the location of the selected entry within the JSON structure. (Firefox bug 1850288).

HTML

No notable changes.

CSS

  • The sibling-count() and sibling-index() functions are now supported. The sibling-count() function returns the number of sibling elements as well as the element itself. The sibling-index() function returns the index number of the element in relation to its siblings. The index starts at 1, not 0. (Firefox bug 2045706).
  • The text-box-edge and text-box-trim properties and the text-box shorthand are now supported. These properties make it easier to control text spacing in the block direction, especially when a block contains multiple fonts. The text-box-edge property allows you to specify the amount of space to trim from the text element's block container. The text-box-trim property allows you to specify which edges to trim: the over edge, the under edge, both, or neither. The text-box shorthand combines these two properties. (Firefox bug 2050141).

JavaScript

  • The Iterator.prototype.includes() method is now supported, allowing developers to check whether an iterator contains a given value. (Firefox bug 2034104).
  • The Iterator.prototype.join() method is now supported, returning a string that is the concatenation of all elements produced by the iterator, separated by commas or a specified separator string. This is similar to Array.prototype.join(). (Firefox bug 2047995).
  • The Iterator.prototype.chunks() and Iterator.prototype.windows() methods are now supported. These both return an Iterator helper object that can be iterated to yield a number of elements from the original iterator as an array. The difference between the methods is that the chunks() helper splits the elements from the original iterator into consecutive array chunks, while the windows() helper returns an array that is a sliding window over the original iterator (each iteration yields an array that slides forward one element: dropping the first element in the previous iteration and fetching a new element from the original iterator). (Firefox bug 2047997).

APIs

Media, WebRTC, and Web Audio

WebDriver conformance (WebDriver BiDi, Marionette)

General

  • Improved the handling of deltaX and deltaY properties for asynchronous widget wheel scroll events by taking the layout viewport into account. (Firefox bug 1971979).
  • Fixed a bug where a navigation would resolve prematurely for subframes when calling history.replaceState or when navigating to an error page (e.g., blocked by X-Frame-Options). (Firefox bug 2051908).

WebDriver BiDi

  • Added a download id to browsingContext.downloadWillBegin and browsingContext.downloadEnd events to make it easier to identify which events belong to the same download. (Firefox bug 2040936).
  • Added support for an ignore state for the unhandledPromptBehavior property for file pickers when creating a new session with the session.new command. With this state, file pickers will not be handled automatically by the protocol. (Firefox bug 1999693).
  • Added a userContext field (a.k.a. Firefox container) to the payload of several WebDriver BiDi events and commands, which makes it easier to filter out incoming data for clients subscribing to events by user context id. (Firefox bug 2018611).
  • Implemented the browsingContext.startScreencast and browsingContext.stopScreencast commands, which will record a browsing context and save the result as a video file. (Firefox bug 2042671).
  • Updated the emulation.setLocaleOverride command to allow overriding the Accept-Language header for fetch and WebSocket requests in workers. (Firefox bug 2052932).
  • Fixed a bug where the script.realmDestroyed event was missing for a worker after cross-process navigation. (Firefox bug 2018154).

Changes for add-on developers

  • Adds support for the sandbox manifest key, enabling extensions to designate pages that load with an opaque origin, without direct access to extension APIs. A sandboxed page can use eval() and similar constructs that are otherwise blocked by the extension's content security policy. (Firefox bug 1685123)

Experimental web features

These features are shipping in Firefox 154 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.

  • Truncating content with line-clamp: layout.css.line-clamp.enabled

    The line-clamp CSS property now works without the -webkit- vendor prefix, though at this stage it does not support the no-ellipsis and <string> values. (Firefox bug 2042986).

  • Percentage values for text-decoration-inset: layout.css.text-decoration-inset-percentage.enabled

    The text-decoration-inset CSS property now supports percentages as values. The percentage value specifies the size of the inset as a percentage of the font-size. (Firefox bug 2044602).

  • Calculating a value based upon progress(): layout.css.progress-function.enabled

    The progress() CSS function is now supported. This allows the user calculate a <number> based upon a value (or progress) in between a minimum and maximum value. (Firefox bug 2047015).

  • CSS Typed Object Model Level 1 (Nightly): layout.css.typed-om.enabled

    The CSS Typed Object Model API (as defined in the CSS Typed Object Model Level 1 specification) is now implemented. This simplifies CSS property manipulation by exposing CSS values as typed JavaScript objects rather than strings. (Firefox bug 2051047).