files/en-us/mozilla/firefox/releases/146/index.md
This article provides information about the changes in Firefox 146 that affect developers. Firefox 146 was released on December 9, 2025.
No notable changes.
The {{cssxref("color_value/contrast-color()")}} function is now supported. This function takes a <color> value and returns a contrasting color that ensures at least WCAG AA minimum contrast.
(Firefox bug 1682439).
The <color> data type now supports the display-p3-linear color space. This space is similar to display-p3, except that it uses a linear-light transfer function and has no gamma-encoding, which allows for a higher precision in the colors displayed.
(Firefox bug 1996318).
The text-decoration-inset property is now supported, which enables adjusting the start and end points of an element's {{cssxref("text-decoration")}} so it can be shortened, lengthened, or have its position shifted with respect to the rendered text.
(Firefox bug 1979915, Firefox bug 1997157, Firefox bug 1993043).
The {{cssxref("@scope")}} at-rule is now supported by default. This enables you to select elements in specific DOM subtrees, targeting elements precisely without writing overly-specific selectors that are hard to override, and without coupling your selectors too tightly to the DOM structure. (Firefox bug 1991105).
The legacy -webkit-fill-available keyword is now supported as a value for the CSS {{cssxref("width")}} and {{cssxref("height")}} properties to improve web compatibility.
This keyword is an alias for the recently-standardized stretch keyword (i.e., width: stretch and height: stretch), which isn't yet supported in Firefox.
(Firefox bug 1988938, Firefox bug 1789477).
emulation.setLocaleOverride command to override the return value of navigator.language and navigator.languages alongside JS APIs. (Firefox bug 1994396).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).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).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).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).network.getData to also support requests using the data: scheme. (Firefox bug 1992210).network.getData which was not throwing the expected no such network data error for unsupported requests. (Firefox bug 1992214).network events where different requests were reusing the same id, mostly impacting data URLs or cached requests. (Firefox bug 1992348).WebDriver:GetElementText that caused text containing accented characters (e.g., "ó") to be incorrectly capitalized. (Firefox bug 1986392).WebFrame JSON deserialization that incorrectly raised a no such window error instead of no such frame when handling invalid frames. (Firefox bug 1996540).localStorage is set in {{WebExtAPIRef("browsingData.DataTypeSet")}}) now delete objects from sessionStorage. (Firefox bug 1886894)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.
<meta name="rating"> (Nightly): security.restrict_to_adults.always and security.restrict_to_adults.respect_platform
The <meta name="rating"> element allows websites to self-identify as restricted/adult content. Browsers that recognize this element can then take steps to restrict users from viewing the content. See Restricting adult content with <meta name="rating"> for more details.
(Firefox bug 1991135).
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 {{domxref("History API", "", "", "nocode")}} and {{domxref("window.location")}}, which solves their shortcomings and is specifically aimed at the needs of {{glossary("SPA", "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 1744292).