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 93

Enabled (13) | Origin Trial (5) | Behind a flag (6) | Deprecated (0) | Removed (1)

Enabled by default in 93

This release of Chrome had 13 new features.

AbortSignal.abort() static method

AbortSignal.abort() is a static method that allows creating a new AbortSignal object that is already aborted. It is similar in spirit to Promise.reject(), and provides improved developer ergonomics. #

This feature was specified in this Spec.

Block ports 989 and 990

Connections to HTTP, HTTPS or FTP servers of ports 989 and 990 will fail. These ports are used by the FTPS protocol, which has never been implemented in Chrome. However, FTPS servers can be attacked in a cross-protocol attack by malicious web pages using carefully-crafted HTTPS requests. This is a mitigation for the ALPACA attack. See https://alpaca-attack.com/.

This feature was specified in this Spec.

CSS Flexbox: support alignment keywords start, end, self-start, self-end, left, right

Make flexbox and flex items obey the positional alignment keywords from https://drafts.csswg.org/css-align-3/#positional-values. Flexbox previously only obeyed center, flex-start, and flex-end. The additional alignment keywords (start, end, self-start, self-end, left, right) allow authors to more easily align the flex items in the face of varying writing modes and flex flows. #

This feature was specified in this Spec.

CSS module scripts

CSS Module Scripts are an extension of the ES Script Modules system that allows web developers to load CSS into a component definition in a manner that interacts seamlessly with other module types: import styleSheet from "./styles.css" assert { type: "css" }; #

This feature was specified in this Spec.

Resources

Docs: Explainer: https://github.com/WICG/webcomponents/blob/gh-pages/proposals/css-modules-v1-explainer.mdThis design doc covers how the feature was implemented using Synthetic Modules: https://github.com/MicrosoftEdge/MSEdgeExplainers/blob/main/SyntheticModules/designDoc.md

No linked samples

Error.cause property

Adds an additional options parameter to the Error() constructor with a cause property, the value of which will be assigned to the error instances as a property. This allows errors to be chained without unnecessary and overelaborate formalities on wrapping the errors in conditions. #

This feature was specified in this Spec.

Honor media HTML attribute for meta name=theme-color

The meta element’s “media” attribute will be honored for meta[name="theme-color"] so that web developers can adjust the theme color of their site based on a media query (dark and light modes for instance). The first one that matches will be picked. #

This feature was specified in this Spec.

Resources

Docs: https://web.dev/add-manifest/#theme-color

Samples: https://media-meta-theme-color.glitch.me/

Intl BestFitMatcher by using ICU LocaleMatcher

Use the ICU LocaleMatcher to implement the BestFitMatcher of ECMA402 in v8 JavaScript engine. ECMA402 defined the BestFitMatcher abstract operation to allow browser implementation to implement a better way to match locale data. UTS35 sec "4.4 Language Matching" details a data driven algorithm to use CLDR. ICU 67.1 (launched in April 2020) comes with an improved icu::LocaleMatcher API and implementation . This document shows how we implement v8's BestFitMatcher to use such API. #

This feature was specified in this Spec.

Resources

Docs: https://docs.google.com/document/d/1cPGfiihn76yj2iAomKcspPFyLLcnk3WkCiqceBQPQyk/edit#

No linked samples

Object.hasOwn

Object.hasOwn provides an easier-to-use, static method version of Object.prototype.hasOwnProperty. For example, Object.hasOwn({ prop:42 }, 'prop') returns true. #

This feature was specified in this Spec.

Re-add 'style' to contain:strict and contain:content CSS properties

The 'strict' and 'content' keywords for the 'contain' property will now include 'style'. Per CSSWG resolution this was (re-)added now that contain:style is well-defined in the specifications. #

This feature was specified in this Spec.

Sec-CH-Prefers-Color-Scheme User Preference Media Features Client Hints Header

User Preference Media Features Client Hints Header defines a set of HTTP Client Hints headers around user preference media features as defined by Media Queries Level 5. If used as Critical Client Hints, these headers allow servers to make smart choices regarding, e.g., CSS inlining. Sec-CH-Prefers-Color-Scheme reflects the user's prefers-color-scheme preference. #

This feature was specified in this Spec.

Resources

No linked docs

Samples: https://sec-ch-prefers-color-scheme.glitch.me

WebOTP API: cross-device support

We plan to support WebOTP API on desktop when both Chrome Desktop and Chrome Android are logged into the same Google account. #

This feature was specified in this Spec.

Resources

Docs: https://docs.google.com/document/d/1SlIaRlH0WEvvLMtQJZMuwZbH5bRs6SCPlxXwwnJQHMU/edit#heading=h.xgjl2srtytjt

Samples: https://web-otp-demo.glitch.me/

accent-color CSS property

The accent-color CSS property allows the page to specify a color used by form controls instead of using the builtin default color. For example, "accent-color: red" on an <input type=checkbox> would change the blue color around the checkmark to red. #

This feature was specified in this Spec.

noplaybackrate in HTMLMediaElement.controlsList

Offers a way for the website to enable/disable the playback speed control exposed by the browser in native media controls. #

This feature was specified in this Spec.

Resources

No linked docs

Samples: https://googlechrome.github.io/samples/media/controlslist-noplaybackrate.html

Origin Trials in-progress in 93

This release of Chrome had 5 new origin trials.

Cross-Origin-Embedder-Policy: credentialless

Introduce Cross-Origin-Embedder-Policy: credentialless. This causes cross-origin no-cors requests to omit credentials (cookies, client certificates, etc). Similarly to COEP:require-corp, it can enable cross-origin isolation. #

This feature was specified in this Spec.

Resources

Docs: https://github.com/WICG/credentiallessnesshttps://docs.google.com/document/d/1U1pDzS_WJpfkq6QqOeqgmXmba_I4tIbUR-5C1AHzI9o/edit#

Samples: http://coep-credentialless.glitch.me/

Read Chrome device attributes

Device Attributes Web API is a subset of Managed Device Web API, that provides web applications the capability to query device information (device ID, serial number, location, etc). #

This feature was specified in this Spec.

Resources

No linked docs

Samples: https://github.com/WICG/WebApiDevice/blob/master/README.md

Window Controls Overlay for Installed Desktop Web Apps

When the window controls overlay is enabled for installed desktop web apps, the app's client area is extended to cover the entire window--including the title bar area--and the window control buttons (close, maximize/restore, minimize) are overlaid on top of the client area. The web app developer is responsible for drawing and input-handling for the entire window except for the window controls overlay. #

Resources

Docs: https://github.com/WICG/window-controls-overlay/blob/main/explainer.md

Samples: https://amandabaker.github.io/pwa/explainer-example/index.html

Window Management

Previously named "Multi-Screen Window Placement". Adds new screen information APIs and makes incremental improvements to existing window placement APIs, allowing web applications to offer compelling multi-screen experiences. The existing singular window.screen offers a limited view of available screen space, and window placement functions generally clamp bounds to the current screen. This feature unlocks modern multi-screen workspaces for web applications. #

This feature was specified in this Spec.

Resources

Docs: https://developer.mozilla.org/en-US/docs/Web/API/Window_Management_APIhttps://web.dev/multi-screen-window-placement

Samples: https://michaelwasserman.github.io/window-placement-demohttps://web.dev/multi-screen-window-placement/#demo

[WebRTC] Deprecate and Remove Plan B

The SDP used to establish a connection in WebRTC has a non-standard dialect: Plan B. Removal timeline: M93: Exception thrown in Canary. M96: Exception thrown in Beta and Stable. M102: Prior to this version, Plan B was allowed behind Deprecation Trial. With M102, sdpSemantics is ignored (you get Unified Plan no matter what). CrOS-only: Plan B was temporarily allowed up until M104. #

This feature was specified in this Spec.

Flagged features in 93

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

Async Clipboard: SVG support

Adds `image/svg+xml` standard type support to the Async Clipboard API. The current implementation of the Async Clipboard API only supports text/plain, image/png, and text/html standard types. SVG images are popular due to their ability to encode images in a space efficiently and their ability to maintain image quality even when zooming in. Note that `image/svg+xml` as a standard type is not supported in DataTransfer APIs. #

This feature was specified in this Spec.

Resources

Docs: https://docs.google.com/document/d/1jq8QSCQRdNy99rnPusmW8is62c22PVuq-Sk-tMT2tRk/edit

Samples: https://gilded-petalite-frost.glitch.me

Cross-Origin-Embedder-Policy: credentialless

Introduce Cross-Origin-Embedder-Policy: credentialless. This causes cross-origin no-cors requests to omit credentials (cookies, client certificates, etc). Similarly to COEP:require-corp, it can enable cross-origin isolation. #

This feature was specified in this Spec.

Resources

Docs: https://github.com/WICG/credentiallessnesshttps://docs.google.com/document/d/1U1pDzS_WJpfkq6QqOeqgmXmba_I4tIbUR-5C1AHzI9o/edit#

Samples: http://coep-credentialless.glitch.me/

Disable propagation of body style to viewport when contained

Used contain values different from none on the root or body elements will disable propagation of CSS properties from body as per specification[1]. [1] https://drafts.csswg.org/css-contain-1/#c3 #

This feature was specified in this Spec.

FileSystemHandle.remove() method

A "remove self" method for a FileSystemHandle. Currently, it is not possible to remove a file or directory given its handle. You must obtain the handle of the parent directory and call FileSystemDirectoryHandle.removeEntry(). This method enables the common use case where you obtain a file handle from showSaveFilePicker(), but then decide you don't want to save after all, and delete the file. #

This feature was specified in this Spec.

URLPattern

URLPattern is a new web API that provides native support for matching URLs given a pattern string. It is designed to be usable both in javascript directly and by passing patterns to other web platform APIs; e.g. as a service worker scope. #

This feature was specified in this Spec.

Resources

Docs: https://web.dev/urlpattern/https://github.com/WICG/urlpattern/blob/main/mdn-drafts/QUICK-REFERENCE.mdhttps://docs.google.com/document/d/17L6b3zlTHtyxQvOAvbK55gQOi5rrJLERwjt_sKXpzqc/edit?usp=sharing

Samples: https://glitch.com/~urlpattern-sw-routing

Window Management

Previously named "Multi-Screen Window Placement". Adds new screen information APIs and makes incremental improvements to existing window placement APIs, allowing web applications to offer compelling multi-screen experiences. The existing singular window.screen offers a limited view of available screen space, and window placement functions generally clamp bounds to the current screen. This feature unlocks modern multi-screen workspaces for web applications. #

This feature was specified in this Spec.

Resources

Docs: https://developer.mozilla.org/en-US/docs/Web/API/Window_Management_APIhttps://web.dev/multi-screen-window-placement

Samples: https://michaelwasserman.github.io/window-placement-demohttps://web.dev/multi-screen-window-placement/#demo

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 93

This release of Chrome had 0 features deprecated.

Removed features in 93

This release of Chrome had 1 features removed.

Remove 3DES in TLS

Remove support for the TLS_RSA_WITH_3DES_EDE_CBC_SHA cipher suite. #