Async functions make it easy to write code which needs to "block" on certain asynchronous events JavaScript. Async/await does this by providing a simpler and more ergonomic way to use Promises. To block on a value, use the 'await' keyword. Async/await can be implemented based on a desugaring to generators, as described in the following design doc: https://docs.google.com/document/d/1K38ct2dsxG_9OfmgErvFld4MPDC4Wkr8tPuqmSWu_3Y/edit?usp=sharing

Allows you to construct Blobs directly (var blob = new Blob(["1234"], {type: 'text/plain'})). Blob() constructor also can take ArrayBufferView directly rather than constructing a blob with ArrayBuffer.

The Cache API consists of additional ServiceWorker APIs which allow authors to fully and conveniently manage their content caches for offline use. An origin can have multiple, named Cache objects, whose contents are entirely under the control of Service Worker scripts.

Allows servers to identify resources that will not be updated during their freshness lifetime, thus, ensuring that a client never needs to revalidate a cached fresh resource to be certain it has not been modified.

An evolution of the Content Security Policy specification, allowing developers to create a whitelist of sources of trusted content, and instructing the browser to only execute or render resources from those sources.

In Development in Microsoft Edgeon Desktop, Mixed Reality, Mobile and Xbox

Deprecated in Chrome

Not Supported in Firefox

Not Supported in Internet Explorer 11

Not Supported in Opera

Shipped in Safari

CSP Level 3 strict-dynamic source expressionUnder Consideration

Allows script loaded via a CSP2 nonce-based or hash-based whitelist to load other script, enabling developers and site administrators to reduce their reliance on whitelists and to tighten CSP implementations.

Roadmap Priority: Medium — Development is likely for a future release.

Allows a server to instruct the user agent to upgrade insecure requests via a Content-Security-Policy header. This directive is meant to make it even easier for a site administrator to move towards using all secure transports, while avoiding having to make massive updates to URLs in their web applications.

The @viewport rule, in combination with media queries, enabled web developers to optimize the layout of sites and apps for different devices with minimal effort. It generalizes the viewport meta tag to CSS, while being much simpler to understand and without the quirks that exists with the meta tag.

Extends the CSS sizing properties with keywords that represent content-based "intrinsic" sizes and context-based "extrinsic" sizes, allowing CSS to more easily describe boxes that fit their content or fit into a particular layout context.

Roadmap Priority: Low — We are still evaluating this technology. There may be significant spec stabilization, foundational work, or additional community input required before we can begin development.

Enables rich, customizable, and performant scrolling experiences like pagination of carousels by using snap points that enforce the scroll offsets that a scroll container may end at after a scrolling operation has completed.

If the cascaded value of a property is the ‘‘unset’#’ keyword, then if it is an inherited property, this is treated as ‘inherit’, and if it is not, this is treated as ‘initial’. This keyword effectively erases all declared values occurring earlier in the cascade, correctly inheriting or not as appropriate for the property (or all longhands of a shorthand).

Iterates over iterable objects (including arrays, array-like objects, iterators and generators), invoking a custom iteration hook with statements to be executed for the value of each distinct property.

FIDO Universal Second Factor API allows online services to augment the security of their existing password infrastructure by adding a strong second factor to user login via a USB or NFC device. Also see FIDO 2.0 Web APIs, a newer specification that supports additional authentication methods, such as biometrics, and can replace passwords altogether as well as provide U2F functionality.

Not currently planned in Microsoft Edgeon Desktop, Mixed Reality, Mobile and Xbox

Not Supported in Chrome

Not Supported in Firefox

Not Supported in Internet Explorer 11

Shipped in Opera

Not Supported in Safari

FileReaderSupported Build Number 10240+

The FileReader object lets web applications asynchronously read the contents of files (or raw data buffers) stored on the user's computer, using File or Blob objects to specify the file or data to read.

Programmatically instruct content on the page to be presented in the browser's full screen (kiosk) mode. Starting in 14.14393, this is prefixed in Edge due to compatibility issues. We are working with other browser vendors to coordinate switching to an unprefixed implementation in the future.

HTTP/2 allows a server to pre-emptively send (or "push") responses (along with corresponding "promised" requests) to a client in association with a previous client-initiated request. This can be useful when the server knows the client will need to have those responses available in order to fully process the response to the original request.

Header for proactive content negotiation; just as the Accept header allowed clients to indicate what formats they prefer, Client Hints allow clients to indicate a list of device and agent specific preferences.

A form element for a key pair generator control. Support here indicates UI for picking keys and some transport to submit them. However, significant interoperability issues exist with the DOM interfaces and protocols for this feature.

Enable websites to customize media metadata so they can control the notification and lock screen UI. Also, allow them to control media in the page from outside the page, such as platform UIs and media keys.

An API for allowing websites to create a floating video window always on top of other windows so that users may continue consuming media while they interact with other content sites, or applications on their device.

The Platform for Privacy Preferences Project (P3P) enables web sites to express their privacy practices in a standard format allowing user agents to automate decision-making based on these practices when appropriate.

Gives access to raw mouse movement, locks the target of mouse events to a single element, eliminates limits of how far mouse movement can go in a single direction, and removes the cursor from view. Obvious use cases are for first person or real time strategy games.

position: sticky is a new way to position elements and is conceptually similar to position: fixed. The difference is that a stickily positioned element behaves like position: relative within its parent, until a given offset threshold is met.

A link relation type used to indicate an origin that will be used to fetch required resources, so the browser can open a connection early for resouces that will be required later in the loading process.

Roadmap Priority: Medium — Development is likely for a future release.

Certificate public key pinning is a mechanism which allows specifying a key that must be present in the certificate chain associated with a domain name. HTTP Public Key Pinning (HPKP) is one way of doing certificate public key pinning. In this method, site owner defines pin rules for his domain name via HTTP header. This mechanism assumes that user has had a first clean connection to the site.

Not currently planned in Microsoft Edgeon Desktop, Mixed Reality, Mobile and Xbox

Shipped in Chrome

Not Supported in Firefox

Not Supported in Internet Explorer 11

In Development in Opera

Not Supported in Safari

Reflect (ES6)Supported Build Number 10240+

Provides methods for use in operations that are intercepted. Reflect methods are often used with proxies because they allow you to delegate to default behavior without implementing the default behavior in your code.

Offload animation repainting to browser for optimized performance. You should call this method whenever you're ready to update your animation onscreen. This will request that your animation function be called before the browser performs the next repaint.

As the web enables more powerful apps, features which enable those apps should only be enabled in contexts which meet a specific security level. This also exposes the APIs that identify if you’re in a secure context.

ServiceWorkers (formerly Navigation Controllers) are a new system that provides event-driven scripts that run independent of web pages. They are similar to SharedWorkers except that their lifetime is different and they have access to domain-wide events such as network fetches.

Not currently planned in Microsoft Edgeon Desktop, Mixed Reality, Mobile and Xbox

Shipped in Chrome

Shipped in Firefox

Not Supported in Internet Explorer 11

Shipped in Opera

Not Supported in Safari

showModalDialogDeprecated

The global showModalDialog() method displays a modal dialog box containing a specified HTML document. This feature has an incredibly high cost in terms of code complexity since it requires us to run an event loop on top of an arbitrary JavaScript stack. It also complicates the web platform by making task dispatch reentrant and hard to reason about.

Subresource Integrity defines a mechanism by which user agents may verify that a fetched resource has been delivered without unexpected manipulation. In a nutshell, metadata inlined into HTML elements allows the browser to determine whether the resource that was downloaded matches the resource the page's author expected to download.

The latest version of the Transport Layer Security (TLS) protocol. Allows for data/message confidentiality, and message authentication codes for message integrity and as a by-product message authentication.

Touchscreen input API, originally introduced by Apple on iOS. Support is currently limited to only devices with a touchscreen (can be overridden in about:flags). See Pointer Events for touch, pen, and mouse input across all device types.