Published: September 18, 2024
Unless otherwise noted, the following changes apply to the newest Chrome beta channel release for Android, ChromeOS, Linux, macOS, and Windows. Learn more about the features listed here through the provided links or from the list on ChromeStatus.com. Chrome 130 is beta as of September 18, 2024. You can download the latest on Google.com for desktop or on Google Play Store on Android.
CSS
This release adds four new CSS features.
CSS Container Queries flat tree lookup
The specification for container queries changed to look up flat tree ancestors.
This change is only relevant for shadow DOM where an element will now be able to
see non-named containers inside shadow trees into which the element or one of
its ancestors are slotted, even if the CSS rule does not use ::part()
or
::slotted()
.
CSS Nesting: The nested declarations rule
Keeps bare declarations following a nested rule in their place, by wrapping
those declarations in CSSNestedDeclarations
rules during parsing.
Full and unprefixed box-decoration-break support
Adds support for box-decoration-break: clone
both for inline fragmentation
(line layout) and block fragmentation (pagination for printing and multicol).
Previously in Chrome, only box-decoration-break:slice
(the initial value) was
supported for block fragmentation, whereas for inline
fragmentation,box-decoration-break:clone
was also supported, but only when
using the prefixed -webkit-box-decoration-break
property.
Allow more pseudo-elements and pseudo-classes after ::part()
CSS selectors that use the ::part()
pseudo-element are allowed to have other
CSS pseudo-elements (except ::part()
) and many types of other CSS
pseudo-classes after them. Combinators are still not allowed after ::part()
,
and pseudo-classes that depend on tree structure are not allowed.
Previously Chrome only allowed a limited set of pseudo-classes and
pseudo-elements after ::part()
. This change allows all of the pseudo-classes
and pseudo-elements that should be allowed. It means selectors such as
::part(part-name):enabled
and ::part(part-name)::marker
are now allowed.
Web APIs
Attribution Reporting API feature (Attribution Scopes)
This change is based on ad tech feedback and the need for more fine grained filtering controls before the attribution process takes place. It lets API callers specify a field called "attribution scopes" which will be used for filtering before starting the regular attribution flow. This allows API callers more fine grained control over the attribution granularity and the ability to receive proper attribution reports when there are multiple different advertisers or campaigns that all convert on the same destination site.
Attribution Reporting API feature (debug key privacy improvement)
This change helps to mitigate a potential privacy gap with debug keys.
Currently the API allows a source debug key or a trigger debug key to be specified if third-party cookies are available and can be set by API callers. If either a source or trigger debug key is specified then it will be included in the attribution report. This may lead to a privacy leak if third-party cookies are only allowed on either the publisher or the advertiser site but not both.
This change mitigates this issue by enforcing that source debug keys and trigger debug keys are only included in the attribution report if they're present on both the source and trigger, which would mean that third-party cookies were available on both the publisher and advertiser site. This change will apply to both event-level reports and aggregatable reports.
Compression dictionary transport with shared Brotli and shared Zstandard
This feature adds support for using designated previous responses, as an external dictionary for content encoding compressing responses with Brotli or Zstandard.
Enterprises might experience potential compatibility issues with enterprise
network infrastructure that intercepts HTTPS traffic and is sensitive to unknown
content encodings. The enterprise policy CompressionDictionaryTransportEnabled
is available to turn off the compression dictionary transport feature.
Concurrent smooth scrollIntoView()
The
scrollIntoView()
method with behavior: "smooth"
lets developers create scroll containers that
scroll to their descendants with a gentle scroll animation. This feature fixes
Chrome's implementation of the API so that ongoing scrollIntoView
animations
are not canceled by unrelated scrolls on other scroll containers.
The feature also fixes cases where Chrome fails to scroll to a page's fragment
anchor because of a competing scrollIntoView
that is invoked when the page
loads.
Document picture-in-picture: add option to ignore window bounds cache
This adds a new parameter (preferInitialWindowPlacement
) to the document
picture-in-picture API that, when set to true, hints to the user agent that it
shouldn't try to reuse the position or size of the previous document
picture-in-picture from this site when opening this one.
Often, a document picture-in-picture window will close and re-open multiple times for the same site, such as moving a video conference to and from PiP. The user agent is free to re-open the PiP window at its most recent size and location, so that it stays where the user last moved it and provides continuity between the PiP windows. However, if the new window is semantically unrelated to the previous window, such as if it is a new video call, then the developer can use this parameter to provide a hint to the user agent that this window might be better opened in its default position and size instead.
Learn about how to open the window in its default position and size.
Improved error reporting in IndexedDB for large value read failures
Change to reporting for certain error cases that were previously reported with a
DOMException
and the message "Failed to read large IndexedDB value".
Chrome will now raise a DOMException
with the name "NotFoundError"
when the
file containing the data being read by an IDBRequest is missing from the disk so
that sites can take the appropriate corrective action when an unrecoverable
failure occurs. Corrective actions could include deleting the entry from the DB,
notifying the user, or re-fetching the data from servers.
Keyboard focusable scroll containers
This feature makes scrollers without focusable children keyboard-focusable by default.
This is an important improvement to help make scrollers and contents within scrollers more accessible to all users. You can read more about its benefits in Keyboard focusable scrollers. Keyboard focusable scrollers will be enabled by default starting in Chrome 130. If websites need time to adjust to this new feature, there are a few options:
- The Keyboard focusable scrollers opt out deprecation trial can be used to opt back out of the feature for a limited time on a given site. This can be used through Chrome 132, ending March 18, 2025.
- The
KeyboardFocusableScrollersEnabled enterprise policy
available from Chrome 127 can be used for the same purpose.
Protected Audience Bidding and Auction Services
The Protected Audience API (formerly known as FLEDGE) is a Privacy Sandbox proposal to serve remarketing and custom audience use cases, designed so third parties cannot track user browsing behavior across sites.
This feature, Protected Audience Bidding and Auction Services, outlines a way to allow Protected Audience computation to take place on cloud servers in a trusted execution environment, rather than running locally on a user's device. Moving computations to cloud servers can help optimize the Protected Audience auction, to free up computational cycles and network bandwidth for a device.
Support non-special scheme URLs
Previously, Chrome's URL parser didn't support non-special URLs. The parser parses non-special URLs as if they had an "opaque path", which is not aligned with the URL Standard. Now, Chromium's URL parser parses non-special URLs correctly, following the URL Standard.
See bit.ly/url-non-special for more details.
WebAssembly JavaScript String Builtins
This feature exposes common JavaScript string operations for import into WebAssembly. This lets you create and manipulate JavaScript strings from WebAssembly without support within WebAssembly. This still allows for a similar performance as supported string references.
WebGPU: Dual source blending
Adds the optional GPU feature "dual-source-blending" that enables combining two fragment shader outputs into a single framebuffer. This technique is particularly useful for applications that require complex blending operations, such as those based on Porter-Duff blend modes. By reducing the need for frequent pipeline state object changes, dual source blending can enhance performance and flexibility.
Web Serial: connected
attribute and RFCOMM connection events
This feature adds a boolean SerialPort.connected
attribute. The attribute
returns true
if the serial port is logically connected. For wired serial
ports, a port is logically connected if the port is physically attached to the
system. For wireless serial ports, a port is logically connected if the device
hosting the port has any open connections to the host.
Previously, only wired serial ports dispatched connect and disconnect events. With this feature, Bluetooth RFCOMM serial ports will dispatch these events when the port becomes logically connected or disconnected.
This feature is intended to allow applications to detect when a Bluetooth RFCOMM serial port is available without opening the port.
Learn more in Bluetooth RFCOMM updates in Web Serial.
Origin trials in progress
In Chrome 130 you can opt into the following new origin trials.
Language Detector API
A JavaScript API for detecting the language of text, with confidence levels.
WebAuthn attestationFormats
Support the attestationFormats
field from WebAuthn level 3.
WebAuthn Level 3 supports a site expressing an ordered preference for credential
attestation formats in the new attestationFormats
field. This feature enables
support for this on Android, where multiple formats can be supported by passkey
providers.
Register for the WebAuthn attestationFormats trial.
Deprecations and removals
This version of Chrome introduces the following deprecations and removals. Visit ChromeStatus.com for lists of planned deprecations, current deprecations and previous removals.
This release of Chrome removes one feature.
Remove expectedImprovement
in DelegatedInkTrailPresenter
The expectedImprovement
attribute tells web developers how much improvement the
DelegatedInkTrails API will provide to their current ink latency. However, this
attribute is not worth the increase to fingerprinting entropy.
This release of Chrome deprecates one feature.
Deprecate non-standard GPUAdapter requestAdapterInfo()
method
The requestAdapterInfo()
asynchronous method in WebGPU is redundant because
developers can already get GPUAdapterInfo
synchronously using the GPUAdapter
info
attribute.