We're looking for a user researcher to understand the needs of developers and designers. Is this you or someone you know? Check out the post: https://mzl.la/2IGzdXS

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
<dialog>
Dialog element including DOM APIs to interact with it. Implementation of modal dialogs and accessibility still missing.
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
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 or layout.css.control-characters.visible
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-variation-settings property
The font-variation-settings provides low-level control over OpenType or TrueType font typographic features, by specifying the four letter axis names of the features you want to vary, along with their variation values.

Disabled
(available since 53)
Disabled
(available since 53)
Disabled
(available since 53)
Disabled
(available since 53)

layout.css.font-variations.enabled

For the downloadable fonts on axis-praxis, you also need gfx.downloadable_fonts.keep_variation_tables (in Firefox 54 and later).

The font-variation-settings descriptor
A descriptor version of font-variation-settings that goes inside @font-face.
Disabled
(available since 60)
Disabled
(available since 60)
Disabled
(available since 60)
Disabled
(available since 60)
layout.css.font-variations.enabled
 
The touch-action CSS property
The touch-action CSS property is part of the Pointer Events specification and allows you to specify how and in what way the user is able to manipulate an object by touch.
50 layout.css.touch_action.enabled

The shape-outside CSS property
The shape-outside CSS property is part of the CSS Shapes Module Level 1 specification and allows you to specify a float area causing inline contents to wrap around a shape.

Firefox currently implements the <shape-box> values (bug 1309467) as well as the circle() (bug 1311244), ellipse() (bug 1326406), and polygon() (bug 1326409) functions. shape-outside is animatable since Firefox 57 (bug 1289049).

Disabled
(available since 53)
layout.css.shape-outside.enabled
The shape-image-threshold CSS property
The shape-image-threshold CSS property is part of the CSS Shapes Module Level 1 specification, and allows you to specify the alpha channel threshold used to extract the shape using an image as the value for shape-outside.
Disabled
(available since 59)
Disabled
(available since 59)
Disabled
(available since 59)
Disabled
(available since 59)
layout.css.shape-outside.enabled
The contain CSS property
The contain CSS property is part of the CSS Containment Module Level 1 specification and allows you 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 column-span CSS property
The column-span CSS property is part of the CSS Multi-column Layout Module specification and allows you to specify how many columns an element spans across.

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
The frames() timing function
See The frames() class of timing-functions for more details.
Enabled N/A Disabled
(available since 55)
Disabled
(available since 55)
None
The ::slotted pseudo-element
Selects elements when they are inserted into a <slot> in an HTML <template>.
Disabled
(available since 59)
Disabled
(available since 59)
Disabled
(available since 59)
Disabled
(available since 59)
dom.webcomponents.customelements.enabled and dom.webcomponents.shadowdom.enabled
Individual transform properties
translate, scale, and rotate. These specify transforms individually and independantly of the transform property.
Disabled
(available since 60)
Disabled
(available since 60)
Disabled
(available since 60)
Disabled
(available since 60)
layout.css.individual-transform.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 object
Adds 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
Array.prototype.flatten() and Array.prototype.flatMap() Enabled (59) Disabled Disabled Disabled None

APIs

Canvas & WebGL

Feature Firefox Nightly Firefox Developer Edition Firefox Beta Firefox Release Preference
WEBGL_debug_renderer_info extension
The WEBGL_debug_renderer_info extension allows you 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
DocumentTimeline() constructor.
The DocumentTimeline constructor has been implemented but is not enabled in release (bug 1267510).
Enabled
(available since 50)
Enabled
(available since 50)
Enabled
(available since 50)
Disabled
(available since 50)
 
Streams API
Allows JavaScript to programmatically access streams of data received over the network and process them as desired by the developer.
Disabled
(available since 57)
Disabled
(available since 57)
Disabled
(available since 57)
Disabled
(available since 57)
dom.streams.enabled and javascript.options.streams
Custom elements
Allows the definition and registering of custom elements that can then be used in the document.
Enabled
(since 59)
Disabled
(available since 57)
Disabled
(available since 57)
Disabled
(available since 57)
dom.webcomponents.customelements.enabled
Shadow DOM
Allows a shadow DOM to be attached to any element, inside which markup, style, and scripting can be safely encapsulated.
Disabled
(available since 58)
Disabled
(available since 58)
Disabled
(available since 58)
Disabled
(available since 58)
dom.webcomponents.shadowdom.enabled

DOM

Feature Firefox Nightly Firefox Developer Edition Firefox Beta Firefox Release Preference
Gamepad extensions
The Gamepad Extensions provide access to additional functionality such as pose information in the case of WebVR controllers, and haptic actuator control (e.g. controller vibration hardware).
Enabled Enabled Enabled Disabled dom.gamepad-extensions.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(), and
GeometryUtils.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
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 HTMLMediaElement.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, which is now relative to the Unix epoch.
32 (Windows)
43 (Linux)
32 (Windows)
43 (Linux)
Disabled Disabled media.track.enabled
Pointer Events 59 59
(still disabled on Firefox for Android)
59
(still disabled on Firefox for Android)
59
(still disabled on Firefox for Android)
dom.w3c_pointer_events.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
PromiseRejectionEvent and related features
Providing a way to monitor and more finely control the rejection of Promises.
 
Disabled
(available since 55)
Disabled Disabled Disabled dom.promise_rejection_events.enabled
Payment Request API
Provides a web API for handling web-based payments.
Disabled
(available since 55)
Disabled
(available since 55)
Disabled
(available since 55)
Disabled
(available since 55)
dom.payments.request.enabled
Basic Card Payment API
Provides dictionaries that define data structures describing card payment types and payment responses for use in the Payment Request API. See BasicCardRequest and BasicCardResponse.
Disabled
(available since 56)
Disabled
(available since 56)
Disabled
(available since 56)
Disabled
(available since 56)
dom.payments.request.enabled
Window.content only available to Chrome code
The proprietary Window.content property is now only available to chrome (privileged) code, and not available to the web anymore (bug 864845).
Enabled
(since 57)
Disabled Disabled Disabled  
Disabling Navigator.registerContentHandler()
This API is associated with a number of issues., and in addition we are the only browser that implements it. We are intending to remove it completely in the future, but for the moment we are disabling it in non-release versions to see if we get any significant web compat reports back.
Disabled
(available since 59)
Disabled
(available since 59)
Disabled
(available since 59)
Enabled dom.registerContentHandler.enabled
Supporting Event.srcElement
A proprietary alias (implemented in Internet Explorer) for the standard Event.target property, which has been implemented experimentally in Firefox for web compatibility purposes (bug 1444004).
Enabled
(since 60)
Disabled Disabled Disabled  


CSSStyleDeclaration.getPropertyCSSValue() has been deprecated
Use CSSStyleDeclaration.getPropertyValue() instead.

Disabled
(since 61)
Disabled
(since 61)
Disabled
(since 61)
Enabled  
Autodirectional Scroll Wheel
Using a single-direction scroll wheel inside a target that can only be scrolled in one direction always scrolls in that direction, regardless of the directionality of the wheel itself.
Disabled
(available since 61)
Disabled
(available since 61)
Disabled
(available since 61)
Disabled
(available since 61)
mousewheel.autodir.enabled

WebRTC and media

Feature Firefox Nightly Firefox Developer Edition Firefox Beta Firefox Release Preference
AV1 media playback support
Support for playback of video encoded using the Alliance for Open Media AOMedia Video 1 (AV1) format.
Disabled
(available since 55; disabled by default in 61)
Disabled
(available since 55; disabled by default in 61)
Disabled Disabled media.av1.enabled
TCP ICE candidates
ICE candidates that use TCP rather than UDP are considered during ICE negotiation.

Disabled
41

Enabled
54

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

Security

Feature Firefox Nightly Firefox Developer Edition Firefox Beta Firefox Release Preference
TLS 1.3 Enabled Enabled Disabled Disabled security.tls.version.max to 4
Block plain text requests from Flash plugins on encrypted pages
A pref has been added to treat mixed OBJECT_SUBREQUESTS as active content to mitigate MitM attacks due to plugins loading "risky" content. See bug 1190623 for more details.
Enabled
(available since 59)
Enabled
(available since 59)
Enabled
(available since 59)
Disabled security.mixed_content.block_object_subrequest to true
SecurityPolicyViolationEvent, and the securitypolicyviolation event
Allows developers to programmatically respond to CSP violations.
Enabled
(available since 59)
Enabled
(available since 59)
Enabled
(available since 59)
Disabled security.csp.enable_violation_events

"Insecure connection" icon display for non-HTTPS sites
Firefox 59 has two new preferences, disabled by default, which when enabled cause a lock with a strike-through to appear in the address bar when a non-HTTPS site is loaded. This work is part of the preparation for moving to a completely HTTPS web, the idea being that in the near future insecure sites will be specially indicated, rather than secure sites.

Disabled
(available since 59)
Disabled
(available since 59)
Disabled
(available since 59)
Disabled
(available since 59)

security.insecure_connection_icon.enabled for non-private browsing

security.insecure_connection_icon.pbmode.enabled for private browsing

"Not secure" text warning for non-HTTPS sites
Following on from the above experiment, Firefox 60 has another two new preferences, disabled by default, that when enabled cause a "Not secure" text label to appear in the address bar next to the lock icon when a non-HTTP site is loaded (bug 1335970).
Disabled
(available since 60)
Disabled
(available since 60)
Disabled
(available since 60)
Disabled
(available since 60)

security.insecure_connection_text.enabled for non-private browsing

security.insecure_connection_text.pbmode.enabled for private browsing

Origin header sent for non-CORS requests
To mitigate CSRF attacks, the Origin header should be sent with non-CORS requests unless they are GET or HEAD (bug 446344). We currently only send Origin on CORS requests.

Disabled Disabled Disabled Disabled network.http.sendOriginHeader
Navigator.registerProtocolHandler() deprecated on non-HTTPS sites
There are security risks associated with registering new protocols (see bug 1429732), so we are intending to make it secure context-only at some point in the future.
Disabled (i.e. it is not available on HTTP) Enabled Enabled Enabled dom.registerProtocolHandler.insecure.enabled

Application Cache only in secure contexts
As a precursor to disabling it altogether, Application Cache has been disabled in non-secure contexts, currently in Nightly/Beta editions of Firefox only (bug 1354175).

Since 60 Since 60 Since 60 No  
Upgrading mixed display content
As an experiment we have implemented a preference to upgrade mixed content on secure pages. When enabled, the browser shouldn't show a mixed padlock (padlock with warning triangle) as the media requests on the page have been upgraded to using https://. In addition, the console warning is different, saying that the insecure requests have been updated to HTTPS. This feature may also prevent requests from loading if the requested media doesn't support HTTPS (bug 1435733).
Disabled
(available since 60)
Disabled
(available since 60)
Disabled
(available since 60)
Disabled
(available since 60)
security.mixed_content.upgrade_display_content

See also

Document Tags and Contributors

Last updated by: Zhang-Junzhi,