Firefox 140 for developers

This article provides information about the changes in Firefox 140 that affect developers. Firefox 140 is the current Beta version of Firefox and ships on June 24, 2025.

Changes for web developers

Developer Tools

HTML

Removals

CSS

Removals

  • The UA styles for <h1> elements nested within sectioning elements have been removed, following the removal of the outline algorithm from the HTML specification. Previously, the <h1> headings nested within <article>, <aside>, <nav>, and <section> would appear smaller. Now, <h1> elements have a consistent font size, regardless of the nesting. (Firefox bug 1964922).

JavaScript

Removals

SVG

Removals

HTTP

Removals

Security

Removals

APIs

Escape < and > in attributes when serializing HTML

DOM

  • The pointerrawupdate event is now supported. This event typically provides lower-latency access to pointer movement properties compared to the corresponding pointermove events, firing as soon as the pointer data is available. It is intended for applications that require high-precision input handling, and that cannot achieve smooth interaction using coalesced pointermove events alone. Because listening to this event may impact performance, you should avoid using it for other use cases. (Firefox bug 1550462).

Media, WebRTC, and Web Audio

Removals

  • The MutationEvent interface and its associated events (DOMSubtreeModified, DOMNodeInserted, DOMNodeRemoved, DOMCharacterDataModified, DOMAttrModified) have been removed. (Firefox bug 1963043).

WebAssembly

Removals

WebDriver conformance (WebDriver BiDi, Marionette)

General

  • Improved the Actions implementation in both Marionette and WebDriver BiDi to prevent microtasks from being blocked while individual events are dispatched. (Firefox bug 1965183)
  • Fixed a bug where WebDriver Classic and BiDi commands - particularly Action commands - could time out while waiting for a RequestAnimationFrame. (Firefox bug 1947402)

WebDriver BiDi

  • Added support for acceptInsecureCerts argument to browser.createUserContext command. This argument allows clients to disable or enable certificate related security settings for a specific user context (aka Firefox container) and override the settings specified for a session. (Firefox bug 1959372)
  • Implemented a new browsingContext event, browsingContext.navigationCommitted, which should be emitted as soon as a new document has been created for a navigation. (Firefox bug 1945184)
  • Fixed a bug for various browsingContext events which were unexpectedly emitted for webextension Browsing Contexts. (Firefox bug 1903272)
  • Updated the webExtension.uninstall command to throw a NoSuchWebExtensionError when an empty string is provided as the extension ID. (Firefox bug 1956945)
  • Updated browsingContext.contextCreated and browsingContext.contextDestroyed events to return the clientWindow property in all the remaining cases (including Firefox for Android). This property corresponds to the ID of the window owning the Browsing Context. (Firefox bug 1953743)

Changes for add-on developers

Removals

Other

Experimental web features

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

  • Notification.maxActions (Nightly): dom.webnotifications.actions.enabled

    The Notification.maxActions read-only static property returns the browser limit on the number of actions that can be associated with a Notification, which you create using ServiceWorkerRegistration.showNotification(). This was released prematurely in Firefox version 138, and this change makes it available only in the Nightly build. (Firefox bug 1963263).

  • closedBy attribute for <dialog> (Nightly): dom.dialog.light-dismiss.enabled

    The closedBy attribute of the HTMLDialogElement interface, and corresponding closedby attribute of the <dialog> element, are supported. Developers can use these to specify what mechanisms are able to close the dialogs, such as user interaction outside the dialog ("light dismiss") or programmatic closing. (Firefox bug 1964077).

  • Atomics.waitAsync(): javascript.options.atomics_wait_async

    The Atomics.waitAsync() static method waits asynchronously on a shared memory location and returns an object representing the result of the operation. It is non-blocking and usable on the main thread. (Firefox bug 1467846).

  • Prioritized Task Scheduling API (Nightly release). The Prioritized Task Scheduling API provides a standardized way to prioritize all tasks belonging to an application, whether they are defined in a website developer's code, or in third-party libraries and frameworks. This adds support for the TaskSignal.any() static method, which returns a signal that is triggered when any of the TaskSignal objects it is created from are triggered. The API is now feature complete. (Firefox bug 1964407).

  • CloseWatcher (Nightly - desktop only): dom.closewatcher.enabled. The CloseWatcher interface enables you to implement components that can be closed using device-native mechanisms, in the same way as built-in components. On Windows, for example, you can use this interface to make a custom sidebar close when users press the Esc key. (Firefox bug 1966459).

Older versions