In order to test new features, Mozilla publishes a test version of the Firefox browser, Firefox Nightly, every day. Experimental features, for example implementations of proposed Web platform standards, are available. This page lists features that are in Nightly versions of Firefox along with information on how to activate them, if necessary. You can test your Web sites and applications before these features get released and ensure everything will still work with the latest Web technology capabilities.
To test these experimental features, you need to download Firefox Nightly or Firefox Developer Edition.
HTML
Feature | Firefox Nightly | Firefox Developer Edition | Firefox Beta | Firefox Release | Preference |
---|---|---|---|---|---|
Date and time inputs The UI for the <input> date and time related input types. |
Disabled (available since 51) |
Disabled (available since 51) |
Disabled (available since 51) |
--- | dom.forms.datetime |
<dialog> Dialog element including some DOM API to interact with it. |
Disabled (available since 53) |
Disabled (available since 53) |
--- | --- | dom.dialog_element.enabled |
CSS
Feature | Firefox Nightly | Firefox Developer Edition | Firefox Beta | Firefox Release | Preference |
---|---|---|---|---|---|
Subgrids | Disabled | Disabled | Disabled | Disabled | layout.css.grid-template-subgrid-value.enabled |
Logical values for clear and float CSS propertiesThe values clear : inline-start and clear: inline-end as well as float : inline-start and float: inline-end are making easier to create layouts that are agnostic to the text directionality. |
45 | 45 | Disabled | Disabled | layout.css.float-logical-values.enabled |
Display stray control characters in CSS as hex boxes This feature renders control characters (Unicode category Cc) other than tab ( U+0009 ), line feed (U+000A ), form feed (U+000C ), and carriage return (U+000D ) as a hexbox when they are not expected. |
43 | 43 | Disabled | Disabled | layout.css.control-characters.enabled |
The transform-box propertyControls the box the relative values of transform-origin and transform relate too. |
41 | 41 | Disabled | Disabled | svg.transform-box.enabled |
Positioned CSS Masks A subset of CSS Masks that includes longhand properties of CSS Masks, as well as a change in the shorthand property |
51 | 51 | 53 | Disabled | Controlled by a compile flag (MOZ_ENABLE_MASK_AS_SHORTHAND). |
The font-display descriptor for @font-face To improve Web fonts performance, @font-face has an experimental font-display descriptor. |
Disabled (available since 46) |
Disabled (available since 46) |
Disabled (available since 46) |
Disabled (available since 46) |
layout.css.font-display.enabled |
The |
Disabled (available since 53) |
Disabled (available since 53) |
Disabled (available since 53) |
Disabled (available since 53) |
|
The touch-action CSS propertyThe touch-action CSS property is part of the Pointer Events specification and allows to specify how and in what way the user is able to manipulate an object by touch. |
50 | — | — | — | layout.css.touch_action.enabled |
The Firefox currently implements the |
Disabled (available since 53) |
— | — | — | layout.css.shape-outside.enabled |
The contain CSS propertyThe contain CSS property is part of the CSS Containment Module Level 1 specification and allows to indicate that an element and its contents are independent of the rest of the document tree, allowing user agents to optimize the rendering of a page. |
Disabled (available since 45) |
Disabled (available since 45) |
Disabled (available since 45) |
Disabled (available since 45) |
layout.css.contain.enabled |
The Firefox currently only parses the property (bug 1339298), it's not actually implemented yet (bug 616436). |
Disabled (recognized since 55, but not implemented yet) |
— | — | — | layout.css.column-span.enabled |
JavaScript
See also ECMAScript Next support for implemented features of ECMAScript 2016 and later, that are not experimental and thus available without preferences in Firefox Release.
Feature | Firefox Nightly | Firefox Developer Edition | Firefox Beta | Firefox Release | Preference |
---|---|---|---|---|---|
Additions to the ArrayBuffer objectAdds the ArrayBuffer.transfer() that returns a new ArrayBuffer whose contents have been taken from the oldBuffer 's data (spec). |
36 | Disabled | Disabled | Disabled | None |
TypedObject objects (spec) | Enabled | Disabled | Disabled | Disabled | None |
SIMD (specification and polyfill) | Enabled | Disabled | Disabled | Disabled | None |
Shared Memory objectsSharedArrayBuffer Atomics |
46 |
51 (available behind the pref since 46) |
Disabled (available behind the pref since 46) |
Disabled (available behind the pref since 46) |
javascript.options.shared_memory |
for each...in removed from Gecko |
Disabled | Enabled | Enabled | Enabled | None |
ECMAScript modules Allows you to use native ECMAScript modules, for example defining modules with <script type="module"> , and importing code features that have been exported from modules. |
Disabled | Disabled | Disabled | Disabled | dom.moduleScripts.enabled |
APIs
Canvas & WebGL
Feature | Firefox Nightly | Firefox Developer Edition | Firefox Beta | Firefox Release | Preference |
---|---|---|---|---|---|
WEBGL_debug_renderer_info extensionThe WEBGL_debug_renderer_info extension allows to transmit information useful to help debugging problems to the server. |
42 | 42 | Disabled | Disabled | webgl.enable-debug-renderer-info |
OffscreenCanvas The OffscreenCanvas interface provides a canvas that can be rendered off screen. It is available in both the window and worker contexts. |
Disabled (available since 44) |
Disabled (available since 44) |
Disabled (available since 44) |
Disabled (available since 44) |
gfx.offscreencanvas.enabled |
Hit regions Whether the mouse coordinates are within a particular area on the canvas, is a common problem to solve. The hit region API allows you define an area of your canvas and provides another possibility to expose interactive content on a canvas to accessibility tools. |
Disabled (available since 30) |
Disabled (available since 30) |
Disabled (available since 30) |
Disabled (available since 30) |
canvas.hitregions.enabled |
DOM
Feature | Firefox Nightly | Firefox Developer Edition | Firefox Beta | Firefox Release | Preference |
---|---|---|---|---|---|
WebVR API The WebVR API allows to control and use virtual reality devices. |
46 A major update of the interface happened in version 51. |
46 A major update of the interface happened in version 51. |
Disabled | Disabled | dom.vr.enabled |
FlyWeb FlyWeb is a project at Mozilla focused on bringing a new set of APIs to the browser for advertising and discovering local-area web servers. |
51 | Disabled | Disabled | Disabled | dom.flyweb.enabled |
HTMLMediaElement.seekToNextFrame() Part of an experimentation process around support non-real-time access to media for tasks including filtering, editing, and so forth, the HTMLMediaElement.seekToNextFrame() advances the the current play position to the next frame in the media. |
49 (Fundamental update in version 50) |
49 (Fundamental update in version 50) |
Disabled | Disabled | media.seekToNextFrame.enabled |
GeometryUtils.getBoxQuads() (bug 917755) |
31 | 31 | Disabled | Disabled | layout.css.getBoxQuads.enabled |
GeometryUtils.convertPointFromNode() ,GeometryUtils.RectFromNode() , andGeometryUtils.convertQuadFromNode() (bug 918189) |
31 | 31 | Disabled | Disabled | layout.css.convertFromNode.enabled |
Node.rootNode The Node.rootNode property returns a Node object representing the topmost node in the tree, or the current node if it's the topmost node in the tree.This feature is kept experimental as its naming poses Web compatibility problems. It will be renamed in the future. |
48 | 48 | Disabled | Disabled | dom.node.rootNode.enabled |
Performance Observer API The PerformanceObserver interface is used to observe performance measurement events and be notified of new performance entries as they are recorded in the browser's performance timeline. |
49 | Disabled | Disabled | Disabled | dom.enable_performance_observer |
WebVTT Regions API WebVTT regions are parts of the video viewport that provide a rendering area for WebVTT cues. The VTTRegion is the interface exposing the WebVTT cues.This interface is considered to be in flux and isn't therefore activated in any version by default. |
Disabled (Experimental implementation since version 30) |
Disabled | Disabled | Disabled | media.webvtt.regions.enabled |
Support for audio and video tracks Implements HTMLMediaElement.audioTracks and HTMLMediaElment.videoTracks .Firefox doesn't support multiple audio or video tracks, preventing the most common use cases for these properties to work properly. That's why these properties are not activated by default in any version. |
Disabled (Experimental implementation since version 33) |
Disabled | Disabled | Disabled | media.track.enabled |
Better value for Event.timestamp The property Event.timestamp is returning a DOMHighResTimeStamp , but the value is not the time since but since the reboot. This change allow for returning a timestamp relative to the Unix epoch. |
32 (Windows) 43 (Linux) |
32 (Windows) 43 (Linux) |
Disabled | Disabled | media.track.enabled |
Pointer Events | 50 | Disabled | Disabled | Disabled | dom.w3c_pointer_events.enabled |
Pointer Events PointerEvent.tangentialPressure and PointerEvent.twist |
54 | Disabled | Disabled | Disabled | dom.w3c_pointer_events.enabled |
Intersection Observer API The Intersection Observer API allows you to configure a callback that is called whenever one item, called a target, intersects either the device viewport or a specified element called. |
Disabled (available since 53) |
— | — | — | dom.IntersectionObserver.enabled |
Web Animations API: KeyframeEffect and KeyframeEffectReadOnly The KeyframeEffectReadOnly.KeyframeEffectReadOnly() and KeyframeEffect.KeyframeEffect() constructors can be used to clone existing KeyframeEffectReadOnly object instances by being given the object to clone as their only parameter (see bug 1273784.) |
52 | 52 | Disabled | Disabled | None |
WebRTC
Feature | Firefox Nightly | Firefox Developer Edition | Firefox Beta | Firefox Release | Preference |
---|---|---|---|---|---|
TCP ICE candidates ICE candidates that use TCP rather than UDP are considered during ICE negotiation. |
Disabled Enabled |
Disabled 41 |
Disabled 41 |
Disabled 41 |
media.peerconnection.ice.tcp |
Developer Tools
Feature | Firefox Nightly | Firefox Developer Edition | Firefox Beta | Firefox Release | Preference |
---|---|---|---|---|---|
Debugger rewrite in HTML | 52 | 52 | Disabled | Disabled | devtools.debugger.new-debugger-frontend |
Console rewrite in HTML | 52 | Disabled | Disabled | Disabled | devtools.webconsole.new-frontend-enabled |
Experimental Performance tool options Enables options in the UI for JIT optimizations, memory, etc. |
41 | Disabled | Disabled | Disabled | devtools.performance.ui.experimental |
Layout side panel The Layout side panel allows to inspect and manage different CSS layout types like CSS Grid Layout. |
Disabled (available since 52) |
Disabled (available since 52) |
Disabled (available since 52) |
Disabled (available since 52) |
devtools.layoutview.enabled |
Other
Feature | Firefox Nightly | Firefox Developer Edition | Firefox Beta | Firefox Release | Preference |
---|---|---|---|---|---|
Add to home screen The icons , name , short_name , and theme_color fields of the Web App Manifest (if present) can now be as the source of the homescreen/apps window icons, apps window title, homescreen icon title, and apps window color (respectively) for "Add to home screen" (Firefox Mobile only). |
Disabled (available since 53) |
Disabled (available since 53) |
Disabled (available since 53) |
Disabled (available since 52) |
manifest.install.enabled |
TLS 1.3 | Enabled | Enabled | Disabled | Disabled | security.tls.version.max to 4 |