Chrome Release Summary

Chrome version: 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 90

Enabled (18) | Origin Trial (0) | Behind a flag (0) | Deprecated (0) | Removed (2)

Enabled by default in 90

This release of Chrome had 18 new features.

AV1 Encoder

This feature ships an AV1 encoder in Chrome desktop, specifically optimized for video conferencing with WebRTC integration. #

This feature was specified in this Spec.

Resources

Docs: https://bugs.chromium.org/p/webrtc/issues/detail?id=11404

No linked samples

AbortSignal in addEventListener

This feature adds a new AbortSignal option, named "signal", to the options parameter of addEventListener(). The "signal" option must first be created by an AbortController by accessing the "signal" property on an AbortController instance. Once the signal is passed in to addEventListener, calling "abort()" on the AbortController will remove the event listener added with addEventListener. For more context, see https://github.com/whatwg/dom/issues/911. #

This feature was specified in this Spec.

AbstractRange superclass

The bits shared between StaticRange and Range objects are put on a shared superclass named AbstractRange. #

This feature was specified in this Spec.

Add support for CSS properties "overflow: clip" and "overflow-clip-margin"

Adds two CSS features. The 'clip' value results in a box’s content being clipped to the box's overflow clip edge. In addition, no scrolling interface is provided, and the content can not be scrolled by the user or programmatically. The overflow-clip-margin property enables specifying how far outside the bounds an element is allowed to paint before being clipped. #

This feature was specified in this Spec.

Resources

Docs: https://drafts.csswg.org/css-overflow-3/#valdef-overflow-cliphttps://drafts.csswg.org/css-overflow-3/#propdef-overflow-clip-margin

No linked samples

Block HTTP port 554

Connections to HTTP, HTTPS or FTP servers on port 554 will fail. This is a mitigation for the NAT Slipstream 2.0 attack. It helps developers by keeping the web platform safe for users. Chrome briefly blocked port 554 before, but it was unblocked due to complaints from enterprise users. However, we have now achieved rough consensus at https://github.com/whatwg/fetch/pull/1148 to block 554. #

This feature was specified in this Spec.

CSS aspect-ratio interpolation

The aspect-ratio property allows automatically computing the other dimension if only one of width and height is specified on any element. This property was originally launched as non-interpolable (meaning that it would snap to the target value) when animated. This feature provides smooth interpolation from one aspect ratio to another. #

This feature was specified in this Spec.

Custom state pseudo class

The feature lets custom elements expose their states via the :state() CSS pseudo class. #

This feature was specified in this Spec.

Resources

Docs: N/A

No linked samples

Declarative Shadow DOM

A declarative API to allow the creation of #shadowroot's using only HTML and no Javascript. Blog post: https://web.dev/declarative-shadow-dom/ #

This feature was specified in this Spec.

Resources

Docs: https://github.com/mfreed7/declarative-shadow-dom/blob/master/README.md

Samples: https://jsbin.com/huquloz

Protect `application/x-protobuffer` via Cross-Origin-Read-Blocking

Protect `application/x-protobuffer` from speculative execution attacks by adding it to the list of never sniffed MIME types used by Cross-Origin-Read-Blocking. `application/x-protobuf` is already protected as a never sniffed mime type. `application/x-protobuffer` is another commonly used MIME type that is defined as an "ALT_CONTENT_TYPE" by the protobuf library. See the original Intent to Implement and Ship notice for CORB here: https://groups.google.com/a/chromium.org/g/blink-dev/c/hnA #

This feature was specified in this Spec.

RegExp match indices

This proposal adds a new `.indices` property to the result array object returned by RegExp.prototype.exec and String.prototype.match. This property is an indices array containing a pair of start and end indices for each captured substring. As producing this array is expensive, the `.indices` property is only present when the /d flag is passed. #

This feature was specified in this Spec.

Seeking past the end of a file in the File System Access API

Rather than rejecting when trying to write past the end of a file, require extending a file with some number of 0x00 (NUL) bytes instead. This enables creating sparse files and greatly simplifies saving content to a file when the data to be written is received out of order. #

This feature was specified in this Spec.

StaticRange constructor

Currently, Range is the only constructible range type available to web authors. However, Range objects are "live" and maintaining them can be expensive. For every tree change, all affected Range objects need to be updated. StaticRange objects are not live and represent a lightweight range type that is not subject to the same maintenance cost as Range. By making StaticRange constructible, we will allow web authors to use them for ranges that do not need to be updated on every DOM tree change. #

This feature was specified in this Spec.

Support specifying width/height on elements for

This feature allows specifying a width and height on <source> elements that are used in <picture>, which allows the image to compute an aspect ratio from these attributes, e.g.: <picture> <source srcset="image.jpg" width="640" height="480"> <img style="width: 100%; height: auto;"> </picture> In this example, the width of the image will adjust to the size of its container and the height will follow the aspect ratio, even before the image is loaded (avoiding a content shift). #

This feature was specified in this Spec.

URL protocol setter: New restrictions for file URLs

Aligns behavior with the standard in edge cases when changing the URL protocol to or from "file". Previously, attempting to change the protocol of a URL with credentials or a port to "file" would lead to an invalid URL. Similarly, attempting to change a URL with no host from "file" to "http" would lead to an invalid URL. Now the invalid change will be ignored for consistency with other browsers. This affects the "protocol" attribute on the URL API, location, and <a> and <area> elements. #

This feature was specified in this Spec.

Use :focus-visible in the default UA style sheet

Change the Chromium default UA style sheet to use :focus-visible instead of :focus pseudo-class to paint the focus indicator (outline). This will avoid that elements show a focus indicator (because they're focused and match :focus) while they don't match :focus-visible. #

This feature was specified in this Spec.

Resources

Docs: https://developer.mozilla.org/en-US/docs/Web/CSS/:focus-visible

Samples: https://developer.mozilla.org/en-US/docs/Web/CSS/:focus-visible

WebAudio: OscillatorOptions.periodicWave is not nullable

It is no longer possible to set the periodicWave member of OscillatorOptions to null. The WebAudio spec doesn't allow this, so we're aligning Chrome with the spec and also Firefox, which has implemented this correctly for 4 years. #

This feature was specified in this Spec.

WebXR AR Lighting Estimation

Allows sites to query for estimates of the environmental lighting conditions within WebXr sessions. This exposes both spherical harmonics representing the ambient lighting, as well as a cubemap texture representing "reflections". #

This feature was specified in this Spec.

Resources

Docs: https://github.com/immersive-web/lighting-estimation/blob/master/lighting-estimation-explainer.md

Samples: https://storage.googleapis.com/chromium-webxr-test/latest.html?target=proposals/lighting-estimation.html

WebXR Depth API

The Depth API is an extension to WebXR Device API that allows applications access to depth buffer information that conveys information about the user's environment, with primary focus on Augmented Reality scenarios. #

This feature was specified in this Spec.

Resources

Docs: https://github.com/bialpio/webxr-depth-api/blob/master/explainer.md

Samples: https://storage.googleapis.com/chromium-webxr-test/latest.html?target=proposals/phone-ar-depth.htmlhttps://storage.googleapis.com/chromium-webxr-test/latest.html?target=proposals/phone-ar-depth-gpu.html

Origin Trials in-progress in 90

This release of Chrome had 0 new origin trials.

Flagged features in 90

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

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 90

This release of Chrome had 0 features deprecated.

Removed features in 90

This release of Chrome had 2 features removed.

Remove Content Security Policy directive 'plugin-types'

The directive 'plugin-types' allows developer to restrict which types of plugin can be loaded via <embed> or <object> html elements. The main point was to allow developer to block Flash in their pages. But Flash support has been discontinued, so there is not much point in this anymore. #

This feature was specified in this Spec.

Remove WebRTC RTP data channels

Removes support for the non-standard RTP data channels in WebRTC. Users should use the standard SCTP-based data channels instead. #

This feature was specified in this Spec.

Resources

Docs: N/A

No linked samples