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 124 is beta as of 20 March 2024. You can download the latest on Google.com for desktop or on Google Play Store on Android.
CSS
This release adds two new CSS features.
CSSImportRule.styleSheet
Allow CSSImportRule.styleSheet
to be nullable. The styleSheet
attribute in
CSSImportRule
can be null if there is no associated CSS style sheet.
CSSKeyframesRule.length
Exposes the length
attribute of CSSKeyframesRule
. Interfaces that support
indexed properties must define an integer-typed attribute named length
.
HTML
This release adds two new HTML features.
The writingsuggestions
attribute
Browsers are starting to provide writing suggestions to users as they type on various editable fields across the web. While this is generally useful for users, there are cases when developers may want to turn off browser-provided writing assistance, such as extensions or sites that provide similar functionality of their own.
The new attribute writingsuggestions
has values of true
or false
that
allow developers to turn on or off browser-provided writing suggestions. The
attribute's state for an element can also be inherited from ancestor elements,
thereby allowing developers to control this functionality at a per-element or
per-document or sub-document scale.
Keyboard-focusable scroll containers
Improves accessibility by making scroll containers focusable using sequential
focus navigation. Prior to this change, the tab key doesn't focus scrollers
unless tabIndex
is explicitly set to 0 or more.
By making scrollers focusable by default, users who can't (or don't want to) use a mouse will be able to focus clipped content using a keyboard's tab and arrow keys. This behavior is enabled only if the scroller does not contain any keyboard focusable children.
This feature will be rolled out slowly starting from Chrome 124, and available to all users by Chrome 125. Learn more about keyboard focusable scrollers.
Web APIs
Additions to the Attribution Reporting API
Features have been added to the Attribution Reporting API to create additional debugging capabilities by supporting parsing failure debug reports, improve API ergonomics by supporting a field to specify preferred registration platform, and improve privacy.
Document picture-in-picture: add option to hide back-to-tab button
This adds a new parameter (disallowReturnToOpener
) to the document
picture-in-picture API that, when set to true, hints to the browser that it
shouldn't show a button in the picture-in-picture window that allows the user
to go back to the opener tab.
While having a button to return to the opener tab always makes sense in the video picture-in-picture case (the video stream can be returned to the video element in the opener tab), this is not always the case for document picture-in-picture experiences. This gives developers more control over the user experience when they determine that such a button does not make sense for their use case.
Learn more in the documentation for Document picture-in-picture.
Document render-blocking
This feature enables authors to block rendering of a document until the critical content has been parsed, ensuring a consistent first paint across all browsers. Without this feature, the first paint's state depends on the heuristics for parser yielding which can vary across browsers.
This is particularly important for View Transitions where the parsed DOM state on the first frame can drastically change the transition created.
Note that this feature implements a <link rel=expect href="#id">
syntax that
allows a link element to reference another expected element on the page. The
rendering is then blocked until the expected element is fully parsed. This
supersedes the previous implementation of an HTML attribute that allows the
whole document to be render-blocked.
jitterBufferTarget
attribute
The jitterBufferTarget
attribute allows applications to specify a target
duration of time in milliseconds of media for the RTCRtpReceiver
jitter buffer
to hold. This influences the amount of buffering done by the user agent, which
in turn affects retransmissions and packet loss recovery. Altering the target
value allows applications to control the tradeoff between playout delay and the
risk of running out of audio or video frames due to network jitter.
pageswap
event
The pageswap
event is fired on a document's window object when a navigation
will replace this document with a new document. The event provides activation
info about the navigation (type
, NavigationHistoryEntry
for the new
document).
If the navigation has a cross-document view transition, the event is dispatched before capturing state for the old document. This allows the developer to configure the old state captured for the transition based on the navigation's activation info and the current visual state of the old document.
priority
HTTP request header
This adds the priority
request header for all HTTP requests with the priority
information for the request at the time that it was sent.
RFC 9218 (Extensible Prioritization Scheme for HTTP) defines a priority
HTTP
request header to use for signaling request priority to origins (and
intermediaries). It also defines negotiation processes and protocol-level frames
for HTTP/2 and HTTP/3 to carry the same priority information.
The header can only signal the initial priority for a resource when it was first requested while the frame-based mechanisms allow for modifying the priority after the fact.
The header can operate end-to-end to the origin servers (and provide a mechanism for the origin to override the priority if recognized by intermediaries) while the frames are limited to operating on a link level.
This feature is specifically for supporting the header-based prioritization scheme.
Private Network Access permission to relax mixed content
To establish connections to devices on a local network that don't have globally
unique names, and therefore cannot obtain TLS certificates, this feature
introduces a new option to fetch()
to declare a developers' intent to talk to
such a device. This includes a new policy-controlled feature to gate each site's
access to this capability, and new headers for the server's preflight response
to provide additional metadata.
Sec-CH-UA-Form-Factors client hint
This hint gives a server information about the user agent's form-factors. It returns one or more of the following form-factor values:
- Desktop: A user-agent running on a personal computer.
- Automotive: A user-agent embedded in a vehicle, where the user may be responsible for operating the vehicle and unable to attend to small details.
- Mobile: Small, touch-oriented device typically carried on a user's person.
- Tablet: A touch-oriented device larger than "Mobile" and not typically carried on a user's person.
- XR: Immersive devices that augment or replace the environment around the user.
- EInk: A device characterized by slow screen updates and limited or no color resolution.
- Watch: A mobile device with a tiny screen (typically less than two inches), carried in such a way that the user can glance at it quickly.
setHTMLUnsafe
and parseHTMLUnsafe
The setHTMLUnsafe
and parseHTMLUnsafe
methods allow the Declarative Shadow
DOM to be used from JavaScript. These methods also offer an easier way to
imperatively parse HTML into DOM, as compared to innerHTML
or DOMParser
.
Updates to the Shared Storage API
This update adds support for running cross origin worklets without having to create an iframe.
Streams API: ReadableStream async iteration
The streams APIs provide ubiquitous, interoperable primitives for creating,
composing, and consuming streams of data. This change adds support for the
async iterable protocol to the ReadableStream API,
enabling readable
streams to be used as the source of for await...of
loops.
SVG context-fill
and context-stroke
Implements an existing SVG feature that allows the keywords context-fill
and
context-stroke
when specifying fill and stroke properties. This only affects
SVG sub-trees that are instantiated with a <use>
element, and <marker>
elements that are instantiated using the marker
property on a <path>
element. In those circumstances, context-fill
and context-stroke
are
resolved to the value of the fill
and stroke
properties on the <use>
or
<path>
.
WebGPU: ServiceWorker and SharedWorker support
ServiceWorker and SharedWorker support is added to WebGPU, aligning with existing WebGL capabilities.
Service Workers enable offline capabilities and background processing for WebGPU. This means graphics-intensive web applications or Chrome Extensions can cache resources and perform computations even when the user isn't actively interacting with the page.
Shared Workers allow multiple tabs or extension contexts to coordinate and share WebGPU resources. This leads to smoother performance and more efficient use of the user's graphics hardware.
The WebSocketStream API
The WebSocket API provides a JavaScript interface to the RFC6455 WebSocket protocol. While it has served well, it is awkward from an ergonomics perspective and is missing the important feature of backpressure. The intent of the WebSocketStream API is to resolve these deficiencies by integrating WHATWG Streams with the WebSocket API.
Learn more in WebSocketStream: integrating streams with the WebSocket API.
X25519Kyber768 key encapsulation for TLS
Protects current Chrome TLS traffic against future quantum cryptanalysis by deploying the Kyber768 quantum-resistant key agreement algorithm.
This is a hybrid X25519 and Kyber768 key agreement based on an IETF standard. This specification and launch is outside the scope of W3C. This key agreement will be launched as a TLS cipher, and should be transparent to users.
Learn more in Protecting Chrome Traffic with Hybrid Kyber KEM.
Origin trials in progress
In Chrome 124 you can opt into the following new origin trials.
Deprecation trial for mutation events
Mutation events, including DOMSubtreeModified
, DOMNodeInserted
,
DOMNodeRemoved
, DOMNodeRemovedFromDocument
, DOMNodeInsertedIntoDocument
,
and DOMCharacterDataModified
, can damage page performance, and also
significantly increase the complexity of adding new features to the Web. These
APIs were deprecated from the specification in 2011, and were replaced (in 2012)
by the much better-behaved Mutation Observer API.
Mutation event support will be disabled by default starting in Chrome 127, around July 30, 2024. Code should be migrated to the Mutation Observer API before that date to avoid site breakage. If more time is needed, register for Mutation events deprecation trial to re-enable the feature for a limited time on a given site. This can be used through Chrome 134, ending March 25, 2025.
Alternatively, a MutationEventsEnabled
enterprise policy can also be used for
the same purpose, also through Chrome 134.
Register for the Mutation events deprecation 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 "window-placement" alias for permission and permission policy "window-management"
Removes the "window-placement" alias for permission and permission policy "window-management". This is part of a larger effort to rename the strings by eventually deprecating and removing "window-placement". The terminology change improves the longevity of the descriptor as the Window Management API evolves over time.