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 98

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

Enabled by default in 98

This release of Chrome had 8 new features.

Add support for Promise to Blobs in clipboard item

Add promise support to `ClipboardItem` object. This helps the web author to call async clipboard write method without having to provide the Blob data synchronously. Authors can choose to resolve the promise later when the Blob data is available. #

This feature was specified in this Spec.

COLRv1 Color Gradient Vector Fonts

To solve problems with existing color font formats, we designed a next generation font format suitable for the web called COLRv1 which enables powerful 2D graphics glyph definitions (gradients, transforms), supports variations, and reuses existing contour definitions. Previous color font formats embed bitmap files into the OpenType font containers. They do not scale in high quality and have a large binary size. OpenType SVG embeds vectors but requires complex parsers and rasterisers. #

This feature was specified in this Spec.

Resources

Docs: https://github.com/googlefonts/colr-gradients-spec/https://github.com/googlefonts/colr-gradients-spec/blob/master/OFF_AMD2_WD.md#changes-to-off-5711---color-table

Samples: https://codepen.io/drott_chrome/pen/ExvaYxmhttps://github.com/googlefonts/color-fonts

CSS Color Adjust: 'only' keyword for color-scheme

The 'only' keyword has been re-added to the specification for color-scheme as a way of per-element opt-out of color-scheme override like forced darkening. div { color-scheme: light } will force the div element into color-scheme dark and apply forced darkening. div { color-scheme: only light } will keep the color-scheme for the element light and opt-out of forced darkening. #

This feature was specified in this Spec.

HDR CSS Media Queries: dynamic-range

Adds a media query to CSS which allows a page to detect the current display device’s support for HDR. This feature adds the query: 'dynamic-range' which may be one of 'standard' or 'high'. Chrome will resolve this query according to the capabilities of the display device the browser window is currently positioned on, allowing pages to toggle CSS rules accordingly or respond in Javascript via 'window.matchMedia()'. #

This feature was specified in this Spec.

Resources

No linked docs

Samples: https://willcassella.github.io/blink-hdr/demos/css-dynamic-range.html

New window.open() popup vs. window behavior

This change aligns Chromium with the spec for window.open(), by 1) adding a "popup" windowFeature to control popup vs. tab/window, and 2) ensuring all BarProp properties return !is_popup. #

This feature was specified in this Spec.

WritableStream controller AbortSignal

The streams APIs provide ubiquitous, interoperable primitives for creating, composing, and consuming streams of data. This change permits an underlying sink to rapidly abort an ongoing write or close when requested by the writer. #

This feature was specified in this Spec.

auto keyword for contain-intrinsic-size

Support for the "auto" keyword in contain-intrinsic-size lets web sites use the last remembered size of an element (if any), which providers for a better user experience as elements have size containment turned on and off, e.g. through content-visibility: auto. #

This feature was specified in this Spec.

self.structuredClone()

Enables using the HTML structured clone algorithm synchronously for cloning and transferring objects within a single realm. #

This feature was specified in this Spec.

Origin Trials in-progress in 98

This release of Chrome had 3 new origin trials.

Region Capture

We introduce a performant and robust API for cropping a self-capture video track. (Recall that applications may *already* video-capture the tab in which the application is run using getDisplayMedia(). Using our new Region Capture, such an application may now *crop* that track and remove some content from it; typically before sharing it remotely.) #

This feature was specified in this Spec.

Resources

No linked docs

Samples: https://region-capture-demo.glitch.mehttps://w3c.github.io/mediacapture-region/demo

Update User-Agent Client Hints GREASE implementation

We seek to align our implementation of GREASE in User Agent Client Hints with the current spec, which includes additional GREASE characters beyond the current semicolon and space, and which recommends varying the arbitrary version. This is to help prevent bad assumptions from being built on top of User-Agent strings. #

This feature was specified in this Spec.

Web app launch handler

Add a "launch_handler" web app manifest member that enables web apps to customize their launch behavior across all types of app launch triggers. Example usage: { "name": "Example app", "start_url": "/index.html", "launch_handler": { "client_mode": "navigate-existing" } } This will cause all launches of the Example app to focus an existing app window and navigate it (if it exists) instead of always launching a new app window. #

This feature was specified in this Spec.

Flagged features in 98

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

Calling PaymentRequest.show without user activation

Allowing PaymentRequest.show() to be triggered without a user activation could be abused by malicious websites. To protect users, the spec was changed to require user activation, and we are now following through in the Chrome implementation. #

This feature was specified in this Spec.

Private Network Access preflight requests for subresources: warning-only mode

Sends a warning-only CORS preflight request ahead of any private network requests for subresources, asking for explicit permission from the target server. If the preflight request fails due to Private Network Access checks, a warning is displayed in the DevTools issues panel, but the error is otherwise ignored. The subsequent request is sent as if the preflight had succeeded. A private network request is any request from a public website to a private IP address or localhost, or from a private website (e.g. intranet) to localhost. Sending a preflight request mitigates the risk of cross-site request forgery attacks against private network devices such as routers, which are often not prepared to defend against this threat. #

This feature was specified in this Spec.

Resources

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

No linked samples

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 98

This release of Chrome had 0 features deprecated.

Removed features in 98

This release of Chrome had 1 features removed.

Remove SDES key exchange for WebRTC

The SDES key exchange mechanism for WebRTC has been declared a MUST NOT in the relevant IETF standards since 2013. The SDES specification has been declared Historic by the IETF. Its usage in Chrome has declined significantly over the recent year. This intent is to deprecate and remove this code from Chromium and WebRTC. #

This feature was specified in this Spec.