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 134

Enabled (22) | Origin Trial (2) | Behind a flag (4) | Deprecated (1) | Removed (0)

Enabled by default in 134

This release of Chrome had 22 new features.

Allow reading interest groups in Shared Storage Worklet

An interestGroups() method is added to the shared storage worklet, to return the Protected Audience interest groups associated with the shared storage origin's owner, with some additional metadata. This API provides the Protected Audience buyer with a better picture of what's happening with their users, allowing for Private Aggregation reports.

Attribution Reporting Feature: Remove Aggregatable report limit when trigger context ID is non-null

We are landing the following change to the Attribution Reporting API focused on: * Removing aggregatable report limit when trigger context ID is non-null

Bounce Tracking Mitigations on HTTP Cache

Bounce tracking mitigations for the HTTP cache is an extension to existing anti-bounce-tracking behavior. It removes the requirement that a suspected tracking site must have performed storage access in order to activate bounce tracking mitigations. Chrome's initially proposed bounce tracking mitigation solution triggers when a site accesses browser storage (e.g. cookies) during a redirect flow. However, bounce trackers can systematically circumvent such mitigations by using the HTTP cache to preserve data. By relaxing the triggering conditions for bounce tracking mitigations, the browser should be able to catch bounce trackers using the HTTP cache. #

This feature was specified in this Spec.

CSS Highlight Inheritance

With CSS Highlight Inheritance, the CSS Highlight pseudo classes, such as ::selection and ::highlight, inherit their properties through the pseudo highlight chain, rather than the element chain. The result is a more intuitive model for inheritance of properties in highlights. Specifically, "When any supported property is not given a value by the cascade ... its specified value is determined by inheritance from the corresponding highlight pseudo-element of its originating element’s parent element." There are some caveats due to properties not allowed on a highlight pseudo and historical usage: units depending on fonts, container queries, viewports etc. use metrics from the originating element, and all custom property values used in the highlight pseudo are taken from the originating element (inherited through the originating element cascade). (https://drafts.csswg.org/css-pseudo-4/#highlight-cascade)

This feature was specified in this Spec.

Customizable <select> Element

Customizable <select> allows developers to take complete control of the rendering of <select> elements by adding the appearance:base-select CSS property. This feature relies on the SelectParserRelaxation flag, which changes the HTML parser to allow more tags within the <select> tag. Sites which include additional tags inside <select> which were getting removed before, such as <span>s, or are including an extremely large number of <option>s in their <select>, may be affected by SelectParserRelaxation. This feature and SelectParserRelaxation can be controlled with the SelectParserRelaxation enterprise policy. Some issues that have come up in prior launches of SelectParserRelaxation include <select>s taking a very long time to open or <option>s not showing up anymore. #

This feature was specified in this Spec.

Resources

Docs: https://open-ui.org/components/select

No linked samples

Dialog light dismiss

One of the nice features of the Popover API is its light dismiss behavior. This chromestatus is about bringing that same capability to `<dialog>`. A new `closedby` attribute controls behavior: `<dialog closedby=none>` - no user-triggered closing of dialogs at all. `<dialog closedby=closerequest>` - user pressing ESC (or other close trigger) closes the dialog `<dialog closedby=any>` - user clicking outside the dialog, or pressing ESC, closes the dialog. Akin to `popover=auto` behavior. #

This feature was specified in this Spec.

Document Subtitle (Fix PWA app titles)

Installed web apps can change the text on the title bar based on the page's content. The current behavior is that the installed web application will put the app's name from the manifest and append the page’s inner text from the `<title>` HTML tag in the head of the page. This often can create awkward titles for some web apps. This feature allows to specify complementary information about the current window of an installed running PWA. It adds a subtitle to the page to provide contextual information that is displayed in the window's title bar. This replaces the text contained in the HTML's title tag. #

This feature was specified in this Spec.

Resources

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

Samples: https://diek.us/pwinterhttps://youtu.be/qdBhSmawNc8?t=1581

Document-Policy: expect-no-linked-resources

The expect-no-linked-resources configuration point in Document Policy allows a document to hint to the user agent to better optimize its loading sequence, such as not using the default speculative parsing behavior. User Agents have implemented speculative parsing of HTML to speculatively fetch resources that are present in the HTML markup, to speed up page loading. For the vast majority of pages on the Web that have resources declared in the HTML markup, the optimization is beneficial and the cost paid in determining such resources is a sound tradeoff. However, the following scenarios might result in a sub-optimal performance tradeoff vs. the explicit time spent parsing HTML for determining sub resources to fetch: * Pages that do not have any resources declared in the HTML. * Large HTML pages with minimal or no resource loads that could explicitly control preloading resources via other preload mechanisms available. `expect-no-linked-resources` Document-Policy hints the User Agent that it may choose to optimize out the time spent in such sub resource determination. #

This feature was specified in this Spec.

Error.isError

Adds the Error.isError(obj) static method. It returns true for JS native errors and DOMExceptions, and false otherwise.

This feature was specified in this Spec.

Explicit resource management (async)

This feature addresses a common pattern in software development regarding the lifetime and management of various resources (memory, I/O, etc.). This pattern generally includes the allocation of a resource and the ability to explicitly release critical resources. #

This feature was specified in this Spec.

Explicit resource management (sync)

This feature addresses a common pattern in software development regarding the lifetime and management of various resources (memory, I/O, etc.). This pattern generally includes the allocation of a resource and the ability to explicitly release critical resources. #

This feature was specified in this Spec.

Expose CSSFontFeaturesValueRule

We were accidentally missing the [Exposed=Window] on the CSSFontFeaturesValueRule interface, so window.CSSFontFeaturesValueRule is incorrectly undefined even though the API was otherwise exposed. This interface has no constructor and it's unlikely that any website would be looking for it specifically, but it's technically an interop & spec-conformance bug, and maybe in theory slightly useful for feature detection. #

This feature was specified in this Spec.

Resources

Docs: https://developer.mozilla.org/en-US/docs/Web/API/CSSFontFeatureValuesRule

No linked samples

Extend the console.timeStamp API to support measurements and and presentation options

This feature extends the console.timeStamp() API, in a backwards-compatible manner, to provide a high-performance method for instrumenting applications and surfacing timing data to the Performance panel in DevTools. Timing entries added with the API can have a custom timestamp, duration and presentation options (track / swimlane and color).

This feature was specified in this Spec.

LLM-powered on-device detection of abusive notifications on Android

This launch aims to hide the contents of notifications that are suspected to be abusive. The user will then have the options to dismiss, show the notification, or unsubscribe from the origin. This detection is to be done by an on-device model.

OffscreenCanvas getContextAttributes

Add the getContextAttributes interface from CanvasRenderingContext2D to OffscreenCanvasRenderingContext2D. #

This feature was specified in this Spec.

Private Aggregation API: per-context contribution limits for Shared Storage callers

Enables Shared Storage callers to customize the number of contributions per Private Aggregation report. This feature enables Shared Storage callers to configure per-context contribution limits via a new field, `maxContributions`. Callers set this field to override the default number of contributions per report — larger and smaller numbers will both be permitted. Chrome will accept values of `maxContributions` between 1 and 1000 inclusive; larger values will be interpreted as 1000. Due to padding, the size of each report's payload will be roughly proportional to the chosen number of contributions per report. We expect that opting into larger reports will increase the cost of operating the Aggregation Service. Protected Audience callers will not be affected by this feature. However, we are planning to add support for customizing the number of contributions for Protected Audience reports in future features. #

This feature was specified in this Spec.

Protected Audience (B&A): Support multiple sellers in navigator.getInterestGroupAdAuctionData

Add support for navigator.getInterestGroupAdAuctionData to return the encrypted B&A request payload for multiple sellers in a single call. This allows multiple sellers sharing a single piece of on-page JavaScript to more efficiently run an auction.

Select parser relaxation

This change makes the HTML parser allow additional tags in <select> besides <option>, <optgroup>, and <hr>. This change is in support of the customizable <select> feature but is being shipped first because it can be done separately and has some compat risk which I'd like to get feedback on. This feature is gated by the temporary policy (SelectParserRelaxationEnabled). This is a temporary transition period, and the policy will stop working on milestone M141. Customizable select explainer: https://open-ui.org/components/customizableselect/ I did a compat analysis and determined that the vast majority of sites which would see the effects of the parser changes would not have their behavior changed. More details here: https://github.com/whatwg/html/issues/10310 If there are major issues with this change, I will reassess and make adjustments to the parser as needed. #

This feature was specified in this Spec.

Support ImageSmoothingQuality in PaintCanvas

Add support for the imageSmoothingQuality attribute on Paint Canvas. It allows a web developer to choose the quality/performance tradeoff when scaling images. There are 3 options in total for imageSmoothingQuality: low, medium and high. Chrome platform status entry for its launch on Canvas 2D: https://chromestatus.com/feature/4717415682277376

This feature was specified in this Spec.

Resources

No linked docs

Samples: https://jsfiddle.net/khru0mzj

Support Web Locks API in Shared Storage

Today, concurrent execution of shared storage worklets in scenarios like cross-site reach measurement can result in duplicate reporting, due to the potential race conditions within the "get() and set()" logic. To address this issue, we propose integrating the Web Locks API into Shared Storage. Specifically, - Introduce navigator.locks.request to the worklet environment. - Introduce { withLock: <resource>} option to all modifier methods. - Introduce a batch modify method: sharedStorage.batchUpdate(methods, options). This method, with the 'withLock' option, allows multiple modifier methods to be executed atomically, enabling use cases where a website needs to maintain consistency while updating data organized across multiple keys. #

User Navigation Capturing on Desktop

Web links now direct users to installed web apps. This aligns with users' installed app expectations. Chrome makes it easier to move between the browser and installed web apps. Clicking a link that could be handled by an installed web app with the launch_handler field specified, the link will open in that installed web app, following the launch handling behavior. Users can change this behavior through the installed web app's settings. Developers can control this behavior via the launch_handler manifest property. For more information, please refer to https://docs.google.com/document/d/e/2PACX-1vSqYzAmiLr-58OgSWBITtAAu6_2XUpjjNEdMvc6IdZn9DjQCeVrE0SKViumyly0cpryxAONMq62zwHw/pub, or watch https://youtu.be/OFH9TfrqZCY #

Resources

Docs: https://bit.ly/pwa-navigation-capturinghttps://bit.ly/pwa-navigation-capturing-preshttps://youtu.be/OFH9TfrqZCYhttps://docs.google.com/document/d/e/2PACX-1vSqYzAmiLr-58OgSWBITtAAu6_2XUpjjNEdMvc6IdZn9DjQCeVrE0SKViumyly0cpryxAONMq62zwHw/pub

Samples: https://googlechrome.github.io/samples/pwa-testing/chat-app-deep-linkinghttps://googlechrome.github.io/samples/pwa-testing/fake-chat-app-companion

WebGPU Subgroups

Adds subgroup functionality to WebGPU. Subgroup operations perform SIMT operations to provide efficient communication and data sharing among groups of invocations. These operations can be used to accelerate applications by reducing memory overheads incurred by inter-invocation communication.

This feature was specified in this Spec.

Origin Trials in-progress in 134

This release of Chrome had 2 new origin trials.

Digital Credentials API (presentation support)

Websites can and do get credentials from mobile wallet apps through a variety of mechanisms today (custom URL handlers, QR code scanning, etc.). This Web Platform feature would allow sites to request identity information from wallets via Android's IdentityCredential CredMan system. It is extensible to support multiple credential formats (eg. ISO mDoc and W3C verifiable credential) and allows multiple wallet apps to be used. Mechanisms are being added to help reduce the risk of ecosystem-scale abuse of real-world identity (see https://docs.google.com/document/u/1/d/1L68tmNXCQXucsCV8eS8CBd_F9FZ6TNwKNOaFkA8RfwI/edit). #

This feature was specified in this Spec.

Resources

No linked docs

Samples: https://digitalcredentials.dev/docs/requirements

Select parser relaxation

This change makes the HTML parser allow additional tags in <select> besides <option>, <optgroup>, and <hr>. This change is in support of the customizable <select> feature but is being shipped first because it can be done separately and has some compat risk which I'd like to get feedback on. This feature is gated by the temporary policy (SelectParserRelaxationEnabled). This is a temporary transition period, and the policy will stop working on milestone M141. Customizable select explainer: https://open-ui.org/components/customizableselect/ I did a compat analysis and determined that the vast majority of sites which would see the effects of the parser changes would not have their behavior changed. More details here: https://github.com/whatwg/html/issues/10310 If there are major issues with this change, I will reassess and make adjustments to the parser as needed. #

This feature was specified in this Spec.

Flagged features in 134

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

CSS shape() function

shape() allows responsive free-form shapes in clip-path. The author can define a series of verbs, roughly equivalent to the verbs in path(), but where the verbs accept responsive units (e.g. % or vw), as well as any CSS values such as custom properties or rather than pixel-values. See https://drafts.csswg.org/css-shapes-2/#shape-function #

This feature was specified in this Spec.

Camera Effects Status: Background Blur

Exposes read-only camera effect state on VideoFrameMetadata. This allows web developers to monitor changes in platform video effects like background blur. The pattern can be extended to support additional platform effects, such as lighting adjustments and auto face framing. #

Resources

No linked docs

Samples: https://codepen.io/Bryant-Chandler/pen/LYwrZEL

Link rel=facilitated-payment to support push payments

Adds support for <link rel="facilitated-payment" href="..."> as a hint that the browser should notify registered payment clients about a pending push payment. #

Resources

Docs: https://bit.ly/html-payment-link-dd

No linked samples

NavigateEvent sourceElement

When a navigation is initiated by an Element (i.e., a link click or a form submission), the sourceElement property on the NavigateEvent will be the initiating element. #

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 134

This release of Chrome had 1 features deprecated.

Remove nonstandard getUserMedia audio constraints

Blink supports a number of nonstandard goog-prefixed constraints for getUserMedia from some time before constraints were properly standardized. Usage has gone down significantly ~0.000001% to 0.0009% (depending on the constraint) and some of them do not even have an effect due to changes in the Chromium audio-capture stack. Soon none of them will have any effect due to other upcoming changes. We do not expect any major regressions due to this change. Applications using these constraints will continue to work, but will get audio with default settings (as if no constraints were passed). They can easily migrate to standard constraints. #

This feature was specified in this Spec.

Removed features in 134

This release of Chrome had 0 features removed.