Experimental features in Firefox

This page lists Firefox's experimental and partially implemented features, including those for proposed or cutting-edge web platform standards, along with information on the builds in which they are present, whether or not they are activated "by default", and which preference can be used to activate or deactivate them. This allows you to test the features before they are released.

New features appear first in the Firefox Nightly build, where they are often enabled by default. They later propagate though to Firefox Developer Edition and eventually to the release build. Once a feature is enabled by default in a release build it is no longer experimental, and should be removed from the topic.

Experimental features can be enabled or disabled using the Firefox Configuration Editor (enter about:config in the Firefox address bar) by modifying the associated preference listed below.

Editor's notes

When adding features to these tables, please try to include a link to the relevant bug or bugs using the bug macro: {{bug(bug-number)}}.

HTML

Element: <dialog>

The HTML <dialog> element and its associated DOM APIs provide support for HTML-based modal dialog boxes. The current implementation is a little inelegant but is basically functional. (See bug 840640 for more details.)

Release channel Version added Enabled by default?
Nightly 53 Yes
Developer Edition 53 No
Beta 53 No
Release 53 No
Preference name dom.dialog_element.enabled

Global attribute: inputmode

Our implementation of the inputmode global attribute has been updated as per the WHATWG spec (bug 1509527), but we still need to make other changes too, like making it available on contenteditable content. (See bug 1205133 for details.)

Release channel Version added Enabled by default?
Nightly 75 Yes
Developer Edition 75 No
Beta 75 No
Release 75 No
Preference name dom.forms.inputmode

inert attribute

The HTMLElement property HTMLElement.inert is a Boolean, when present, may make the browser "ignore" the element from assistive technologies, page search and text selection. For more details on the status of this feature see bug 1655722.

Release channel Version added Enabled by default?
Nightly 81 No
Developer Edition 81 No
Beta 81 No
Release 81 No
Preference name html5.inert.enabled

Layout for input type="search"

Layout for input type="search" has been updated. This causes a search field to have a clear icon once someone starts typing in it, to match other browser implementations. (See bug 558594 for more details)

Release channel Version added Enabled by default?
Nightly 81 No
Developer Edition 81 No
Beta 81 No
Release 81 No
Preference name layout.forms.input-type-search.enabled

CSS

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. (See bug 1099557 for more details.)

Release channel Version added Enabled by default?
Nightly 43 Yes
Developer Edition 43 No
Beta 43 No
Release 43 No
Preference name layout.css.control-characters.enabled or layout.css.control-characters.visible

Property: initial-letter

The initial-letter CSS property is part of the CSS Inline Layout specification and allows you to specify how dropped, raised, and sunken initial letters are displayed. (See bug 1223880 for more details.)

Release channel Version added Enabled by default?
Nightly 50 No
Developer Edition 50 No
Beta 50 No
Release 50 No
Preference name layout.css.initial-letter.enabled

Property: aspect-ratio

The aspect-ratio CSS property is part of the CSS4 Sizing specification and allows you to create boxes which conform to an aspect ratio. (See bug 1639963 and bug 1646096 for more details.)

Release channel Version added Enabled by default?
Nightly 81 Yes
Developer Edition 81 No
Beta 81 No
Release 81 No
Preference name layout.css.aspect-ratio.enabled

Property: font-size-adjust two value syntax

The font-size-adjust CSS property has been updated in the CSS5 Fonts 5 specification to add an additional value defining the font metric to normalize. (See bug 1711479 for more details.)

Release channel Version added Enabled by default?
Nightly 91 Yes
Developer Edition 91 No
Beta 91 No
Release 91 No
Preference name layout.css.font-size-adjust.basis.enabled

Descriptor: size-adjust

The @font-face/size-adjust CSS descriptor is part of the CSS5 Fonts specification and defines a multiplier for glyph outlines and metrics associated with this font. This makes it easier to harmonize the designs of various fonts when rendered at the same font-size. (See bug 1698495 for more details.)

Release channel Version added Enabled by default?
Nightly 89 Yes
Developer Edition 89 No
Beta 89 No
Release 89 No
Preference name layout.css.size-adjust.enabled

Single numbers as aspect ratio in media queries

Support for using a single <number> as a <ratio> when specifying the aspect ratio for a media query. (See bug 1565562 for more details.)

Release channel Version added Enabled by default?
Nightly 70 No
Developer Edition 70 No
Beta 70 No
Release 70 No
Preference name layout.css.aspect-ratio-number.enabled

Property: backdrop-filter

The backdrop-filter property applies filter effects to the area behind an element. (See bug 1178765 for more details.)

Release channel Version added Enabled by default?
Nightly 70 No
Developer Edition 70 No
Beta 70 No
Release 70 No
Preference name layout.css.backdrop-filter.enabled

Value of the content property: none

The none value of the content property inhibits the children of the element from being rendered as children of this element, as if the element was empty. (See bug 1699964 for more details.)

Release channel Version added Enabled by default?
Nightly 91 No
Developer Edition 91 No
Beta 91 No
Release 91 No
Preference name layout.css.element-content-none.enabled

The fit-content() function for width and other sizing properties

The fit-content() function as it applies to width and other sizing properties. This function is already well-supported for CSS Grid Layout track sizing. (See bug 1312588 for more details.)

Release channel Version added Enabled by default?
Nightly 91 No
Developer Edition 91 No
Beta 91 No
Release 91 No
Preference name layout.css.fit-content-function.enabled

Grid: Masonry layout

Adds support for a masonry-style layout based on grid layout where one axis has a masonry layout and the other has a normal grid layout. This allows developers to easily create gallery style layouts like on Pinterest. See bug 1607954 for more details.

Release channel Version added Enabled by default?
Nightly 77 Yes
Developer Edition 77 No
Beta 77 No
Release 77 No
Preference name layout.css.grid-template-masonry-value.enabled

Media feature: prefers-contrast

The prefers-contrast media feature is used to detect whether the user has specified a preference for higher (or lower) contrast in the presentation of web content. Refer to bug 1506364 for more details.

Release channel Version added Enabled by default?
Nightly 80 No
Developer Edition 80 No
Beta 80 No
Release 80 No
Preference name

layout.css.prefers-contrast.enabled

Property: math-style

The math-style property indicates whether MathML equations should render with normal or compact height. (See bug 1665975 for more details.)

Release channel Version added Enabled by default?
Nightly 83 No
Developer Edition 83 No
Beta 83 No
Release 83 No
Preference name layout.css.math-style.enabled

JavaScript

APIs

Graphics: Canvas, WebGL, and WebGPU

Interface: OffscreenCanvas

The OffscreenCanvas interface provides a canvas that can be rendered offscreen. It is available in both the window and worker contexts. (See bug 1390089 for more details.)

Release channel Version added Enabled by default?
Nightly 44 No
Developer Edition 44 No
Beta 44 No
Release 44 No
Preference name 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.

Release channel Version added Enabled by default?
Nightly 30 No
Developer Edition 30 No
Beta 30 No
Release 30 No
Preference name canvas.hitregions.enabled

WebGL: Draft extensions

When this preference is enabled, any WebGL extensions currently in "draft" status which are being tested are enabled for use. Currently, there are no WebGL extensions being tested by Firefox.

WebGPU API

This new API provides low-level support for performing computation and graphics rendering using the Graphics Processing Unit (GPU) of the user's device or computer. The specification is still a work-in-progress. See bug 1602129 for our progress on this API.

Release channel Version added Enabled by default?
Nightly 73 No
Developer Edition 73 No
Beta 73 No
Release 73 No
Preference name dom.webgpu.enabled

HTML DOM API

HTMLMediaElement method: setSinkId()

HTMLMediaElement.setSinkId() allows you to set the sink ID of an audio output device on an HTMLMediaElement, thereby changing where the audio is being output. See bug 934425 for more details.

Release channel Version added Enabled by default?
Nightly 64 No
Developer Edition 64 No
Beta 64 No
Release 64 No
Preference name media.setsinkid.enabled

HTMLMediaElement properties: audioTracks and videoTracks

Enabling this feature adds the HTMLMediaElement.audioTracks and HTMLMediaElement.videoTracks properties to all HTML media elements. However, because Firefox doesn't currently support multiple audio and video tracks, the most common use cases for these properties don't work, so they're both disabled by default. See bug 1057233 for more details.

Release channel Version added Enabled by default?
Nightly 33 No
Developer Edition 33 No
Beta 33 No
Release 33 No
Preference name media.track.enabled

DOM

ClipboardItem

The ClipboardItem interface of the Clipboard API is now supported and Clipboard.write() accepts a sequence of clipboard items instead of the previously implemented dataTransfer object. It is available behind the pref dom.events.asyncClipboard.clipboardItem which was previously dom.events.asyncClipboard.dataTransfer. See bug 1619947 for more details.

Release channel Version added Enabled by default?
Nightly 87 No
Developer Edition 87 No
Beta 87 No
Release 87 No
Preference name dom.events.asyncClipboard.clipboardItem

ClipboardRead

The Clipboard.read() method of the Clipboard interface is also now available under the dom.events.asyncClipboard.read preference, when previously it was under dom.events.asyncClipboard.clipboardItem. (See (bug 1701512) for more details.)

Release channel Version added Enabled by default?
Nightly 90 No
Developer Edition 90 No
Beta 90 No
Release 90 No
Preference name dom.events.asyncClipboard.read

HTML Sanitizer API

The HTML Sanitizer API allow developers to take untrusted strings of HTML and sanitize them for safe insertion into a document’s DOM. Default elements within each configuration property (those to be sanitized) are still under consideration. Due to this the config parameter has not been implemented (see the constructor) for more information. See bug 1673309 for more details.

Release channel Version added Enabled by default?
Nightly 84 No
Developer Edition 84 No
Beta 84 No
Release 84 No
Preference name dom.security.sanitizer.enabled

Document property: autoplayPolicy

The document property autoplayPolicy returns a string indicating how the browser handles requests to automatically play media (either using the autoplay property on a media element or by attempting to trigger playback from JavaScript code. The spec for this API is still being written. The value changes over time depending on what the user is doing, their preferences, and the state of the browser in general. Potential values include allowed (autoplay is currently permitted), allowed-muted (autoplay is allowed but only with no—or muted—audio), and disallowed (autoplay is not allowed at this time). See bug 1506289 for more details.

Release channel Version added Enabled by default?
Nightly 66 No
Developer Edition 66 No
Beta 66 No
Release 66 No
Preference name dom.media.autoplay.autoplay-policy-api

GeometryUtils methods: convertPointFromNode(), convertRectFromNode(), and convertQuadFromNode()

The GeometryUtils methods convertPointFromNode(), convertRectFromNode(), and convertQuadFromNode() map the given point, rectangle, or quadruple from the Node on which they're called to another node. (See bug 918189 for more details.)

Release channel Version added Enabled by default?
Nightly 31 Yes
Developer Edition 31 No
Beta 31 No
Release 31 No
Preference name layout.css.getBoxQuads.enabled

GeometryUtils method: getBoxQuads()

The GeometryUtils method getBoxQuads() returns the CSS boxes for a Node relative to any other node or viewport. (See bug 917755 for more details.)

Release channel Version added Enabled by default?
Nightly 31 Yes
Developer Edition 31 No
Beta 31 No
Release 31 No
Preference name layout.css.convertFromNode.enable

Payment Request API

Primary payment handling

The Payment Request API provides support for handling web-based payments within web content or apps. Due to a bug that came up during testing of the user interface, we have decided to postpone shipping this API while discussions over potential changes to the API are held. Work is ongoing. (See bug 1318984 for more details.)

Release channel Version added Enabled by default?
Nightly 55 No
Developer Edition 55 No
Beta 55 No
Release 55 No
Preference name dom.payments.request.enabled and
dom.payments.request.supportedRegions

Basic Card API

Extends the Payment Request API with dictionaries that define data structures describing card payment types and payment responses. See BasicCardRequest and BasicCardResponse.

Release channel Version added Enabled by default?
Nightly 56 No
Developer Edition 56 No
Beta 56 No
Release 56 No
Preference name dom.payments.request.enabled and
dom.payments.request.supportedRegions

Visual Viewport API

The Visual Viewport API provides access to information describing the position of the visual viewport relative to the document as well as to the window's content area. It also supports events to monitor changes to this information. See bug 1550390 for more details. There in now a plan to ship this on desktop, you can track the state of that in bug 1551302.

Release channel Version added Enabled by default?
Nightly 63 No
Developer Edition 63 No
Beta 63 No
Release 63 Starting in Firefox 68, on Android only
Preference name dom.visualviewport.enabled

Constructable stylesheets

The addition of a constructor to the CSSStyleSheet interface as well as a variety of related changes makes it possible to directly create new stylesheets without having to add the sheet to the HTML. This makes it much easier to create reusable stylesheets for use with Shadow DOM. Our implementation is not yet complete; see bug 1520690 for more details.

Release channel Version added Enabled by default?
Nightly 73 No
Developer Edition 73 No
Beta 73 No
Release 73 No
Preference name layout.css.constructable-stylesheets.enabled

WebRTC and media

The following experimental features include those found in the WebRTC API, the Web Audio API, the Media Source Extensions API, the Encrypted Media Extensions API, and the Media Capture and Streams API.

Asynchronous SourceBuffer add and remove

This adds the promise-based methods appendBufferAsync() and removeAsync() for adding and removing media source buffers to the SourceBuffer interface. See bug 1280613 and bug 778617 for more information.

Release channel Version added Enabled by default?
Nightly 62 No
Developer Edition 62 No
Beta 62 No
Release 62 No
Preference name media.mediasource.experimental.enabled

AVIF (AV1 Image File format) support

With this feature enabled, Firefox supports the AV1 Image File (AVIF) format. This is a still image file format that leverages the capabilities of the AV1 video compression algorithms to reduce image size. (See bug 1443863 for more details.)

Release channel Version added Enabled by default?
Nightly 77 No
Developer Edition 77 No
Beta 77 No
Release 77 No
Preference name image.avif.enabled

AV1 support for Firefox on Android

This feature allows Firefox on Android to use AV1 format media. This feature is available in nightly builds effective in Firefox for Android 81 or later. It is enabled by default.

Release channel Version added Enabled by default?
Nightly 81 Yes
Developer Edition
Beta
Release
Preference name

JPEG XL support

With this feature enabled, Firefox supports JPEG XL images, see bug 1539075 for more details. This feature is available in nightly builds effective in Firefox 90 or later.

Release channel Version added Enabled by default?
Nightly 90 No
Developer Edition 90 No
Beta 90 No
Release
Preference name image.jxl.enabled

Security and privacy

Block plain text requests from Flash on encrypted pages

In order to help mitigate man-in-the-middle (MitM) attacks caused by Flash content on encrypted pages, a preference has been added to treat OBJECT_SUBREQUESTs as active content. See bug 1190623 for more details.

Release channel Version added Enabled by default?
Nightly 59 No
Developer Edition 59 No
Beta 59 No
Release 59 No
Preference name security.mixed_content.block_object_subrequest

Insecure page labeling

These two preferences add a "Not secure" text label in the address bar next to the traditional lock icon when a page is loaded insecurely (that is, using HTTP rather than HTTPS). See bug 1335970 for more details.

Release channel Version added Enabled by default?
Nightly 60 No
Developer Edition 60 No
Beta 60 No
Release 60 No
Preference name security.insecure_connection_text.enabled for normal browsing mode; security.insecure_connection_text.pbmode.enabled for private browsing mode

Upgrading mixed display content

When enabled, this preference causes Firefox to automatically upgrade requests for media content from HTTP to HTTPS on secure pages. The intent is to prevent mixed-content conditions in which some content is loaded securely while other content is insecure. If the upgrade fails (because the media's host doesn't support HTTPS), the media is not loaded. (See bug 1435733 for more details.)

This also changes the console warning; if the upgrade succeeds, the message indicates that the request was upgraded, instead of showing a warning.

Release channel Version added Enabled by default?
Nightly 84 Yes
Developer Edition 60 No
Beta 60 No
Release 60 No
Preference name security.mixed_content.upgrade_display_content

Feature policy

Feature Policy allows web developers to selectively enable, disable, and modify the behavior of certain features and APIs in the browser. It is similar to CSP but controls features instead of security behavior.

Note

The Feature-Policy header has now been renamed to Permissions-Policy in the spec, and this article will eventually be updated to reflect that change.

Release channel Version added Enabled by default?
Nightly 65 No
Developer Edition 65 No
Beta 65 No
Release 65 No
Preference name dom.security.featurePolicy.header.enabled

Developer tools

Mozilla's developer tools are constantly evolving. We experiment with new ideas, add new features, and test them on the Nightly and Developer Edition channels before letting them go through to beta and release. The features below are the current crop of experimental developer tool features.

Execution context selector

This feature displays a button on the console's command line that lets you change the context in which the expression you enter will be executed. (See bug 1605154 and bug 1605153 for more details.)

Release channel Version added Enabled by default?
Nightly 75 No
Developer Edition 75 No
Beta 75 No
Release 75 No
Preference name devtools.webconsole.input.context

Mobile gesture support in Responsive Design Mode

Mouse gestures are used to simulate mobile gestures like swiping/scrolling, double-tap and pinch-zooming and long-press to select/open the context menu. (See bug 1621781, bug 1245183, and bug 1401304 for more details.)

Release channel Version added Enabled by default?
Nightly 76[1] Yes
Developer Edition 76[1] Yes
Beta 76[1] Yes
Release 76[1] No
Preference name n/a

[1] Support for zooming using the double-tap gesture was added in Firefox 76. The other gestures were added for Firefox 79.

Server-sent events in Network Monitor

The Network Monitor displays information for server-sent events. (See bug 1405706 for more details.)

Release channel Version added Enabled by default?
Nightly 80 Yes
Developer Edition 80 Yes
Beta 80 No
Release 80 No
Preference name devtools.netmonitor.features.serverSentEvents

CSS browser compatibility tooltips

The CSS Rules View can display browser compatibility tooltips next to any CSS properties that have known issues. For more information see: Examine and edit HTML > Browser Compat Warnings.

Release channel Version added Enabled by default?
Nightly 81 No
Developer Edition 81 No
Beta 81 No
Release 81 No
Preference name devtools.inspector.ruleview.inline-compatibility-warning.enabled

UI

Desktop zooming

This feature lets you enable smooth pinch zooming on desktop computers without requiring layout reflows, just like mobile devices do. (See bug 1245183 and bug 1620055 for more details.)

Release channel Version added Enabled by default?
Nightly 42 Yes
Developer Edition 42 No
Beta 42 No
Release 42 No
Preference name apz.allow_zooming and (on Windows) apz.windows.use_direct_manipulation

See also