Multiple keywords for the CSS display property, WGSLLanguageFeatures for WebGPU, HTTPS upgrades, and more.
Unless otherwise noted, changes described 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 115 is beta as of May 31, 2023. You can download the latest on Google.com for desktop or on Google Play Store on Android.
This release adds three new CSS features.
Multiple values of the
display property now accepts multiple keywords as a value, besides the legacy precomposed keywords. The first two keywords represent the outer and inner values of display, there are optional flags for
list-item, internal values such as
table-cell, and the box values of
With the outer and inner keywords you can define how the outer box behaves (block or inline) and how the inner children behave, for example
display: flex becomes
display: block flex and
display: block becomes
display: block flow. See MDN for a list of common mappings and more information.
Boolean context style container queries
Chrome 115 supports
style() container queries without a declaration value, only a property name, as a way of matching non-initial values. Previously you would have to use:
not style(--my-property: initial) Now you can use:
style(--my-property) to match any non-initial value.
See Animate elements on scroll with Scroll-driven animations for more details.
Fix to regression where elements with
display: contents were no longer shown in the accessibility tree
A regression was introduced that caused elements with
display: contents to lose semantic information, and no longer be represented correctly in the accessibility tree. Chrome 115 includes a fix for this issue.
Increasing the maximum size of a
WebAssembly.Module() on the main thread to 8 MB
The WebAssembly.Module() constructor compiles a binary WebAssembly module synchronously, which can block the main thread. To avoid this, the maximum size of a WebAssembly module that can be compiled with this constructor is limited to 8 MB. Larger modules can be compiled asynchronously on the main thread with
WebAssembly.compile(), or synchronously on a worker thread. The 8 MB limit is an extension of the original limit of 4 KB. This extension is possible thanks to improvements in the WebAssembly runtime V8. The 8 MB limit has been determined through performance measurements on a Google Pixel 1 phone, which is currently considered a representative low-end phone. Future developments in V8 or in hardware may allow further extensions of the limit.
FedCM: Support credential management mediation requirements for auto re-authentication
Supports Credential Management Mediation Requirements to provide streamlined re-authentication UX for users who have created federated accounts on websites with the FedCM API.
Automatically and optimistically upgrade all main-frame navigations to HTTPS, with fast fallback to HTTP.
Partitioning the Storage, Service Worker, and Communication APIs
To prevent certain types of side-channel cross-site tracking, Chrome is partitioning storage and communications APIs in third-party contexts. This includes quota-managed storage, service workers, and communication APIs (like BroadcastChannel). See the documentation for storage partitioning for more details.
Resource Timing: Expose interim response times
PerformanceResourceTiming.firstInterimResponseStart in cases where a navigation or subresource fetch encounters an interim 1xx response. For example with 100 continue or 103 early hints,
firstInterimResponseStart now corresponds to the time of that first interim response, while
responseStart corresponds to the final response, for example with 200 status.
Update of "xml" prefix handling in
Node.lookupNamespaceURI() supports "xml" and "xmlns" prefixes by default. The function returns fixed namespace strings for them.
XPathEvaluator.createNSResolver() stops to wrap the specified node to add "xml" prefix handling. They return the specified node as is. Web developers can now use an element as an
XPathNSResolver without wrapping it with
Exposes visibility state (visible or hidden) in the performance timeline. The timeline will always have an entry with a
startTime of 0 and the initial visibility state, plus entries corresponding to any visibility state change.
WGSLLanguageFeatures for WebGPU
wgslLanguageFeatures getter on the GPU object for WebGPU, and its corresponding
WebDriver commands for interacting with FedCM dialogs
This exposes several WebDriver commands to enable browser automation, such as automated testing, to interact with FedCM dialogs.
Origin trials in progress
In Chrome 115 you can opt into the following new origin trials.
The Compute Pressure API offers high-level information about the current state of the device hardware to allow sites to strike the right balance for users between taking advantage of available processing power and putting the system under unmanageable stress. Compute Pressure is a generic term by design. At the moment it is calculated based on CPU load, but future plans include using signals from temperature and battery status, for example. Learn more in Announcing the second Compute Pressure origin trial.
Explicit compile hints with magic comments
Long Animation Frames API
This is an extension of the Long Tasks API. It measures the task together with its subsequent rendering update, adding information such as long running scripts, rendering time, and time spent in forced layout and style known as layout thrashing. Developers can use this as a diagnostic for "sluggishness", which is measured by Interaction to Next Paint (INP), by finding the causes for main-thread congestion which is often the cause for bad INP.
Storage Buckets API
Storage Buckets allows sites the ability to create multiple storage buckets to organize their data, allowing user agents to delete each bucket independently of other buckets. Each storage bucket can store data associated with established storage APIs such as IndexedDB and CacheStorage. Register for the Storage Buckets API origin trial.
Deprecations and removals
This version of Chrome introduces the deprecations and removals listed below. Visit ChromeStatus.com for lists of planned deprecations, current deprecations and previous removals.
This release of Chrome deprecates two features.
document.domain setter is being deprecated because it allows developers to relax the same-origin policy—and as such it complicates the fundamental security boundary we aim to maintain, and puts roadblocks in the way of post-Spectre changes to Chromium's process model.
Visit Chrome disables modifying document.domain for alternatives to using document.domain. In most use cases, cross-origin
postMessage() or Channel Messaging API can replace document.domain. As a last resort, you can opt into document-domain via Origin-keyed agent clusters. The setter will remain, but the origin remains unchanged.
Deprecate mutation events
Mutation Events, including
DOMNodeInsertedIntoDocument were deprecated from the specification in 2011, and were replaced in 2012 by the Mutation Observer API. Usage of the obsolete mutation events must be migrated to Mutation Observer before removal in Chrome 127 (July 20, 2024).
Learn more about the deprecation of mutation events.