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 114

Enabled (11) | Origin Trial (2) | Behind a flag (9) | Deprecated (0) | Removed (0)

Enabled by default in 114

This release of Chrome had 11 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

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.

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 2 new origin trials.

Cross App and Web Attribution Measurement

Extends the Attribution Reporting API to allow attributing conversions that happen on the web to events that happen off the browser, within other applications. The proposal here takes advantage of OS-level support for attribution. In particular, it gives the developer an option to allow events on the mobile web to be joinable with events in Android’s Privacy Sandbox, although support for other platforms could also be implemented.

This feature was specified in this Spec.

Resources

Docs: https://docs.google.com/document/d/137lLI8Gr3gMZWSzffnkwgF0pUpVm4jbPL02O7KLh5kk/edit?resourcekey=0-52bI6HAaA1dZmT3NWP1tvg

No linked samples

background-blur

The Background Blur API allows web developers to use the native platform's API for camera background segmentation. As Background Blur has become one of the most used features on video conferencing apps like Teams, Meet, Zoom, and Webex, we want web apps to leverage the same platform APIs without completely relying on ML frameworks like TensorFlow.js, Mediapipe, WASM libraries or cloud based solutions. #

This feature was specified in this Spec.

Resources

Docs: https://github.com/riju/backgroundBlur/blob/main/explainer.mdhttps://googlechrome.github.io/samples/image-capture/background-blur.html

Samples: https://googlechrome.github.io/samples/image-capture/background-blur.html

Flagged features in 114

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

Boolean Context Style Container Queries

Support style() container queries without a declaration value, only a property name, as a way of matching non-initial values. Previously you would have to do: not style(--my-property: initial) Now you can do: style(--my-property) to match any non-initial value. #

This feature was specified in this Spec.

CSS Subgrid

Implements the CSS Grid Layout Module Level 2 specification, which introduces the concept of a "subgrid" to nested grid containers. #

This feature was specified in this Spec.

Resources

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

No linked samples

CSS overlay property

Introduce an overlay property to allow authors to keep elements in the top layer for an exit transition. The overlay property is added to indicate if an element is in the top layer or not. It can take two values: 'none', 'auto'. User agent stylesheets add !important rules to control whether elements are rendered in the top layer or not, and not let author styles override. However, authors can add 'overlay' to the list of transition-properties for an element to defer the removal from the top layer for the duration of the transition. That way the author can do exit transitions for elements like dialogs: transition-property: overlay transition-duration: 0.4s #

This feature was specified in this Spec.

Resources

No linked docs

Samples: https://github.com/chrishtr/rendering/blob/master/entry-exit-animations.md#example-code

Controlled Frame API (available only to IWAs)

Adds a Controlled Frame API available only to Isolated Web Apps (IWAs). This work adds a new Controlled Frame API which is only available to Isolated Web Apps (IWAs). Like similarly-named APIs on other platforms, Controlled Frame allows embedding all content, even third party content that can't be embedded in <iframe>. Controlled Frame also allows controlling embedded content with a collection of API methods and events. For more info on Isolated Web Apps, see the IWA explainer: https://github.com/WICG/isolated-web-apps/blob/main/README.md #

This feature was specified in this Spec.

Resources

No linked docs

Samples: https://github.com/WICG/controlled-frame/tree/main/test_app

Escape "<" and ">" in attributes on serialization

Escape "<" and ">" in values of attributes on serialization. This mitigates the risk of mutation XSS attacks, which occur when value of an attribute is interpreted as a start tag token after being serialized and re-parsed.

This feature was specified in this Spec.

Fix base URL implementation for about:srcdoc and about:blank

This work will fix inconsistencies in the current Chromium/Blink implementation of base URL for about:srcdoc and about:blank frames. The current implementation is inconsistent with the behaviors of Safari & Firefox (although those are not necessarily consistent with each other). The current implementation also exhibits a "broken" snapshotting behavior, where base URL changes in the parent/initiator frame may be visible to the child frame, but only when the child makes (and reverses) changes to its own <base> element. The work will ensure that the base URL supplied to about:srcdoc and about:blank frames is snapshotted from their initiator at the time the navigation begins. The implementation will also allow base URL to work correctly for about:srcdoc frames when those frames are in a different process from their parent. A more detailed discussion of the underlying issues involved may be found at https://github.com/whatwg/html/issues/421#issuecomment-1260360824 and https://docs.google.com/document/d/1e7T1YR5aGDg-eGHKDNnKUWcz1Dr38t_O0-XJqsMeZcE/edit?resourcekey=0-qCAYJPulnTdo9hV_dPCdhw# .

This feature was specified in this Spec.

GamePad multitouch extension

Extend the Gamepad API to support multitouch surfaces (touchpads). Providing a touchpad API eases application implementation and provides greater functionality browser interoperability. #

This feature was specified in this Spec.

Iterator helpers

Iterator helpers are new methods on iterator prototype to allow general usage and consumption of iterators. #

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

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.