Chrome Release Summary

Chrome version: 151, 150, 149, 148, 147, 146, 145, 144, 143, 142, 141, 140, 139, 138, 137, 136, 135, 134, 133, 132, 131, 130, 129, 128, 127, 126, 125, 124, 123, 122, 121, 120, 119, 118, 117, 116, 115, 114, 113, 112, 111, 110, 109, 108, 107, 106, 105, 104, 103, 102, 101, 100, 99, 98, 97, 96, 95, 94, 93, 92, 91, 90, 89, 88, 87, 86, 85, 84, 83, 82, 81, 80, 79, 78, 77, 76, 75, 74, 73, 72, 71, 70, 69, 68, 67, 66, 65, 64, 63, 62, 61, 60, 59, 58, 57, 56, 55, 54, 53, 52, 51, 50, 49, 48, 47, 46, 45, 44, 43, 42, 41, 40, 39, 38, 37, 36, 35, 34, 33, 32, 31, 30, 29, 28, 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0

Chrome 86

Enabled (22) | Origin Trial (8) | Behind a flag (3) | Deprecated (0) | Removed (1)

Enabled by default in 86

This release of Chrome had 22 new features.

A well-known URL for changing passwords

Websites can set a well-known URL for changing password `/.well-known/change-password` to be redirected to its change password page to help users change their password quickly. Chrome leverages this URL to help users change their passwords when it detects a weak password in the user's password storage. #

This feature was specified in this Spec.

Altitude/Azimuth for PointerEvents v3

Adds Altitude/Azimuth angles to PointerEvents. Adds TiltX/TiltY to Altitude/Azimuth transformation and Altitude/Azimuth to TiltX/TiltY transformation depending which pair is available from the device. #

Resources

Docs: https://docs.google.com/document/d/1BkJDlHJvR6jndtJys7IYuqwITgVi6P9iOnfA0z5Cu04/edit?usp=sharing

No linked samples

Autoupgrade Image Mixed Content

This feature will autoupgrade optionally-blockable mixed content (HTTP content in HTTPS sites) by rewriting the URL to HTTPS, without a fallback to HTTP if the content is not available over HTTPS. Image mixed content autoupgrades by default are targeted for M86. Audio/Video mixed content autoupgrades are separately tracked in https://www.chromestatus.com/feature/5557268741357568 #

Resources

Docs: https://docs.google.com/document/d/1dp-kuN25wnEbMPNWBxM8LvOjyeydWpXPklNnGcsWK1o/edit

No linked samples

Back-forward cache on Android

Creates a cache for pages which allows for instant navigations to previously-visited pages after cross-site navigations. #

This feature was specified in this Spec.

Resources

Docs: https://docs.google.com/document/d/1mrgp7XzR16rd1xqFYOJgC1IP0NPLZFaRU5Ukj3-TlLwhttps://web.dev/bfcache/https://github.com/rakina/bfcache-explainer#what-is-bfcache

No linked samples

CSS ::marker pseudo-element

The ::marker pseudo-element represents the automatically generated marker box of a list item. Like ::before and ::after, ::marker is a tree-abiding pseudo-element, so it always fit within the box tree. But unlike ::before and ::after, currently it only accepts a small subset of safe properties, because the marker box layout is mostly undefined. Note this intent only covers ::marker, not ::before::marker nor ::after::marker (see crbug.com/1097992). #

This feature was specified in this Spec.

Resources

Docs: https://drafts.csswg.org/css-pseudo-4/#marker-pseudohttps://drafts.csswg.org/css-lists-3/#marker-pseudo

No linked samples

CSS Selectors 4 Pseudo-Class :focus-visible

The :focus-visible pseudo-class makes it easier for developers to create focus styles that appropriately match the user's input modality. It is designed to help prevent a common anti-pattern where developers remove focus outlines for mouse users, and inadvertently make their sites inaccessible to keyboard users. #

This feature was specified in this Spec.

Change MediaSettingsRange & PhotoCapabilities interfaces to dictionaries

Aggregates and logs media settings ranges and photo capabilities in JSON. Changing MediaSettingsRange and PhotoCapabilities interfaces to dictionaries will improve developer ergonomics by allowing web developers to easily log and aggregate exposureCompensation, exposureTime, colorTemperature, iso, brightness, contrast, saturation, sharpness, focusDistance, pan, tilt, zoom, and photo capabilities (redEyeReduction, imageHeight, imageWidth, fillLightMode). #

This feature was specified in this Spec.

Resources

Docs: N/A

No linked samples

Document-Policy header

Document Policy restricts the surface area of the web platform on a per-document basis, similar to iframe sandboxing, but more flexibly. It can do things like: - Restrict the use of poorly-performing images - Disable slow synchronous JS APIs - Configure iframe, image, or script loading styles - Restrict overall document sizes or network usage - Restrict patterns which cause page re-layout This is just the HTTP header used to set a policy on a document, separate from any features. #

This feature was specified in this Spec.

Resources

Docs: https://w3c.github.io/webappsec-permissions-policy/document-policy.htmlhttps://github.com/w3c/webappsec-permissions-policy/blob/master/document-policy-explainer.md

No linked samples

Document-Policy: force-load-at-top

ForceLoadAtTop provides an opt-out for Scroll To Text (and other load-on-scroll behaviors as they are also affected by the issues raised in https://github.com/WICG/scroll-to-text-fragment/issues/76) for privacy sensitive sites, as discussed in https://github.com/WICG/scroll-to-text-fragment/issues/80. The ForceLoadAtTop feature allows sites to indicate that they should always be loaded at the top of the page, blocking any scroll-on-load behaviors including text fragments, element fragments, and #

This feature was specified in this Spec.

Resources

Docs: https://github.com/WICG/scroll-to-text-fragment#opting-out

No linked samples

FetchEvent.handled

A FetchEvent dispatched to a service worker is in a loading pipeline, which is performance sensitive. The new FetchEvent.handled property returns a promise that resolves when a response is returned from a service worker to its client. This enables a service worker to delay tasks that can only run after responses are complete. #

This feature was specified in this Spec.

Resources

Docs: https://github.com/w3c/ServiceWorker/issues/1397

Samples: https://github.com/w3c/ServiceWorker/issues/1397#issuecomment-479036562

File System Access

This API enables developers to build powerful apps that interact with other (non-Web) apps on the user’s device via the device’s file system. After a user grants a web app access, this API allows the app to read or save changes directly to files and folders selected by the user. Beyond reading and writing files, this API provides the ability to open a directory and enumerate its contents, as well as store file and directory handles in IndexedDB to later regain access to the same content. #

This feature was specified in this Spec.

Resources

Docs: https://web.dev/file-system-access/https://web.dev/browser-nativefs/

Samples: https://github.com/GoogleChromeLabs/text-editorhttps://googlechromelabs.github.io/text-editor/

HTMLMediaElement.preservesPitch

Adds a property to determine whether the pitch of an audio or video element should be preserved when adjusting the playback rate. #

This feature was specified in this Spec.

Resources

Docs: N/A

No linked samples

Imperative Shadow DOM Distribution API

Web developers can specify node-to-slot assignments imperatively in Shadow DOM slotting. Please see the spec discussion [1] and the explainer [2]. - [1] https://github.com/whatwg/html/issues/3534 - [2] https://github.com/w3c/webcomponents/blob/gh-pages/proposals/Imperative-Shadow-DOM-Distribution-API.md #

This feature was specified in this Spec.

Resources

Docs: https://github.com/w3c/webcomponents/blob/gh-pages/proposals/Imperative-Shadow-DOM-Distribution-API.md

No linked samples

Intensive throttling of Javascript timer wake ups

In a Window whose top Window has been hidden for 5 minutes and which is not opted out from intensive wake up throttling, a timer task with non-zero timeout can run: - on a 1-second aligned wake up if: - the timer task's nesting level is < 5, or, -the Window is same-origin with the top Window and at least 1 minute has elapsed since the last timer task with nesting level >= 5 has run in any Window in the tree that is same-origin with the top Window - on a 1-minute aligned wake up, otherwise. #

This feature was specified in this Spec.

Resources

Docs: https://docs.google.com/document/d/11FhKHRcABGS4SWPFGwoL6g0ALMqrFKapCk5ZTKKupEk/edit?usp=sharing

No linked samples

ParentNode.replaceChildren() Method

Replaces all children of the ParentNode with the passed-in nodes. #

This feature was specified in this Spec.

Resources

Docs: https://github.com/whatwg/dom/issues/478

No linked samples

Percent-encode U+007F DELETE when parsing URLs

When parsing URLs, encode the character U+007F DELETE as "%7F". This improves readability, reduces spoofing risk, makes Chrome's behavior more consistent, interoperable with other browsers and compliant with the specification. #

This feature was specified in this Spec.

Safelist distributed web schemes for registerProtocolHandler()

Extend the list of URL schemes that can be overridden via registerProtocolHandler() to include "cabal", "dat", "did", "dweb", "ethereum", "hyper", "ipfs", "ipns", and "ssb". #

This feature was specified in this Spec.

Resources

Docs: https://html.spec.whatwg.org/multipage/system-state.html#custom-handlers

No linked samples

Third-party origin trials

Origin trials can now be enabled by embedded scripts, based on tokens matching their third-party origin. Previously, it was possible for scripts to enable origin trials, but only when the token matches the origin of the containing document. #

Resources

Docs: https://github.com/GoogleChrome/OriginTrials/blob/gh-pages/explainer.mdhttps://docs.google.com/document/d/1xALH9W7rWmX0FpjudhDeS2TNTEOXuPn4Tlc9VmuPdHA/edithttps://web.dev/third-party-origin-trials

No linked samples

WebRTC Insertable Streams

This API enables the insertion of user-defined processing steps in the encoding and decoding of a WebRTC MediaStreamTrack. #

This feature was specified in this Spec.

Resources

Docs: https://github.com/w3c/webrtc-insertable-streams

No linked samples

display:inline-grid/grid/inline-flex/flex for <fieldset>

The FIELDSET element will support 'inline-grid', 'grid', 'inline-flex' and 'flex' keywords for CSS 'display' property. #

This feature was specified in this Spec.

document.fragmentDirective

This change moves window.location.fragmentDirective to document.fragmentDirective which seems like a more appropriate and safer place. It is a small change to the text-fragments feature in https://chromestatus.com/feature/4733392803332096. Text-fragments introduced an empty object at window.location.fragmentDirective as a means to feature detect the newly added text-fragment capability. window.location turns out to be a bad place for this functionality, see https://crbug.com/1057795. #

This feature was specified in this Spec.

Resources

Docs: https://github.com/WICG/scroll-to-text-fragment/

No linked samples

text/html support for async clipboard api

The async clipboard api currently does not support the text/html format. This feature adds support for copying and pasting html from the clipboard. The HTML is sanitized when it is read and written to the clipboard. #

This feature was specified in this Spec.

Resources

Docs: https://docs.google.com/document/d/1tzjfckWUKAAxEbKcUjg21uz7LFDMQ7ZDzfTTj3Lp93Y/

Samples: https://hyper-silly-cross.glitch.me/

Origin Trials in-progress in 86

This release of Chrome had 8 new origin trials.

Back-forward cache for same-site navigations on Android

Creates a cache for pages which allows for instant navigations to previously-visited pages after all eligible navigations on Android, both cross-site and same-site. This enhances the original version of back-forward cache, which only caches pages on cross-site navigations: https://chromestatus.com/feature/5815270035685376. This enhancement shipped by default in M95. #

This feature was specified in this Spec.

Resources

Docs: https://docs.google.com/document/d/1mrgp7XzR16rd1xqFYOJgC1IP0NPLZFaRU5Ukj3-TlLwhttps://web.dev/bfcache/https://github.com/rakina/bfcache-explainer#what-is-bfcache

No linked samples

Back-forward cache on Android

Creates a cache for pages which allows for instant navigations to previously-visited pages after cross-site navigations. #

This feature was specified in this Spec.

Resources

Docs: https://docs.google.com/document/d/1mrgp7XzR16rd1xqFYOJgC1IP0NPLZFaRU5Ukj3-TlLwhttps://web.dev/bfcache/https://github.com/rakina/bfcache-explainer#what-is-bfcache

No linked samples

Cross-origin opener policy reporting API

Adds a reporting API to help developers deploy cross-origin opener policy. #

This feature was specified in this Spec.

Resources

Docs: https://github.com/camillelamy/explainers/blob/master/coop_reporting.md

No linked samples

Hidden=until-found HTML attribute and beforematch event

This feature extends the existing hidden attribute with a new value, "until-found", which makes the element searchable by find-in-page, scroll to text fragment, and fragment navigation. When these search/navigation features want to scroll to something inside a hidden=until-found element, the browser removes the hidden attribute from the element and fires the "beforematch" event on it so that the newly revealed content can be scrolled into view. #

This feature was specified in this Spec.

Resources

Docs: https://github.com/WICG/display-locking/blob/master/explainers/hidden-content-explainer.md

No linked samples

Notification Triggers

Adds the showTrigger property to the Notification interface to enable showing a notification at a specific time in the future, even if the device is offline. Websites can use this to schedule notifications without using push messages. #

Resources

Docs: https://web.dev/notification-triggers/

No linked samples

Scheduling APIs: Prioritized scheduler.postTask

Userspace tasks often have varying degrees of importance (related to user experience), but the Platform lacks a unified API to schedule prioritized work. The postTask API allows developers to schedule tasks (javascript callbacks) with a native browser scheduler at 3 levels of priority: user-blocking, user-visible, and background. It also exposes a TaskController, which can be used to dynamically cancel tasks and change their priority. #

This feature was specified in this Spec.

Resources

Docs: https://docs.google.com/document/d/1Apz-SD-pOagGeyWxIpgOi0ARNkrCrELhPdm18eeu9tw/edit?usp=sharing

Samples: https://github.com/WICG/scheduling-apis/blob/main/explainers/prioritized-post-task.mdhttps://github.com/WICG/main-thread-scheduling/tree/master/sample-code

WebCodecs

Provides efficient, low-level access to built-in (software and hardware) media encoders and decoders. #

This feature was specified in this Spec.

Resources

Docs: https://github.com/WICG/web-codecs/blob/master/explainer.md

No linked samples

WebHID (Human Interface Device)

Enables web applications to interact with human interface devices (HIDs) other than the standard supported devices (mice, keyboards, touchscreens, and gamepads). However, there are many other HID devices that are currently inaccessible to the web. This API allows web applications to request access to these devices, send and receive HID reports, and retrieve information about the report descriptor. #

This feature was specified in this Spec.

Resources

Docs: https://web.dev/hid/https://web.dev/hid-examples/

No linked samples

Flagged features in 86

This release of Chrome had 3 are available behind a flag.

Restrict "private network requests" for subresources from public websites to secure contexts.

Requires that private network requests for subresources from public websites may only be initiated from a secure context. Examples include internet to intranet requests and internet to loopback requests. This is a first step towards fully implementing Private Network Access: https://wicg.github.io/private-network-access/ #

This feature was specified in this Spec.

Resources

Docs: https://docs.google.com/document/d/1x1a1fQLOrcWogK3tpFBgQZQ5ZjcONTvD0IqqXkgrg5I/edit#heading=h.7nki9mck5t64

No linked samples

Restrict Gamepad usage

Requires a secure context for the Gamepad API and adds a feature policy to allow restricting gamepad use. #

This feature was specified in this Spec.

Resources

Docs: https://docs.google.com/document/d/1Dj_7EpT9ttnI96BuNXtLEJkHEq0orHgoLeYaOBz9xsU/edit?usp=sharing

No linked samples

WebXR Raw Camera Access

Allows applications authored against the WebXR Device API to access pose-synchronized camera image textures from within WebXR sessions. #

This feature was specified in this Spec.

Resources

Docs: https://github.com/immersive-web/raw-camera-access/blob/main/explainer.mdhttps://immersive-web.github.io/raw-camera-access

Samples: https://storage.googleapis.com/chromium-webxr-test/latest.html?target=proposals/camera-access-barebones.html

Deprecations and Removals

Deprecation policy

To keep the platform healthy, we sometimes remove APIs from the Web Platform which have run their course. There can be many reasons why we would remove an API, such as:

Some of these changes will have an effect on a very small number of sites. To mitigate issues ahead of time, we try to give developers advanced notice so they can make the required changes to keep their sites running.

Chrome currently has a process for deprecations and removals of API's, essentially:

You can find a list of all deprecated features on chromestatus.com using the deprecated filter and removed features by applying the removed filter. We will also try to summarize some of the changes, reasoning, and migration paths in these posts.

Deprecated features in 86

This release of Chrome had 0 features deprecated.

Removed features in 86

This release of Chrome had 1 features removed.

EME persistent-usage-record session

Support a new MediaKeySessionType “persistent-usage-record session”, for which the license and key(s) are not persisted and for which a record of key usage is persisted when the keys available within the session are destroyed. #

This feature was specified in this Spec.

Resources

Docs: https://github.com/w3c/encrypted-media/pull/462

No linked samples