Firefox 136 release notes for developers
This article provides information about the changes in Firefox 136 that affect developers. Firefox 136 was released on March 4, 2025.
Changes for web developers
>HTML
- The
autocorrectglobal attribute allows autocorrection in editable text elements including: most kinds of text<input>elements,<textarea>elements, and elements that have thecontenteditableattribute set. The specific autocorrection behavior depends on the user agent and underlying OS. (Firefox bug 1927977). - The
plaintext-onlyvalue of thecontenteditableglobal attribute indicates that the element is editable; rich text formatting is disabled and any formatting in pasted text is automatically stripped (Firefox bug 1922724).
CSS
- The
:has-slottedpseudo-class is used to style elements in<template>that have content added to a<slot>element when rendering a web component (Firefox bug 1940691). - The
:openpseudo-class is now supported and allows you to select any element that is currently in an open state, this applies to the<details>,<dialog>,<input>elements with a picker and<select>elements which present a drop-down box. (Firefox bug 1936113). - The
<gradient>CSS functionslinear-gradient(),conic-gradient(), andradial-gradient()now allow a single color stop and 0-1 positions. This produces a single solid color and is used in setting themaskCSS property. (Firefox bug 1900530).
JavaScript
Intl.DurationFormatis now supported, enabling locale-sensitive formatting of durations. (Firefox bug 1933303).
HTTP
- The
RefererHTTP header is now sent in requests following a page refresh that redirects to a new page (if permitted by theReferrer-Policy), anddocument.referrerwill be set to the referrer URL after navigating. The page refresh may be triggered by theRefreshresponse header, or equivalent<meta>in markup (for example<meta http-equiv="refresh" content="3;url=https://www.mozilla.org" />). Note that same-page refreshes are treated as same-page navigation to a page fragment: since the page isn't re-requested,Refererisn't sent. (Firefox bug 1928291)
APIs
-
The maximum size of Data URLs has been increased from 32MB to 512MB, matching the limit for Chromium browsers (Firefox bug 1911300).
-
Element properties are now reflected for the Aria attributes that contain element references (Firefox bug 1919102).
This includes:
ariaActiveDescendantElement,ariaControlsElements,ariaDescribedByElements,ariaDetailsElements,ariaErrorMessageElements,ariaFlowToElements,ariaLabelledByElements,ariaOwnsElementsin theElementinterfaceariaActiveDescendantElement,ariaControlsElements,ariaDescribedByElements,ariaDetailsElements,ariaErrorMessageElements,ariaFlowToElements,ariaLabelledByElements,ariaOwnsElementsin theElementInternalsinterface.
Media, WebRTC, and Web Audio
- WebRTC can now send and receive video encoded using the AV1 codec. When sending, it can be used for both sending multiple simultaneous versions of the same source ("simulcast") and singlecast. (Firefox bug 1944878 and Firefox bug 1932065).
- WebRTC simulcast of screen-shared video with the H264 codec is also supported (AV1, H264, and VP8 can now be used for simulcast). Note that the H264 codec is hardware-enabled on Android. (Firefox bug 1210175).
- WebRTC support for the Dependency Descriptor (DD) RTP Header Extension, and its use with AV1, VP8, and VP9 codecs. The DD header extension enables codec-independent forwarding of simulcast streams, including in scenarios where the payload is end-to-end encrypted (E2EE). (Firefox bug 1945261).
WebDriver conformance (WebDriver BiDi, Marionette)
General
-
Firefox now handles WebSocket port conflicts for the RemoteAgent more efficiently. If the port specified via the
--remote-debugging-portcommand line argument cannot be acquired within 5 seconds, such as when another Firefox process is already using it, Firefox will now shut down instead of hanging (Firefox bug 1927721). -
Navigations using the HTTP scheme, triggered by the
WebDriver:Navigatecommand in Marionette orbrowsingContext.navigatein WebDriver BiDi, will no longer be automatically upgraded to HTTPS. These requests will now remain on HTTP as intended (Firefox bug 1943551).
WebDriver BiDi
-
The
session.subscribecommand now returns a subscription ID, which can be used withsession.unsubscribeto precisely target the same previously subscribed events and contexts as the original subscription. This helps prevent unintended side effects when multiple subscriptions exist, such as those limited to a specific tab (Firefox bug 1938576).Note: The previous logic for removing events by name and context has been deprecated and will be removed in a future release.
-
Added support for the
userContextsfield in thescript.addPreloadScriptcommand, allowing clients to specify in which user contexts (containers) the script should always be loaded automatically, including any new browsing contexts opened within such specified user contexts (Firefox bug 1940927). -
The
browsingContext.contextDestroyedevent now returns a fully serialized browsing context tree when a context is closed, including all its child contexts (Firefox bug 1860955).
Changes for add-on developers
- Adds the
preferred_environmentproperty to thebackgroundmanifest key, enabling extensions to request that the browser run their background scripts as a document or service worker (Firefox bug 1798655). menus.updateandmenus.removeand the aliasescontextMenus.updateandcontextMenus.removenow reject with an error when the menu item doesn't exist. Previously, the error was ignored and the promise fulfilled. (Firefox bug 1688743).- A new version of the
userScriptsAPI is available on desktop Firefox. This version of the API is for use in Manifest V3 extensions and provides broad compatibility with Chrome, although permissions mechanisms differ across the browsers. (Firefox bug 1943050). - The
canResumeproperty ofdownloads.DownloadItemis now set totruewhen a download fails withNETWORK_FAILED. This enables downloads that fail due to a network error to be resumed usingdownloads.resume(). (Firefox bug 1694049).
Experimental web features
These features are newly shipped in Firefox 136 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.
- CSS
hyphenate-limit-charsproperty:layout.css.hyphenate-limit-chars.enabled. Thehyphenate-limit-charsCSS property is used to specifically the minimum word length for hyphenation as well as the number of characters before and after the hyphen. (Firefox bug 1521723). - Error.captureStackTrace():
javascript.options.experimental.error_capture_stack_trace. TheError.captureStackTrace()static method installs stack trace information on a provided object as theError.stackproperty. Its main use case is to install a stack trace on a custom error object that does not derive from theErrorinterface. (Firefox bug 1886820). - Clear-Site-Data: cache:
privacy.clearSiteDataHeader.cache.enabled. TheClear-Site-Dataheader can be used with thecacheor*directives to clear the browser cache. (Firefox bug 1942272). - SVG
<discard>element for SVG animations:svg.discard.enabled. The<discard>SVG element allows developers to specify a trigger, such as the elapsed time since the SVG was loaded into DOM or the end of a particular animation, at which a specified element and its children should be removed from the DOM. This allows an SVG viewer to conserve memory by discarding animated elements that no longer needed. (Firefox bug 1069931). - SVG path API methods:
dom.svg.pathSegment.enabled. ThegetPathData(),setPathData(), andgetPathSegmentAtLength()methods of theSVGPathElementinterface are now supported. These methods provide a convenient way to work with SVG path data instead of parsing raw string data. (Firefox bug 1934525).