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 92

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

Enabled by default in 92

This release of Chrome had 12 new features.

Add dayPeriod option for Intl.DateTimeFormat

Add a dayPeriod option to Intl.DateTimeFormat() method so the caller can format times such as "7 in the morning", "11 in the morning", "12 noon", "1 in the afternoon", "6 in the evening", "10 at night" (or in Chinese, "清晨7時", "上午11時", "中午12時", "下午1時" ,"下午6時" ,"晚上10時") #

This feature was specified in this Spec.

Resources

Docs: https://tc39.es/ecma402/#table-datetimeformat-componentshttps://tc39.es/ecma402/#sec-todatetimeoptionshttps://tc39.es/ecma402/#sec-intl.datetimeformat-internal-slotshttps://tc39.es/ecma402/#table-datetimeformat-rangepatternfieldshttps://github.com/tc39/ecma402/pull/346

Samples: https://github.com/tc39/ecma402/pull/346

CSS position: sticky scroll initial position into view

For the purposes of any operation targetting the scroll position of a sticky positioned element (or one of its descendants), the sticky positioned element must be considered to be positioned at its initial (non-offsetted) position. This was discussed in https://github.com/w3c/csswg-drafts/issues/1459. #

This feature was specified in this Spec.

Resources

No linked docs

Samples: https://jsbin.com/simivof/edit?html,output

Change click, auxclick and contextmenu event types to PointerEvent

Change “click”, “contextmenu”, “auxclick” events to PointerEvent (instead of MouseEvent) to let developers: distinguish between mouse, pen and individual fingers in a multitouch interaction through pointerType and pointerId attributes, and utilize fractional event coordinates for high precision use cases. #

Delegated ink trail

Enable web applications to describe the last input pointer with sufficient detail so that the browser can present the segments of the ink trail for input that has been delivered, but not yet rendered (the pointer trail). #

This feature was specified in this Spec.

Resources

Docs: https://github.com/MicrosoftEdge/MSEdgeExplainers/blob/master/WebInkEnhancement/explainer.md

No linked samples

Final specified imperative slot distribution behavior

The final imperative slot distribution API spec has been landed at [1]. There are minor changes from the initial draft [2] which was implemented in Chromium. This feature represents the changes from the draft to the final spec. [1] https://html.spec.whatwg.org/#dom-slot-assign [2] https://chromestatus.com/feature/5711021289242624 #

This feature was specified in this Spec.

Media Session API: Video conferencing actions

Adds "togglemicrophone", "toggle camera", and "hangup" actions to the existing Media Session API. This will enable developers of video conferencing websites to handle these actions from browser UI. For example, if the user puts their video call into a picture-in-picture window, the browser could display buttons for mute/unmute, turnon/turnoff camera, and hang up. When the user clicks these, the website handles them through the Media Session API. #

This feature was specified in this Spec.

Resources

Docs: https://web.dev/media-session/#video-conferencing-actionshttps://docs.google.com/document/d/1KDpWqg9LcnuQ5TQDBK45BrbkyfuziolZ0m7Wmt6xPnU/edit?usp=sharing&resourcekey=0-I0o3GayIn9Q-2LN7EB1l8w

Samples: https://googlechrome.github.io/samples/media-session/video-conferencing.html

Relative indexing method for Array, String, and TypedArrays

Add a new method, named at(), to Array.prototype, String.prototype, and the TypedArray prototypes, that permit relative indexing with negative indices. ``` let arr = [1,2,3,4]; arr.at(-1); // Returns 4 ``` #

This feature was specified in this Spec.

Tainted origin flag applied to Resource Timing

Accounts for the tainted origin flag when computing whether a fetched resource passes the timing allow origin check. The Timing Allow Origin check is used in Resource Timing to determine whether the page has the right to receive detailed timing information about a resource used in the page. The tainted origin flag impacts this check in cases where there are multiple redirects that cross origins. In those cases, the header should be '*', i.e. can no longer be a specific origin. #

This feature was specified in this Spec.

Web Bluetooth manufacturer data filter

Being able to filter based on manufacturer specific data (such as vendor ID and product ID) will enable e.g. manufacturer.example.com to configure/select only its own Bluetooth devices and present them to users, instead of showing unrelated Bluetooth devices in the browser picker. #

This feature was specified in this Spec.

Resources

Docs: https://web.dev/bluetooth/#manufacturer-data-filter

Samples: https://googlechrome.github.io/samples/web-bluetooth/manufacturer-data-filter.html

aria-touchpassthrough

Screen readers with touch screen support typically include a "touch exploration" mode where you can tap or slowly drag around the screen and listen to feedback on what you're touching, before it activates. Setting aria-touchpassthrough on an HTML element indicates to a screen reader that touch events targeted at this element should be passed through directly, instead. #

crypto.randomUUID()

Introduces the method crypto.randomUUID() for generating RFC 4122 version 4 identifiers. The method returns the namespace specific string representation (for example, "6e4decd0-6066-4a25-98e3-0227317cda52"). #

This feature was specified in this Spec.

size-adjust descriptor for @font-face

The size-adjust descriptor in @font-face allows scaling of glyph sizes for a particular font face without affecting the CSS font-size and derived metrics such as em. CSS font-size can be seen as a scale factor for a box that the font draws in. Glyph sizes within that box vary between fonts, and size-adjust enables harmonising them across different fonts. That's why it can also help with reducing cumulative layout shift by matching up the fallback font and primary web font using this descriptor. #

This feature was specified in this Spec.

Origin Trials in-progress in 92

This release of Chrome had 7 new origin trials.

Capture Handle

We introduce a mechanism that allows an application to opt-in to exposing certain information to other applications which are video-capturing it. This allows collaboration between capturing and captured applications. For example, a VC application that's video-capturing a tab where a presentation application lives, could expose user-facing controls in the VC tab for navigating the presentation in the captured tab. #

This feature was specified in this Spec.

Resources

No linked docs

Samples: https://w3c.github.io/mediacapture-handle/identity/demos/remote_control/capturer.htmlhttps://w3c.github.io/mediacapture-handle//identity/demos/self_capture_detection/index.html

Compute Pressure

The Compute Pressure API offers high-level states that represent the pressure on the system. It allows the implementation to use the right underlying hardware metrics to ensure that users can take advantage of all the processing power available to them as long as the system is not under unmanageable stress. “Pressure” is a generic term by design – at the moment it is calculated based on CPU load, but future plans include using signals from temperature and battery status, for example. #

This feature was specified in this Spec.

Resources

Docs: https://developer.chrome.com/docs/web-platform/compute-pressure

Samples: https://w3c.github.io/compute-pressure/demo

File Handling

File Handling provides a way for web applications to declare the ability to handle files with given MIME types and extensions. The web application will receive an event when the user intends to open a file with that web application. #

This feature was specified in this Spec.

Resources

Docs: https://tinyurl.com/file-handling-design

Samples: https://principled-ring-yarrow.glitch.me

Prefetching triggered by the speculation rules API

Prefetching fetches the main resource for a future navigation, keeping it in memory so that it can be used to speed up the next navigation. This launch includes both same-site prefetching, and cross-site prefetching in the case where no credentials are present for the destination site. #

This feature was specified in this Spec.

Shared Array Buffers, Atomics and Futex APIs

Adds the JavaScript type SharedArrayBuffer gated behind COOP/COEP. The concept of a SharedArrayBuffer is that a message to a worker, is posted but instead of copying the content of the array just a reference to it is shared. The Atomic API provides atomic loads and stores and Read/Modify/Write accesses to SharedArrayBuffers. The Atomic.wait provides the ability for a worker to wait for another worker to signal it, without having to spinlock. #

This feature was specified in this Spec.

Resources

Docs: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/SharedArrayBuffer

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

aria-touchpassthrough

Screen readers with touch screen support typically include a "touch exploration" mode where you can tap or slowly drag around the screen and listen to feedback on what you're touching, before it activates. Setting aria-touchpassthrough on an HTML element indicates to a screen reader that touch events targeted at this element should be passed through directly, instead. #

Flagged features in 92

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

File Handling

File Handling provides a way for web applications to declare the ability to handle files with given MIME types and extensions. The web application will receive an event when the user intends to open a file with that web application. #

This feature was specified in this Spec.

Resources

Docs: https://tinyurl.com/file-handling-design

Samples: https://principled-ring-yarrow.glitch.me

Intl Locale Info in ECMA402

Intl Locale Info API is a new Stage ECMAScript TC39 proposal to enhance the Intl.Locale object by exposing Locale information, such as week data (first day in a week, weekend start day, weekend end day, minimun day in the first week), and text direction hour cycle used in the locale. https://github.com/tc39/proposal-intl-locale-info #

This feature was specified in this Spec.

Resources

Docs: https://docs.google.com/document/d/1OwEsvs8VQwvR-ug01xLyIwpgcvUfaP24u9owc7aBKJ4Update slides for TC39 2021-Dec-15https://docs.google.com/presentation/d/1PZ0_WiE9PNInY2bgyHGJH0DbKd0PKL9RApXxVPKJjUY

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 92

This release of Chrome had 0 features deprecated.

Removed features in 92

This release of Chrome had 1 features removed.

Payment handlers for standardized payment method identifiers.

Enables web-based payment handlers to receive "paymentrequest" events with non-URL, but standardized payment method identifiers, such as "basic-card" or "tokenized-card". #