Firefox 153 release notes for developers (Stable)

This article provides information about the changes in Firefox 153 that affect developers. Firefox 153 was released on July 21, 2026.

Changes for web developers

Developer Tools

HTML

  • HTML parsing rules for <select> elements have been updated to allow all nested elements to be parsed into DOM rather than just <option>, <optgroup>, and <hr>. This enables possible future support of customizable select elements. (Firefox bug 2019977).
  • The muted attribute has now been updated for the <audio> and <video> elements to reflect when it is added to or removed from the DOM. This attribute now also matches the state of the :muted CSS pseudo-class. (Firefox bug 2037015).

CSS

  • The ::-webkit-scrollbar pseudo-element selector is now recognized, so the @supports selector(::-webkit-scrollbar) check returns true. Note that this reports the selector as supported even though scrollbar styling via ::-webkit-scrollbar is not truly implemented. This was added to fix an issue where scrollbars of nested scrollable areas could stack on top of each other. For example, when a scrollbar is set to display: none or width: 0 leaving some content unreachable. (Firefox bug 2038877).

JavaScript

APIs

DOM

Media, WebRTC, and Web Audio

WebAssembly

  • JavaScript Promise Integration (JS-PI) is now enabled, allowing WebAssembly modules to interoperate with asynchronous, Promise-based JavaScript APIs. This lets WebAssembly code suspend while waiting for a JavaScript promise and resume when the promise settles. See WebAssembly.Suspending for an explanation and working example. (Firefox bug 2044809).

WebDriver conformance (WebDriver BiDi, Marionette)

General

  • Improved the window manipulation commands in Marionette and WebDriver BiDi to allow individual window geometry properties, such as x, y, width, and height, to be adjusted independently. (Firefox bug 1941404).
  • Fixed a bug where click and pointer action commands could fail if the element's first DOMRect (e.g., inline elements spanning multiple lines) was zero-sized. (Firefox bug 2038932).
  • Restricted navigation to privileged pages (certain about:* pages, chrome://, and resource:// URLs) when operating in content scope. (Firefox bug 1579790).

WebDriver BiDi

  • Extended the emulation.setLocaleOverride command to also apply a locale emulation to dedicated and shared workers. (Firefox bug 2015655).
  • Extended the emulation.setTimezoneOverride command to also apply a timezone emulation to dedicated and shared workers. (Firefox bug 2015657).
  • Updated the browsingContext.create command to no longer emit browsingContext.domContentLoaded and browsingContext.load events for the initial about:blank page when creating new top-level browsing contexts, and to now emit the browsingContext.contextCreated event at the end of the creation process. (Firefox bug 1930594).
  • Fixed a bug where functions created by the script.addPreloadScript command might have stopped working after several navigations. (Firefox bug 2046390).

Marionette

  • Fixed the Take Element Screenshot command from WebDriver Classic to crop screenshots of elements which exceed the viewport. (Firefox bug 2013176).
  • Fixed the Perform Actions command to properly await internal action finalization, preventing potential race conditions. (Firefox bug 2031596).

Changes for add-on developers

Experimental web features

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

  • JPEG XL image support (Nightly): image.jxl.enabled

    The Rust-based JPEG XL image decoder is now enabled by default in Nightly. (Firefox bug 2040074).

  • Tree counting CSS functions: layout.css.tree-counting-functions.enabled

    The sibling-count() and sibling-index() function are now supported. The sibling-count() function returns the number sibling elements as well as the element itself. The sibling-index() function returns the index number of the element in relation to its siblings, this starts from 1 and not 0. (Firefox bug 2042063).

  • Updating attributes of external recourses: layout.css.link-parameters.enabled

    The link-parameters CSS property and param CSS function are now supported. This allows the user to update attributes of external resources, such as SVGs, that have their attributes set with the env() CSS function. This means that single external resource can be used rather than creating multiple variations that only have different colors or other values. (Firefox bug 2046153).

  • CSS basic shapes allow farthest-corner and closest-corner keywords (Nightly): layout.css.ellipse-corners.enabled

    The farthest-corner and closest-corner keywords can now be used for specifying the radii values of the ellipse() and circle() CSS basic shapes. (Firefox bug 2037673).