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 106

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

Enabled by default in 106

This release of Chrome had 8 new features.

CSS 'ic' Length Unit

Support for expressing CSS lengths relative to the used advance measure of the CJK water ideograph. #

This feature was specified in this Spec.

Enforce CORS in subresource SignedExchange prefetching

Changes the request mode and credentials mode of prefetch requests used in Subresource prefetching+loading via Signed HTTP Exchange (https://chromestatus.com/feature/5126805474246656). Currently SignedExchange subresource prefetches (triggered by Link: rel="alternate") are requested with "no-cors" mode. After this change, SignedExchange subresource prefetches will be requested with "cors" mode and "same-origin" credentials mode. This means, subresource SignedExchanges prefetched from cross-origin must have an appropriate Access-Control-Allow-Origin response header. #

This feature was specified in this Spec.

Intl.NumberFormat v3 API

Intl.NumberFormat v3 API is a new TC39 ECMA402 stage 3 proposal extend the pre-existing Intl.NumberFormat, with the following new features: 1. Add 3 new functions to format range of number: formatRange / formatRangeToParts / selectRange 2. Grouping Enum 3. New Rounding/Precision Options 4. Rounding Priority 5. Interpret Strings as Decimals 6. Rounding Modes 7. Sign Display Negative https://github.com/tc39/proposal-intl-numberformat-v3 #

This feature was specified in this Spec.

Resources

Docs: https://docs.google.com/document/d/19jAogPBb6W4Samt8NWGZKu47iv0_KoQhBvLgQH3xvr8/edit#heading=h.86ckkob9p59rhttps://docs.google.com/document/d/14zxGub6Os6nARzH6XstOZX05w2537sZo_ZSSlGjGpBM/edit#heading=h.86ckkob9p59r

No linked samples

Richer install UI for PWAs - desktop

Gives developers the ability to add more data (descriptions and screenshots) to their PWA install dialog and gives users more insight into the apps they are about to install. This implements PWA richer install UI on desktop. See previous chromstatus entry for mobile - https://chromestatus.com/feature/6422599217184768 #

This feature was specified in this Spec.

SerialPort BYOB reader support

Updates the underlying data source for the ReadableStream provided by a SerialPort to be a readable byte stream. This change is backwards-compatible with existing code that calls port.readable.getReader() with no parameters. Developers can detect support for BYOB readers by calling getReader({ mode: 'byob' }) as older implementations will throw a TypeError when the new parameter is passed. BYOB (or, "bring your own buffer") readers allow the developer to specify the buffer into which data is read instead of the stream allocating a new buffer for each chunk. In addition to potentially reducing memory pressure this allows the developer to control how much data is received as the stream cannot return more than there is space for in the provided buffer. The ability to read a particular amount of data from a port makes this API more familiar to developers used to programming against the Windows and POSIX APIs for serial devices, which operate on this same "bring your own buffer" principle. #

This feature was specified in this Spec.

Resources

No linked docs

Samples: https://googlechromelabs.github.io/serial-terminal

Unprefix -webkit-hyphenate-character CSS property

This change supports unprefixed hyphenate-character, not only -webkit-hyphenate-character. According to the csswg discussion, https://github.com/w3c/csswg-drafts/issues/6887, hyphenate-character css property is stable enough to ship. #

This feature was specified in this Spec.

Resources

No linked docs

Samples: https://codepen.io/bramus/pen/XWegmqv

WebCodecs dequeue event

This feature tracks adding a single event named "dequeue" to the audio and video encoder and decoder interfaces (e.g. AudioDecoder.ondequeue). Authors may initially queue up encoding or decoding work by calling encode() or decode() respectively. The new "dequeue" event is fired to indicate when the underlying codec has ingested some/all of the queued work. The decrease in the queue size is already reflected by a lower value of encoder.encodeQueueSize and decoder.decodeQueueSize attributes. The new event eliminates the need for authors to setTimeout() poll to determine when the queue has decreased (i.e. when they should queue up more work). See mentions of "dequeue" in the WebCodecs specification https://w3c.github.io/webcodecs/#audiodecoder-event-summary #

This feature was specified in this Spec.

forced-color-adjust: preserve-parent-color

Adds the ‘preserve-parent-color' value to the ‘forced-color-adjust' CSS property. When Forced Colors Mode is enabled, the ‘color’ property is inherited, and we’ve set ‘forced-color-adjust: preserve-parent-color', the ‘color’ property will compute to the used value of its parent. Otherwise, ‘forced-color-adjust: preserve-parent-color' value behaves the same as ‘forced-color-adjust: none’. #

This feature was specified in this Spec.

Origin Trials in-progress in 106

This release of Chrome had 3 new origin trials.

Cookies Having Independent Partitioned State (CHIPS)

Chrome plans to obsolete third-party cookies, therefore developers need the ability to use cookies in third-party contexts that are partitioned by top-level site. This is necessary for use cases that are not cross-site tracking related. For example, SaaS embeds, headless CMS, and sandbox domains). The CHIPS cookie attribute of `Partitioned` enables developers to opt into having their third-party cookies partitioned by top-level site. #

This feature was specified in this Spec.

Resources

Docs: https://docs.google.com/document/d/1wL2lCXpaVOi0cWOn_ehfLFIZQxT3t0SH-ANnZYPEB0I/edit

No linked samples

Iframe credentialless

Iframe credentialless give developers a way to load documents in third party iframes using new and ephemeral contexts. Iframe credentialless are a generalization of COEP credentialless to support 3rd party iframes that may not deploy COEP. Like with COEP credentialless, we replace the opt-in of cross-origin subresources by avoiding to load non-public resources. This will remove the constraint that 3rd party iframes must support COEP in order to be embedded in a COEP page and will unblock developers looking to adopt cross-origin-isolation. This way, developers using COEP can now embed third party iframes that do not. #

This feature was specified in this Spec.

Resources

Docs: https://docs.google.com/document/d/1poI75BaQ9aqcMGJn_K01-QHsQQbEOwRWvg3Af4VWTmY/edit

Samples: https://anonymous-iframe.glitch.me

The Popover API

An API that can be used to build transient user interface (UI) elements that are displayed on top of all other web app UI. These include user-interactive elements like action menus, form element suggestions, content pickers, and teaching UI. This API uses a new `popover` content attribute to enable any element to be displayed in the top layer. This is similar to the <dialog> element, but has several important differences, including light-dismiss behavior, popover interaction management, animation and event support, and the lack of a "modal" mode. #

This feature was specified in this Spec.

Flagged features in 106

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

Reduce fingerprinting in Accept-Language header information

We want to reduce the amount of information the Accept-Language header value string exposes in HTTP requests and in navigator.languages. Instead of sending a full list of the user's preferred languages on every HTTP request via the Accept-Language header. We propose only sending the user’s most preferred language in the Accept-Language header. To minimize compatibility risks, we first plan to reduce the information in the HTTP header, and then reduce the related navigator.languages JS getters in the future. #

Resources

Docs: https://docs.google.com/document/d/1RkPDf7DNtcOj4KXeW8wNCuYfto-drnGYST_NvZe3GoY

No linked samples

Sync methods for SyncAccessHandle in File System Access API

Updates asynchronous methods (flush(), getSize(), truncate()) in SyncAccessHandle in File System Access API to synchronous methods. SyncAccessHandle currently has a mix of sync and async methods, hindering the performance and the usability, especially for applications porting c/c++ to Wasm. This update will bring consistency in the API usage and improve the performance for Wasm-based libraries. #

This feature was specified in this Spec.

TLS ClientHello extension permutation

Randomize the order of TLS ClientHello extensions, to reduce potential ecosystem brittleness. This change is only visible to HTTPS server implementers. #

This feature was specified in this Spec.

Resources

Docs: https://docs.google.com/document/d/13hbMJDFU8kZ_qtLukNYoWZOEnr0wRKeP6XBmY_TQ0B4/edithttps://github.com/dadrian/clienthello-randomization/blob/main/EXPLAINER.md

No linked samples

User-Agent Reduction Phase 5

As previously detailed in https://blog.chromium.org/2021/09/user-agent-reduction-origin-trial-and-dates.html, we intend to proceed with Phase 5 of the User-Agent Reduction plan. The <platform> and <oscpu> tokens (i.e., parts of the User-Agent string) are reduced to the relevant <unifiedPlatform> token values, and will no longer be updated. Additionally, the values for navigator.platform are frozen on desktop platforms (see https://www.chromium.org/updates/ua-reduction/#reduced-navigatorplatform-values-for-all-versions). This is phase 5 of the User-Agent reduction plan as described in https://blog.chromium.org/2021/09/user-agent-reduction-origin-trial-and-dates.html. For use cases requiring high-entropy OS version, CPU architecture, bitness or Wow64-ness, developers are encouraged to request that via the User Agent Client Hints API, in particular the Sec-CH-UA-Platform, Sec-CH-UA-Platform-Version, Sec-CH-UA-WoW64, Sec-CH-UA-Arch, and Sec-CH-UA-Bitness client hints. #

This feature was specified in this Spec.

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 106

This release of Chrome had 3 features deprecated.

Deprecate Persistent Quota

We plan to deprecate support of the window.PERSISTENT quota type in requestFileSystem(). #

Deprecate non-ASCII characters in cookie domain attributes

To align with the latest specification in RFC 6265bis, Chromium will reject cookies with a "Domain" attribute that contains a non-ASCII character (e.g. Domain=éxample.com). #

This feature was specified in this Spec.

Remove HTTP/2 push

Remove the ability to receive, keep in memory, and use HTTP/2 push streams sent by the server. Send SETTINGS_ENABLE_PUSH = 0 at the beginning of every HTTP/2 connection to request that servers not send them.

This feature was specified in this Spec.

Removed features in 106

This release of Chrome had 0 features removed.