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 96

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

Enabled by default in 96

This release of Chrome had 16 new features.

ALPS and ACCEPT_CH HTTP/2 and HTTP/3 frames

The ACCEPT_CH HTTP/2 and HTTP/3 frames, combined with the TLS ALPS extension, are a connection-level optimization to deliver the server’s Client Hint preferences in time for the first HTTP request.

This feature was specified in this Spec.

Adding captureTimestamp and senderCaptureTimeOffset to RTCRtpContributingSource.

Two new data properties, captureTimestamp and senderCaptureTime, will be added to the RTCRtpContributingSource, returned by RTCRtpReceiver.getContributingSources(). (See https://w3c.github.io/webrtc-extensions/#rtcrtpcontributingsource-dictionary.) These new properties are used to measure A/V sync and end-to-end delay in real-time communication (RTC) systems. #

This feature was specified in this Spec.

Resources

Docs: https://w3c.github.io/webrtc-extensions/#rtcrtpcontributingsource-dictionaryhttps://github.com/webrtc/webrtc-org/blob/gh-pages/experiments/rtp-hdrext/abs-capture-time/index.md

No linked samples

Back-forward cache for desktop

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

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 :autofill Pseudo Class

A pseudo class selector to style autofilled form elements. #

This feature was specified in this Spec.

CSS @counter-style descriptor 'speak-as'

A custom counter style can be constructed with a meaning that is obvious visually, but impossible to meaningfully represent via a speech synthesizer or other non-visual means, or possible but nonsensical when naively read out loud. The 'speak-as' descriptor describes how to synthesize the spoken form of a counter formatted with the given counter style. #

This feature was specified in this Spec.

Resources

Docs: https://bit.ly/3kEHluz

No linked samples

Clipboard: Preserve PNG metadata

Read unsanitized PNGs from the system clipboard. This will apply to both DataTransfer and the Async Clipboard API (navigator.clipboard.read()). #

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.

EME MediaKeySession Closed Reason

A MediaKeySessionClosedReason is proposed to indicate the reason for EME MediaKeySession closure, and the closed attribute would return a Promise<MediaKeySessionClosedReason> instead of the current Promise<void>. See https://github.com/w3c/encrypted-media/issues/473. #

This feature was specified in this Spec.

Resources

Docs: https://googlechrome.github.io/samples/media/key-session-closed-reason.html

No linked samples

InteractionID in EventTiming

Developers currently use the Event Timing API to gather performance data about events they care about. However, it is currently hard to link events that correspond to the same user interaction. For instance, when a user taps, many events are generated, such as pointerdown, mousedown, pointerup, mouseup, and click. The interactionID enables developers to link multiple PerformanceEventTiming entries when they correspond to the same user interaction. #

This feature was specified in this Spec.

Media Queries: prefers-contrast feature

Adds the 'prefers-contrast' feature, which lets authors adapt web content to user-selected level of contrast in the OS, such as increased contrast mode on macOS and high contrast mode on Windows. Valid options are 'more', 'less', 'custom', or 'no-preference'. #

This feature was specified in this Spec.

PWA manifest unique id - desktop

Define an optional id field in app manifest that's used to globally identify the web app. If the id is not specified, start_url will be used as the default id. #

This feature was specified in this Spec.

Resources

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

No linked samples

Reporting API: Isolate reports per-document and support the Reporting-Endpoints header

Splits the reporting cache into a per-document cache for document-generated reports, and the existing cache for network reports. There is currently a single reporting cache per profile, which means that reports from unrelated documents can potentially be sent in a single request. This also introduces the Reporting-Endpoints HTTP response header for non-persistent configuration of document-generated reports. #

This feature was specified in this Spec.

Resources

Docs: https://docs.google.com/document/d/1dls0BWp5K-g0tbPUkbm5yEBZ5ye1ErZTz4FB6M62lI8/edit?usp=sharinghttps://docs.google.com/document/d/1RmEz17pGSUQITPoRKV4s3IBgbyHjv-HLZqtVYYZ4lMg/edit?usp=sharing

No linked samples

URL Protocol Handler Registration for PWAs

Enable web applications to register themselves as handlers of custom URL protocols/schemes using their installation manifest. #

This feature was specified in this Spec.

Resources

Docs: https://docs.google.com/document/d/1NHlWLjAPZ-dyxcz3AoTWibeerDeHW7Vqrx6FmhB0XmE

Samples: https://protocol-handler.glitch.me/https://fabiorocha.github.io/pwa

WebAssembly Reference Types

Allow WebAssembly modules to hold references to JS/DOM objects, passing them as arguments, storing them in locals and globals, and storing them in WebAssembly.Table objects. #

This feature was specified in this Spec.

Resources

Docs: https://github.com/WebAssembly/reference-types/blob/master/proposals/reference-types/Overview.md

No linked samples

[WebAuthn] Authenticator Attachment in Public Key Credential

Add the authenticator attachment (platform/cross-platform) used during both registration and authentication to the public key credential payload returned from the browser to the relying party (website/application etc) #

Origin Trials in-progress in 96

This release of Chrome had 3 new origin trials.

Fetch Priority

Fetch Priority provides developers a way to indicate a resource's relative priority to the browser, allowing more control over the order resources are loaded. Many factors influence a resource's priority in browsers. These include type, visibility, and preload status of a resource. This introduces a developer-set "fetchpriority" attribute to HTML elements and a "priority" property to the fetch API allowing developers to influence the computed priority of a resource. Supported fetchpriority values are auto, low, and high. #

This feature was specified in this Spec.

Navigation API

The window.navigation API provides the ability to intercept and initiate navigations, as well as introspect an application's history entries. This provides a more useful alternative to window.history and window.location, specifically aimed at the needs of single-page web applications. (Note: this API was formerly known as the app history API.) #

This feature was specified in this Spec.

Resources

Docs: https://developer.chrome.com/docs/web-platform/navigation-api

Samples: https://gigantic-honored-octagon.glitch.me/https://selective-heliotrope-dumpling.glitch.me/

WebAssembly Dynamic Tiering

With WebAssembly Dynamic Tiering, an heuristic decides which functions of a WebAssembly module get optimized, and when the optimization is triggered. This is an improvement to the existing eager optimization approach, where all functions get optimized immediately after baseline compilation is finished. WebAssembly Dynamic Tiering reduces the resource consumption of the optimizing compiler, and prevents the compiler from competing with the web application for resources. #

Flagged features in 96

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

Block external protocol in sandboxed iframe

Block sandboxed iframe from opening external application. To enable it again, apply at least one of following values to the <iframe> element's sandbox property: - allow-popups - allow-top-navigation - allow-top-navigation-with-user-activation Or use the new dedicated one: - allow-top-navigation-to-custom-protocols #

This feature was specified in this Spec.

Resources

Docs: https://docs.google.com/document/d/1hHjxQk1yLoC0ioBBYpIq4JJYAwj9sJfR5b62QcLt1eM/edithttps://github.com/whatwg/html/pull/7124https://github.com/whatwg/html/pull/7654

No linked samples

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.

Navigation API

The window.navigation API provides the ability to intercept and initiate navigations, as well as introspect an application's history entries. This provides a more useful alternative to window.history and window.location, specifically aimed at the needs of single-page web applications. (Note: this API was formerly known as the app history API.) #

This feature was specified in this Spec.

Resources

Docs: https://developer.chrome.com/docs/web-platform/navigation-api

Samples: https://gigantic-honored-octagon.glitch.me/https://selective-heliotrope-dumpling.glitch.me/

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 96

This release of Chrome had 0 features deprecated.

Removed features in 96

This release of Chrome had 0 features removed.