Firefox 146 release notes for developers (Beta)

This article provides information about the changes in Firefox 146 that affect developers. Firefox 146 is the current Beta version of Firefox and ships on December 9, 2025.

Note: The release notes for this Firefox version are still a work in progress.

Changes for web developers

MathML

  • Operator mirroring in right-to-left (RTL) modes and stretching now work properly when used in combination. (Firefox bug 1994172).
  • The math-shift property is now supported. This allows developers to indicate whether superscript rendering in MathML formulas should be normal or compact, affecting the height to which superscript text is shifted. (Firefox bug 1994171).

CSS

JavaScript

APIs

WebDriver conformance (WebDriver BiDi, Marionette)

WebDriver BiDi

  • Updated the emulation.setLocaleOverride command to override the return value of navigator.language and navigator.languages alongside JS APIs. (Firefox bug 1994396).
  • Updated the emulation.setLocaleOverride and emulation.setTimezoneOverride commands reset behavior to match recent specification changes. When calling this command to reset the override for a specific browsing context, overrides configured for a user context owning this browsing context will still apply. (Firefox bug 1988725).
  • Added support for the context locator to the browsingContext.locateNodes command, which allows to retrieve the container of non-top-level browsing contexts, such as iframe elements. (Firefox bug 1941270).
  • Implemented the network.setExtraHeaders command, which can be used to specify request headers which will be automatically added to requests triggered in the provided browsing contexts or user contexts. (Firefox bug 1979731).
  • Updated all our network data collection commands (network.addDataCollector, network.getData and network.disownData) to support the request data type, which allows to collect and retrieve request post data. (Firefox bug 1988955).
  • Improved our implementation for network.getData to also support requests using the data: scheme. (Firefox bug 1992210).
  • Fixed a bug for network.getData which was not throwing the expected no such network data error for unsupported requests. (Firefox bug 1992214).
  • Fixed a bug in our network events where different requests were reusing the same id, mostly impacting data URLs or cached requests. (Firefox bug 1992348).

Marionette

  • Fixed a regression in WebDriver:GetElementText that caused text containing accented characters (e.g., "ó") to be incorrectly capitalized. (Firefox bug 1986392).
  • Fixed a bug in the WebFrame JSON deserialization that incorrectly raised a no such window error instead of no such frame when handling invalid frames. (Firefox bug 1996540).
  • Added a WebDriver extension to control the Global Privacy Control signal. (Firefox bug 1969865).

Changes for add-on developers

Experimental web features

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

  • Navigation API (Nightly): dom.navigation.webidl.enabled

    Nightly builds now support the Navigation API, which provides the ability to initiate, intercept, and manage browser navigation actions. It can also examine an application's history entries. This is a successor to previous web platform features such as the History API and window.location, which solves their shortcomings and is specifically aimed at the needs of single-page applications (SPAs). (Firefox bug 1979288).

  • Relative control points in CSS shape() curve commands: layout.css.basic-shape-shape.enabled

    You can use <relative-control-point> values when specifying a <curve-command> or <smooth-command> in a CSS shape() function. These values let you specify control points that are positioned relative to the start or end point of the current command, or relative to the origin (top-left) of the container the shape is being drawn inside.

  • Custom media queries: layout.css.custom-media.enabled

    The @custom-media CSS at-rule defines aliases for long or complex media queries. Instead of repeating the same hardcoded <media-query-list> in multiple @media at-rules, it can be defined once in a @custom-media at-rule and referenced throughout the stylesheet whenever needed. (Firefox bug 1991105).