Firefox 136 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 autocorrect global attribute allows autocorrection in editable text elements including: most kinds of text <input> elements, <textarea> elements, and elements that have the contenteditable attribute set. The specific autocorrection behavior depends on the user agent and underlying OS. (Firefox bug 1927977).
  • The plaintext-only value of the contenteditable global 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

JavaScript

HTTP

  • The Referer HTTP header is now sent in requests following a page refresh that redirects to a new page (if permitted by the Referrer-Policy), and document.referrer will be set to the referrer URL after navigating. The page refresh may be triggered by the Refresh response 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, Referer isn't sent. (Firefox bug 1928291)

APIs

Media, WebRTC, and Web Audio

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-port command 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 schema, triggered by the WebDriver:Navigate command in Marionette or browsingContext.navigate in 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.subscribe command now returns a subscription ID, which can be used with session.unsubscribe to 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 userContexts field in the script.addPreloadScript command, 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.contextDestroyed event 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

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-chars property: layout.css.hyphenate-limit-chars.enabled. The hyphenate-limit-chars CSS 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. The Error.captureStackTrace() static method installs stack trace information on a provided object as the Error.stack property. Its main use case is to install a stack trace on a custom error object that does not derive from the Error interface. (Firefox bug 1886820).
  • Clear-Site-Data: cache: privacy.clearSiteDataHeader.cache.enabled. The Clear-Site-Data header can be used with the cache or * 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. The SVGPathSegment interface now supports the getPathData(), setPathData(), and getPathSegmentAtLength() methods. These methods provide a convenient way to work with SVG path data instead of parsing raw string data. (Firefox bug 1934525).

Older versions