Chrome Release Summary

Chrome version: 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 114

Enabled (10) | Origin Trial (1) | Behind a flag (1) | Deprecated (0) | Removed (0)

Enabled by default in 114

This release of Chrome had 10 new features.

ArrayBuffer.prototype.transfer

Adds the ArrayBuffer.prototype.transfer method, which copies the receiver buffer, detaches the receiver, then returns the copy. This adds a JS API for what is possible via structured cloning. Also adds ArrayBuffer.prototype.transferToFixedLength and the ArrayBuffer.prototype.detached getter. This is a TC39 proposal. #

This feature was specified in this Spec.

Resources

Docs: https://github.com/tc39/proposal-arraybuffer-transfer

No linked samples

CSS headline balancing

Adjusts the lengths of lines in a paragraph balanced, for better readability and to minimize typographic orphans. This is often useful for headlines. For example: h1, h2, h3, h4, h5, h6, blockquote { text-wrap: balance; } More examplles can be found in a Chrome Developers blog <https://developer.chrome.com/blog/css-text-wrap-balance/>. In addition to the "text-wrap" property, the "white-space-collapse" property is also supported, and the "white-space" property becomes a shorthand of these two properties. #

This feature was specified in this Spec.

Resources

Docs: https://docs.google.com/document/d/16-T9gqCagJxcST6hcnneSb7qGunxXa37_UHYqMqhPL0/edit?usp=sharing

No linked samples

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

Network State Partitioning

Partition network state by the network partition key (which consists of top frame site and possibly frame site), to protect against cross-site tracking through the use of side channels. "Network State" here includes connections (H1, H2, H3, websocket), the DNS cache, ALPN/H2 support data, TLS/H3 resumption information, Reporting/NEL configuration and uploads, and Expect-CT information. Explainer: https://github.com/MattMenke2/Explainer---Partition-Network-State/blob/main/README.md #

This feature was specified in this Spec.

Scrollend Event

Helps developers reliably tell when a scroll has completed (including both the scroll itself and any updates to offsets from the scroll) through event listeners. Knowing when a scroll has completed is useful for various reasons, e.g. synchronizing some logic on the snapped section, fetching stuff in a list, triggering new animations, etc. This feature greatly simplifies the logic for handling end-of-scroll effects, ensuring that they are consistent across many different input modalities. Currently, developers address this need by observing scroll events and building ad-hoc timeout algorithms. #

This feature was specified in this Spec.

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.

Use RegExp v flag instead of u for HTML pattern attribute

The `<input pattern>` attribute allows developers to specify a regular expression pattern against which the input’s values are checked for validity. ``` <label> Part number: <input pattern="[0-9][A-Z]{3}" name="part" title="A part number is a digit followed by three uppercase letters."> </label> ``` When the `pattern` attribute was first implemented, these regular expressions were compiled without any RegExp flags. In 2014, the HTML Standard changed this by implicitly enabling the `u` flag for the pattern attribute, enabling better Unicode support (including support for Unicode character properties like `\p{Letter}`). This change shipped in Chrome 53 (https://chromestatus.com/feature/4753420745441280). Now, we’re taking this to the next level by enabling the new RegExp `v` flag instead of `u`, enabling the use of set notation, string literal syntax, and Unicode properties of strings. (Context: The RegExp `v` flag is a JavaScript language feature which previously went through the Blink Intents process, and is now shipping in Chrome 112: https://chromestatus.com/feature/5144156542861312 This new ChromeStatus entry is specifically about integrating it with the HTML `pattern` attribute.) #

This feature was specified in this Spec.

Resources

No linked docs

Samples: https://mathiasbynens.be/demo/pattern-u-vs-v

Web Bluetooth exclusionFilters option in requestDevice()

The "exclusionFilters" option in navigator.bluetooth.requestDevice() allows web developers to exclude some devices from the browser picker. It can be used to exclude devices that match a broader filter but are unsupported. #

This feature was specified in this Spec.

Resources

Docs: https://developer.chrome.com/articles/bluetooth/#exclusion-filters

Samples: https://googlechrome.github.io/samples/web-bluetooth/exclusion-filters.html

WebAssembly extended-const Proposal

We implement the WebAssembly extended-const proposal according to https://github.com/WebAssembly/extended-const. Specifically, we add i32.add, i32.sub, i32.mul, i64.add, i64.sub and i64.mul to the list of constant instructions. #

This feature was specified in this Spec.

overflow:overlay aliases overflow:auto

Removes the overflow:overlay scrolling mode, and makes overlay a legacy alias of auto. overflow:overlay is the same as overflow:auto, except that it does not prevent content from extending into the scrollbar gutter, in cases where non-overlay OS scrollbars are present. (If overlay scrollbars are present, there is no effect.) Example: With overflow:overlay: https://output.jsbin.com/yujenuq/quiet With overflow:auto: https://output.jsbin.com/ruzogaf/quiet #

This feature was specified in this Spec.

Resources

No linked docs

Samples: https://output.jsbin.com/yujenuq/quiethttps://output.jsbin.com/ruzogaf/quiet

Origin Trials in-progress in 114

This release of Chrome had 1 new origin trials.

Removal of X-Requested-With in WebView

Removes the default X-Requested-With header from HTTP requests made by WebView. The X-Requested-With header is set by WebView, with the package name of the embedding apk as the value. This use of the header will be discontinued. Developers who rely on this header can sign up for a deprecation origin trial [1] to continue to receive the header during the deprecation period. The deprecation origin trial will be extended until replacement APIs are available to address use cases of the header, as explained in this Android Developer Blog Post [2] [1]: https://developer.chrome.com/origintrials/#/view_trial/1390486384950640641 [2]: https://android-developers.googleblog.com/2023/02/improving-user-privacy-by-requiring-opt-in-to-send-x-requested-wih-header-from-webview.html #

This feature was specified in this Spec.

Flagged features in 114

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

JSON.parse source text access

This proposal adds an object with a "source" property that is passed as the 3rd argument to the reviver function in JSON.parse. This property contains the raw source text for the value being parsed. It is designed to address the issue that JSON parsing is lossy, e.g. around BigInt values. For example, `JSON.parse(" 9999999999999999", (key, val, {source}) => BigInt(source))`. #

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 114

This release of Chrome had 0 features deprecated.

Removed features in 114

This release of Chrome had 0 features removed.