Changes for web developers
MathML
Removals
- Support for the deprecated MathML STIXGeneral font has now been removed. The setting mathml.stixgeneral_operator_stretching.disabled has also been removed. (Firefox bug 1336058).
CSS
- CSS features for view transitions in single-page applications (SPAs) are now supported. This provides a way to style the parts of a view transition animation. (Firefox bug 1985809). These include:
- :active-view-transition pseudo-class
- view-transition-class property
- view-transition-name property
- ::view-transition pseudo-element
- ::view-transition-group() pseudo-element
- ::view-transition-image-pair() pseudo-element
- ::view-transition-new() pseudo-element
- ::view-transition-old() pseudo-element
JavaScript
- The Map.prototype.getOrInsert(), Map.prototype.getOrInsertComputed(), WeakMap.prototype.getOrInsert(), and WeakMap.prototype.getOrInsertComputed() instance methods are now supported. All the methods return the value corresponding to a specified key if the key is present. If the key is not present, getOrInsert() inserts and returns an element for the key and a given default value, while getOrInsertComputed() inserts and returns a value computed in a supplied callback function. (Firefox bug 1979917).
APIs
-
The lock() and unlock() methods of the ScreenOrientation interface are now supported for Android and for Windows tablets. (Firefox bug 1983483)
-
The View Transition API is now supported for SPAs (single-page applications). This provides a mechanism for easily creating animated transitions between different website views. (Firefox bug 1985809).
-
The CSSStyleProperties interface of the CSS Object Model (CSSOM) is now implemented (this was renamed from a non-standard interface CSS2Properties). The new interface is present but not yet used. (Firefox bug 1919582).
-
The interactionId property of the PerformanceEventTiming interface is a unique identifier that associates related events belonging to a single user interaction. This can be used to calculate the Interaction to next paint metric, which helps analyze responsiveness to user interaction over the lifetime of a page. (Firefox bug 1956809).
DOM
- The moveBefore() method is now supported on the Element, DocumentFragment and Document interfaces. This allows moving of an immediate child element of the object, before another of its child elements. Unlike with Node.insertBefore(), moved elements retain their state. (Firefox bug 1983688).
Media, WebRTC, and Web Audio
- Cross-origin <iframe>s now require either user interaction (sticky activation) or explicit permission to redirect the top-level page using window.top.location. See Top navigation in cross-origin frames for more information. (Firefox bug 1419501).
- RTCDataChannel instances are now transferrable objects, and hence can be passed to workers. (Firefox bug 1209163).
- The closing event and the onclosing() event handler are now supported on the RTCDataChannel interface. (Firefox bug 1611953).
- The getUserMedia() and getDisplayMedia() methods of the MediaDevices interface now support the resizeMode constraint. This constraint allows developers to request video that matches other constraints, such as resolution and frame rate, even if the requested constraints are not supported by the underlying hardware. The browser may then crop, downscale, or reduce the frame rate of the video captured from a camera, or downscale (but not crop) the video captured from a screen or window. (Firefox bug 1286945).
Removals
- The following deprecated and non-standard events have been removed: afterscriptexecute event and beforescriptexecute event of the Document interface, and the afterscriptexecute event and beforescriptexecute event of the Element interface. (Firefox bug 1584269).
WebDriver conformance (WebDriver BiDi, Marionette)
WebDriver BiDi
-
Implemented the new browsingContext.downloadWillBegin event, which is emitted when a new download is initiated, either by clicking a link with the download attribute, or in response to a network request with a Content-Disposition header indicating a file attachment (Firefox bug 1874365).
-
Implemented the new emulation.setScreenOrientationOverride command, which allows clients to emulate different screen orientations. This command is not limited to mobile devices, but also works for desktop applications (Firefox bug 1974167).
-
Implemented the new emulation.setTimezoneOverride command, which allows clients to simulate a specific timezone setting (Firefox bug 1978027).
-
Enhanced the emulation.setLocaleOverride command to also apply the specified settings to sandboxes previously created via WebDriver BiDi (Firefox bug 1983807).
-
Fixed a bug where the locale override set via emulation.setLocaleOverride was sometimes incorrectly shared between different browsing contexts within the same process (Firefox bug 1980211).
-
Enhanced the browsingContext.navigate command to avoid NS_BINDING_ABORTED errors caused by redirects or interruptions occurring after the navigation was already committed (Firefox bug 1914407).
Marionette
- Reverted the Scroll Into View WebDriver algorithm as used by several WebDriver classic commands in Marionette to always use the instant scroll behavior. This undoes the change introduced in Firefox 97, which had switched the behavior to auto. The reversion addresses potential race conditions when scrolling elements that use smooth behavior (Firefox bug 1986238).
Changes for add-on developers
- Adds the ability to specify the style origin for CSS injections from "content_scripts" manifest key, in scripting.registerContentScripts() with the cssOrigin property on scripting.RegisteredContentScript, and the cssOrigin property in contentScripts.register. The style origin can be "user", to add the CSS as a user stylesheet, or "author", to add it as an author stylesheet. Default, to the "author" origin. These properties are case-insensitive. In addition, the value of the origin property of scripting.insertCSS() is now case insensitive. (Firefox bug 1679997)
- Adds support for getBytesInUse() to storage.local and storage.managed. (Firefox bug 1385832)
Experimental web features
These features are shipping in Firefox 144 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.
-
datetime-local time picker: dom.forms.datetime.timepicker.
HTML datetime-local input elements (<input type="datetime-local">) now includes a time picker (Firefox bug 1726108).
.png)

