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 112

Enabled (12) | Origin Trial (3) | Behind a flag (7) | Deprecated (0) | Removed (0)

Enabled by default in 112

This release of Chrome had 12 new features.

“Reload this page” infobar no longer shown if top-level frame is observing permission changes

Suppresses the "Reload this page" infobar if the top-level frame is subscribed to the `PermissionStatus.onchange` event, which is taken as an indication that the application wishes to dynamically react to camera/microphone permission changes initiated through the page info dialog. Regardless of the presence of the event listener, the pre-existing behavior remains unchanged that media streams are terminated immediately once the permission is revoked. #

Add containerName and containerQuery, update conditionText

Updates the CSSContainerRule interface to match the specs. For @container Implements containerName and containerQuery, updates conditionText to contain both (if @container with containerName exists). #

This feature was specified in this Spec.

Add optional submitter parameter to FormData constructor

Allow passing a submit button to the FormData constructor. If the button has a name or is an image button, it will contribute to the form data set. This makes it possible to create a FormData object with the same data set as a vanilla form submission triggered by the button. #

This feature was specified in this Spec.

CSS :has() : Non-forgiving parsing

Make :has() unforgiving - ':has()' will be invalid if there is an invalid selector in its argument. CSSWG issue resolution: https://github.com/w3c/csswg-drafts/issues/7676#issuecomment-1341347244

This feature was specified in this Spec.

CSS @supports : Always non-forgiving parsing

Some functional selectors are parsed forgivingly. (e.g. :is(), :where()) If an argument of the functional selectors is unknown or invalid, the argument is dropped but the selector itself is not invalidated. To provide a way of detecting the unknown or invalid arguments in those functional selectors, this feature applies the CSS Working Group issue resolution: - @supports uses non-forgiving parsing for all selectors (https://github.com/w3c/csswg-drafts/issues/7280#issuecomment-1143852187)

This feature was specified in this Spec.

CSS Nesting

Add the ability to nest CSS style rules inside other style rules, combining selectors from the outer with the inner rule for increasing modularity and maintainability of style sheets. #

This feature was specified in this Spec.

CSS animation-composition property

Implement animation-composition property. Allows to specify the composite operation to use when multiple animations affect the same property simultaneously. #

This feature was specified in this Spec.

RegExp v flag with set notation + properties of strings

Add set operations, string literals, nested classes and unicode properties of strings to regular expression character classes. Set operations and unicode properties of strings allow developers to create regular expressions matching strings with certain unicode characters with ease. E.g. /[\p{Script_Extensions=Greek}&&\p{Letter}]/v matches all greek letters.

This feature was specified in this Spec.

Resources

No linked docs

Samples: https://v8.dev/features/regexp-v-flag

Resoure Hint "Least Restrictive" CSP

A replacement for the `prefetch-src` directive, which never got traction. Instead of relying on a bespoke CSP directive, <link rel=prefetch> (and later preconnect/dns-prefetch) would be allowed if *any* directive in the policy would allow fetching this URL for any reason. This is because prefetching/preconnecting does not actually do anything with the resource, but only fetches it for a later reason. This allows developer to use resource hints without needing to tweak their content security policy, while giving a tool to prevent exfiltration by having default-src block prefetches. For example: default-src * default-src 'none' script-src * would allow prefetch While default-src 'none' would not. #

This feature was specified in this Spec.

Support as=fetch in navigation early hints preload

Support <link rel=preload as=fetch> in navigation early hints. This allows web developers to preload resources that are fetched by the fetch() API. #

This feature was specified in this Spec.

WebAssembly Tail Call

Add an explicit tail call and indirect tail call opcodes to WebAssembly. #

This feature was specified in this Spec.

Resources

Docs: https://github.com/WebAssembly/tail-call/blob/master/proposals/tail-call/Overview.md

No linked samples

WebGLContextEvent on Web Workers

The WebGLContextEvent type has been defined in Khronos' WebGL specification for a number of years, but it was not noticed until recently that in Blink, this type is not exposed on web workers. (Most applications simply add an event listener for the type, and do not look for its prototype in the global scope.) This is a simple fix to Blink's Web IDL for WebGLContextEvent, but is a web exposed change.

This feature was specified in this Spec.

Origin Trials in-progress in 112

This release of Chrome had 3 new origin trials.

Payment handler minimal header UX

This is a refresh of the browser UI associated with the Payment Handler API. Although there are no changes to the API surface with this feature, we'd like to run an origin trial starting in M112 to give payment handler providers a chance to experiment with the new UI ahead of the launch.

Resources

Docs: https://crbug.com/1385136

No linked samples

WebAssembly Garbage Collection (WasmGC)

The GC proposal adds efficient support for high-level managed languages to WebAssembly, via struct and array types that enable language compilers targeting Wasm to integrate with a garbage collector in the host VM. In Chrome, enabling this feature implies enabling Typed Function References, which allow function references to be stored in the aforementioned structs and arrays. #

This feature was specified in this Spec.

[WebRTC] Unship deprecated "track" and "stream" stats from getStats()

RTCPeerConnection.getStats() will no longer return stats objects where type == "track" or "stream". Unshipped in M112, with a Deprecation Trial to extend the availability of these metrics to M115. #

Flagged features in 112

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

“Reload this page” infobar no longer shown if top-level frame is observing permission changes

Suppresses the "Reload this page" infobar if the top-level frame is subscribed to the `PermissionStatus.onchange` event, which is taken as an indication that the application wishes to dynamically react to camera/microphone permission changes initiated through the page info dialog. Regardless of the presence of the event listener, the pre-existing behavior remains unchanged that media streams are terminated immediately once the permission is revoked. #

Add containerName and containerQuery, update conditionText

Updates the CSSContainerRule interface to match the specs. For @container Implements containerName and containerQuery, updates conditionText to contain both (if @container with containerName exists). #

This feature was specified in this Spec.

Deprecate non-standard `shadowroot` attribute for declarative shadow DOM

The standards-track `shadowrootmode` attribute, which enables declarative Shadow DOM, was shipped in Chrome 111 [1]. The older, non-standard `shadowroot` attribute is now deprecated. During the deprecation period, both attributes are functional, however the `shadowroot` attribute does not enable the new streaming behavior, whereas `shadowrootmode` allows streaming of content. There is a straightforward migration path: replace `shadowroot` with `shadowrootmode`. The old `shadowroot` attribute is deprecated as of Chrome M112, and it will be removed (no longer supported) in Chrome M119, which goes to Stable on November 1, 2023. [1] https://chromestatus.com/feature/5161240576393216 #

This feature was specified in this Spec.

FedCM: Support Credential Management Mediation Requirements for Auto Re-authentication

Supports "mediation requirements" to provide streamlined re-authentication UX for users who have created federated accounts on websites with FedCM API. #

This feature was specified in this Spec.

Resources

Docs: https://github.com/fedidcg/FedCM/issues/429

Samples: https://webid-fcm.glitch.me

Payment handler minimal header UX

This is a refresh of the browser UI associated with the Payment Handler API. Although there are no changes to the API surface with this feature, we'd like to run an origin trial starting in M112 to give payment handler providers a chance to experiment with the new UI ahead of the launch.

Resources

Docs: https://crbug.com/1385136

No linked samples

WebAssembly Memory64

The memory64 proposal adds support for linear WebAssembly memories with size larger than 2^32 bits. It provides no new instructions, but instead extends the existing instructions to allow 64-bit indexes for memories and tables.

This feature was specified in this Spec.

background-blur

The Background Blur API allows web developers to use the native platform's API for camera background segmentation. As Background Blur has become one of the most used features on video conferencing apps like Teams, Meet, Zoom, and Webex, we want web apps to leverage the same platform APIs without completely relying on ML frameworks like TensorFlow.js, Mediapipe, WASM libraries or cloud based solutions. #

This feature was specified in this Spec.

Resources

Docs: https://github.com/riju/backgroundBlur/blob/main/explainer.mdhttps://googlechrome.github.io/samples/image-capture/background-blur.html

Samples: https://googlechrome.github.io/samples/image-capture/background-blur.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 112

This release of Chrome had 0 features deprecated.

Removed features in 112

This release of Chrome had 0 features removed.