Stable release date: March 4th, 2025
Unless otherwise noted, the following changes apply to Chrome 134 stable channel release for Android, ChromeOS, Linux, macOS, and Windows.
HTML and DOM
Customizable <select>
Element
Customizable <select>
allows developers to take complete control of therendering of <select>
elements by adding the appearance: base-select
CSSproperty and value.
This feature relies on the SelectParserRelaxation
flag, which changes the HTMLparser to allow more tags within the <select>
tag.
Tracking bug #40146374 | ChromeStatus.com entry | Spec
Select parser relaxation
This change makes the HTML parser allow additional tags in <select>
besides<option>
, <optgroup>
, and <hr>
.
This feature is gated by the temporary policy (SelectParserRelaxationEnabled
).This is a temporary transition period, and the policy will stop working from Chrome 141.
If you are experiencing problems that you believe are caused by this change,there's a reverse origin trial to disable the parser relaxation.
Tracking bug #335456114 | ChromeStatus.com entry | Spec
Dialog light dismiss
One of the nice features of the Popover API is its light dismiss behavior.This behavior is now part of <dialog>
, with a newclosedby
attribute controlling the behavior:
<dialog closedby="none">
: No user-triggered closing of dialogs at all.<dialog closedby="closerequest">
: Pressing Esc (or other close trigger) closes the dialog<dialog closedby="any">
: Clicking outside the dialog, or pressing Esc, closes the dialog. Akin topopover="auto"
behavior.
Tracking bug #376516550 | ChromeStatus.com entry | Spec
CSS
CSS highlight inheritance
With CSS highlight inheritance, the CSS highlight pseudo-classes, such as::selection
and ::highlight
, inherit their properties through the pseudohighlight chain, rather than the element chain.The result is a more intuitive model for inheritance of properties in highlights.
PWA
Document subtitle (Fix PWA app titles)
This feature allows to specify complementary information about the currentwindow of an installed running PWA. It adds a subtitle to the page to providecontextual information that is displayed in the window's title bar. Thisreplaces the text contained in the HTML title element.
Tracking bug #1351682 | ChromeStatus.com entry | Spec
User link capturing on PWAs
Web links automatically direct users to installed web apps.To better align with users' expectations around installed experiences,Chrome makes it easier to move between the browser and installed web apps.When the user clicks a link that could be handled by an installed web app,the link will open in that installed web app.Users can change this behavior through the installed web app's settings.Developers can control this behavior with thelaunch_handler manifest property,and can reference thisdeveloper documentationfor more information about howdeep linking works with installed web apps.
Performance
Document-Policy: expect-no-linked-resources
The expect-no-linked-resources
configuration point in Document Policy allows adocument to hint to the user agent to better optimize its loading sequence, suchas not using the default speculative parsing behavior.
User Agents have implemented speculative parsing of HTML to speculatively fetchresources that are present in the HTML markup, to speed up page loading. For thevast majority of pages on the Web that have resources declared in the HTMLmarkup, the optimization is beneficial and the cost paid in determining suchresources is a sound tradeoff. However, the following scenarios might result ina sub-optimal performance tradeoff versus the explicit time spent parsing HTML fordetermining sub resources to fetch:
- Pages that don't have any resources declared in the HTML.
- Large HTML pages with minimal or no resource loads that could explicitlycontrol preloading resources using other preload mechanisms available.
The expect-no-linked-resources
Document-Policy hints the User Agent that it maychoose to optimize out the time spent in such sub resource determination.
Tracking bug #365632977 | ChromeStatus.com entry | Spec
Explicit resource management (async)
These features address a common pattern in software development regarding the lifetime and management of various resources (for example memory and I/O). This pattern generally includes the allocation of a resource and the ability to explicitly release critical resources.
Tracking bug #42203814 | ChromeStatus.com entry | Spec
Explicit resource management (sync)
These features address a common pattern in software development regarding the lifetime and management of various resources (for example memory and I/O). This pattern generally includes the allocation of a resource and the ability to explicitly release critical resources.
Tracking bug #42203506 | ChromeStatus.com entry | Spec
Extend the console.timeStamp
API to support measurements and presentation options
Extends the console.timeStamp()
API, in a backwards-compatiblemanner, to provide a high-performance method for instrumenting applications andsurfacing timing data to the Performance panel in DevTools.
Timing entries added with the API can have a custom timestamp, duration andpresentation options (track, swimlane, and color).
Web APIs
Adds an interestGroups()
method to the shared storage worklet, to return theProtected Audience interest groups associated with the shared storage origin'sowner, with some additional metadata.
This API provides the Protected Audience buyer with a better picture of what'shappening with their users, allowing for Private Aggregation reports.
Attribution reporting Feature: Remove aggregatable report limit when trigger context ID is non-null
This change is based on API caller feedback and the need for being able to measure a higher number of conversion events for certain user flows.
Currently the API has a limit that allows up to 20 aggregatable reports to be generated per source registration which is restrictive for use cases where a user may have a longer user journey. This change removes the aggregatable report limit when a trigger context ID is provided as part of the registration. The removal of this limit is restricted to only when the trigger context ID is specified, because when it is specified the API applies a higher rate of null reports which helps to protect against cross-site information leaking through report counts.
Additionally, aggregatable reports will still be bound by other limits that restrict the total amount of information that can be measured, such as the L1 contribution budget (65,536) per source and the attribution rate limit.
Bounce tracking mitigations on HTTP Cache
Bounce tracking mitigations for the HTTP cache is an extension to existinganti-bounce-tracking behavior. It removes the requirement that a suspectedtracking site must have performed storage access in order to activate bouncetracking mitigations.
Chrome's initially proposed bounce tracking mitigation solution triggers when asite accesses browser storage (for example, in cookies) during a redirect flow. However,bounce trackers can systematically circumvent such mitigations by using the HTTPcache to preserve data. By relaxing the triggering conditions for bouncetracking mitigations, the browser should be able to catch bounce trackers usingthe HTTP cache.
Tracking bug #40264244 | ChromeStatus.com entry | Spec
LLM-powered on-device detection of abusive notifications on Android
This launch aims to hide the contents of notifications that are suspected to beabusive. 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-devicemodel.
OffscreenCanvas
getContextAttributes
Add the getContextAttributes
interface from CanvasRenderingContext2D
toOffscreenCanvasRenderingContext2D
.
Tracking bug #388437261 | ChromeStatus.com entry | Spec
Enables Shared Storage callers to customize the number of contributions perPrivate Aggregation report.
This feature enables Shared Storage callers to configure per-contextcontribution limits with a new field, maxContributions
. Callers set this fieldto override the default number of contributions per report—larger and smallernumbers 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 proportionalto the chosen number of contributions per report. We expect that opting intolarger reports will increase the cost of operating the Aggregation Service.
Protected Audience callers won't be affected by this feature. However, we areplanning to add support for customizing the number of contributions forProtected Audience reports in future features.
Tracking bug #376707230 | ChromeStatus.com entry | Spec
Integrates the Web Locks API into Shared Storage. This prevents scenarios such as wherecross-site reach measurement can result in duplicate reporting, due to thepotential race conditions within the get()
and set()
logic.
This change:
- Introduces
navigator.locks.request
to the worklet environment. - Introduces
{ withLock: <resource>}
option to all modifier methods. - Introduces a batch modify method:
sharedStorage.batchUpdate(methods,options)
. This method, with thewithLock
option, allows multiple modifiermethods to be executed atomically, enabling use cases where a website needsto maintain consistency while updating data organized across multiple keys.
Tracking bug #373899210 | ChromeStatus.com entry
Rendering and graphics
Support ImageSmoothingQuality
in PaintCanvas
Add support for the imageSmoothingQuality
attribute on Paint Canvas.This lets you choose the quality or performance tradeoff when scaling images.There are three options in total for imageSmoothingQuality
: low
, medium
and high
.
Tracking bug #None | ChromeStatus.com entry | Spec
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.
Origin trials
Digital Credential API
Websites can and do get credentials from mobile wallet apps through a variety of mechanisms today, for example, custom URL handlers and QR code scanning. This feature lets sites request identity information from wallets using Android's IdentityCredential
CredMan
system. It is extensible to support multiple credential formats (for example, 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.
The origin trial starting in Chrome 134 adds support for this API on desktop platform, where Chrome on Desktop will securely communicate with the digital wallet on the Android phone to fetch the requested credentials.
Origin Trial | Tracking bug #40257092 | ChromeStatus.com entry | Spec
Deprecation trial for SelectParserRelaxation
This is a deprecation trial, which re-enables the old parser behavior for parsing <select>
tags. Under that old behavior, non-supported content is silently discarded and not included in the DOM content underneath the <select>
. This trial can be used in case the new behavior enabled from Chrome 135 breaks a site.
Origin Trial | ChromeStatus.com entry
Deprecations and removals
Remove nonstandard getUserMedia
audio constraints
Blink supports a number of nonstandard goog
-prefixed constraints forgetUserMedia
from some time before constraints were properly standardized.
Usage has gone down significantly to between 0.000001% to 0.0009% (depending on theconstraint) and some of them don't even have an effect due to changes in theChromium audio-capture stack. Soon none of them will have any effect due toother upcoming changes.
We don't expect any major regressions due to this change. Applications usingthese constraints will continue to work, but will get audio with defaultsettings (as if no constraints were passed). They can opt to migrate to standardconstraints.