Chrome 111 beta

New CSS color types and color spaces, CSS trigonometric functions, and the View Transitions API.

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 111 is beta as of 9 February 2023. You can download the latest on Google.com for desktop or on Google Play Store on Android.

CSS

New CSS color types and spaces

All features described in CSS Color Level 4 are now enabled. This includes four device-independent color types (lab, Oklab, lch and Oklch), the color() function, and user-defined color spaces for gradients and animations.

Read the High definition CSS color guide to learn about these new color types and spaces.

The color-mix() function

The incredibly useful color-mix() function from CSS Color 5 is also shipping. This function enables mixing a percentage of one color into another, in any supported colorspace. This following example mixes 10% of blue into white in SRGB.

.item {
  background-color: color-mix(in srgb, blue 10%, white);
}

CSS Selectors 4 Pseudo-Class :nth-child(an + b of S)

Extends :nth-child(an + b) and :nth-last-child() to take a selector. For example, :nth-child(3 of .c) is the third .c under a given parent. To learn more, read the post More control over :nth-child() selections with the of S syntax.

CSS root font units

Adds root font units: rex, rch, ric, and rlh to the existing root font unit of rem.

CSS trigonometric functions

The trigonometric functions sin(), cos(), tan(), asin(), acos(), atan(), atan2() have been added to CSS math expressions.

Style Container Queries for CSS Custom Properties

Adds the style() function to @container rules to make it possible to apply styles based on the computed values of custom properties of an ancestor element.

The baseline-source property

The baseline-source property allows web developers to specify if an inline-level box should use the first or last baseline for alignment within an linebox.

Web APIs

The window-management permission and permission policy string

Chrome 111 adds window-management as an alias for window-placement permission and permission-policy strings. 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.

Media Session API: Presenting slides actions

Adds previousslide and nextslide actions to the existing Media Session API.

Resizable ArrayBuffer and growable SharedArrayBuffer

Extend the ArrayBuffer constructors to take an additional maximum length that allows in-place growth and shrinking of buffers. Similarly, SharedArrayBuffer is extended to take an additional maximum length that allows in-place growth.

Speculation rules: referrer policy key

This extends the speculation rules syntax to allow developers to specify the referrer policy to use with speculative requests triggered by speculation rules. This also reintroduces the "sufficiently-strict referrer policy" requirement.

Streaming declarative shadow DOM

This adds support for streaming, by attaching the shadow root on the opening, rather than the closing, template tag.

View Transitions API

Enables the creation of polished transitions in Single-Page Applications (SPAs) by snapshotting views and allowing the DOM to change without any overlap between states. Use View Transitions to build custom transitions, or use a simple crossfade default to improve user experience.

Check out the Chrome Developers article for more information and example transitions to help you get started.

WebRTC Scalable Video Coding extensions

This extension defines a standard method for picking between possible Scalable Video Coding (SVC) configurations on an outgoing WebRTC video track.

WebXR enabledFeatures attribute

Returns the set of features that were enabled for this XRSession as specified by XRSessionInit and the Implied Features required by the spec for the given mode and features. For a granted Session, this will contain all requiredFeatures, but may be a subset of optionalFeatures. Most features have alternate ways to detect if they were granted; however, for some features the signal of whether or not a feature was enabled may tie closely with data for a feature just not being available right now, rather than data not being available ever. By querying enabledFeatures, you can determine if any helpful hints (for example, to improve or start tracking) should be shown, or if a feature will never be supported in the current session.

Origin trials in progress

In Chrome 111 you can opt into the following new origin trials.

Deprecation trial for removal of the connect-src CSP bypass in Web Payment API

Deprecate the ability for Web Payment API to bypass the connect-src CSP policy when fetching the manifest. After this deprecation, a site's connect-src CSP policy will need to allow for the payment method URL specified in a PaymentRequest call, as well as any other URLs that the method chains to fetch its manifest.

This bypass ability is removed in Chrome 111 with a reverse origin trial from 111 to 113 for those developers that need to temporarily re-enable the bypass. To opt into this, register for the reverse deprecation trial for the connect-src CSP bypass.

Document Picture-in-Picture

The Document Picture-in-Picture API is a new API to open an always-on-top window that can be populated with arbitrary HTML content. This is an expansion upon the existing Picture-in-Picture API that only allows for an HTMLVideoElement to be put into a PiP window. This allows web developers to provide a better PiP experience to users.

Read the documentation for Document Picture-in-Picture.

Register for the Document Picture-In-Picture 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 removes three features.

Remove PaymentInstruments

PaymentInstruments is the Web API that backs non-JIT install of payment apps (see https://w3c.github.io/payment-handler/). It was designed with the assumption that the browser would store the actual payment instrument details, which has not turned out to be true, and has some privacy leaks. It also has not shipped on any other browser, not have we seen any interest from other browser vendors. As such, this API has been deprecated and removed.

Remove connect-src CSP bypass in Web Payment API

Deprecate the ability for Web Payment API to bypass the connect-src CSP policy when fetching the manifest. After this removal, a site's connect-src CSP policy will need to allow for the payment method URL specified in a PaymentRequest call, as well as any other URLs that the method chains to fetch its manifest.

See the information under origin trials for a method of opting into a deprecation trial giving more time to make required changes due to this removal.

Merchant identity in canmakepayment event

The canmakepayment service worker event lets the merchant know whether the user has a card on file in an installed payment app. It used to silently pass the merchant's origin and arbitrary data to a service worker from payment app origin. This cross-origin communication happened on PaymentRequest construction in JavaScript, did not require a user gesture, and did not show any user interface. This silent data passage has been removed from the canmakepayment event, and the Android IS_READY_TO_PAY Intent).