Stable release date: July 23rd, 2024
Unless otherwise noted, the following changes apply to Chrome 127 stable channel release for Android, ChromeOS, Linux, macOS, and Windows.
CSS
CSS font-size-adjust
The font-size-adjust
CSS property provides a way to modify the size of lowercase letters relative to the size of uppercase letters, which defines the overall font-size. This property is useful for situations where font fallback can occur.
Chrome 127 includes the two value syntax to pass in a font metric and a value.
Tracking bug #451346 | ChromeStatus.com entry | Spec
Multi-argument alt text in CSS Generated Content
The CSS content
property lets you specify alternative text for accessibility with the following syntax:
css
.has-before-content::before {
content: url("cat.jpg") / "A cute cat";
}
This functionality, where the alt text is given by a single string, is already supported in Chrome. From Chrome 127 the alt text can be given by an arbitrary number of elements, which in addition to strings can be attr()
functions or counters. For example:
.has-before-content::before {
content: url("cat.jpg") / "A cute " attr(data-animal);
}
Note that this feature entry doesn't include the addition of counter support.
Support for the View Transition API in iframes
From Chrome 127 concurrent same-document view transitions in a main frame and same-origin iframe will be available.
Previously, running a view transition using the document.startViewTransition
in a same-origin iframe wouldn't work if the main frame was running a transition at the same time. The iframe's transition would be automatically skipped. Now, both transitions will execute.
View transitions on same-origin cross-document navigations in an iframe will also be supported.
Text size adjust improvements
The text-size-adjust
property adjusts font sizes on mobile devices. Values other than auto
disable automatic text size adjustments. Percentage values increase the computed size of text.
This makes text-size-adjust
more consistent, so it works like a direct multiplier of the font size (and line height). The major changes are:
text-size-adjust
works with or without a meta viewport.- Values other than
auto
disable all automatic text size adjustments. - Percentages apply directly, without any heuristics.
- Layout bugs are fixed.
Tracking bug #340389272 | ChromeStatus.com entry | Spec
Web APIs
Automatic fullscreen content setting
A new "automatic fullscreen" content setting lets enterprise admins allow sites to enter fullscreen without a user gesture. Users may also allow Isolated Web Apps to use this feature through site settings pages.
Combined with the Window Management permission and unblocked popups, this unlocks valuable fullscreen capabilities:
- Open a fullscreen popup on another display, from one gesture.
- Show fullscreen content on multiple displays from one gesture.
- Show fullscreen content on a new display, when it's connected.
- Swap fullscreen windows between displays with one gesture.
- Show fullscreen content after user gesture expiry or consumption.
Demo | Tracking bug #1501130 | ChromeStatus.com entry
WebGPU: GPUAdapter info
attribute
Adds a synchronous GPUAdapter info attribute to retrieve the same information about the physical adapter as with the asynchronous GPUAdapter requestAdapterInfo()
method.
Tracking bug #335383516 | ChromeStatus.com entry | Spec
Media
Video chapter in MediaMetadata
You can now add individual chapter information, such as the title of the section, its timestamp, and a screenshot image to media metadata. This allows users to navigate through the content of the media.
This will currently only show up in ChromeOS media notifications, and not in Chrome Browser global media controls.
Demo | ChromeStatus.com entry | Spec
Document picture-in-picture: propagate user activation
This makes user activations in a document picture-in-picture window usable inside its opener window and the other way around. This makes it more ergonomic to use user-activation-gated APIs, since often event handlers in the document picture-in-picture window are actually run in the opener's context, so the opener's context needs access to the user gesture.
Demo | Tracking bug #331246719 | ChromeStatus.com entry
JavaScript
Importmap integrity
Imported ES modules can't currently have their integrity checked, and hence cannot run in environments that require Subresource Integrity or with require-sri-for
CSP directives.
This feature adds an integrity
section to import maps, enabling developers to map ES module URLs to their integrity metadata, and ensure they only load when they match their expected hashes.
Tracking bug #334251999 | ChromeStatus.com entry
Snap Events
Snap Events allow developers to reliably listen for when the snap target of a scroller changes and perform style adjustments as desired.
CSS scroll snap points are often used as a mechanism to create scroll interactive selection components, where selection is determined with JavaScript intersection observers and a scroll end guesstimate. By creating built-in events, the invisible state will become actionable, at the right time, and always correct.
This feature adds two JavaScript events:
scrollsnapchange
and scrollsnapchanging
. The scrollsnapchange
event lets developers know, at the completion of a scroll operation (including snapping), that the element to which a scroller is snapped has changed. The scrollsnapchanging
event gives developers a hint, during a scroll operation, that the user agent intends to snap the scroll container to a new snap target based on the scrolling input so far.
Privacy
Aggregate Debug Reporting in Attribution Reporting API
This change is so the API can continue to provide some form of debugging information after third-party cookie deprecation. This is a new report type that is not tied to third-party cookies and provides similar debug information. This feature allows API callers to request and receive debug signals in aggregate form. This feature is very similar to current Aggregate Reports supported by the API, except these new reports will be specifically for debug signals.
Accessibility
Keyboard focusable scroll containers
This feature introduces the following changes:
Scrollers are click-focusable and programmatically-focusable by default. Scrollers without focusable children are 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 the post Keyboard focusable scrollers. Keyboard focusable scrollers will be enabled by default starting in Chrome 127. 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 will be available in Chrome 127, and can be used for the same purpose.
Keyboard focusable scrollers | Tracking bug #1040141 | ChromeStatus.com entry | Spec
Loading
No-Vary-Search
support for prerender
Extends No-Vary-Search
support to prerender on top of the previous prefetch support. This enables a prerender entry to match even if certain URL query parameters change. The No-Vary-Search HTTP response header declares that some or all parts of a URL's query can be ignored for cache matching purposes.
Tracking bug #41494389 | ChromeStatus.com entry | Spec
New origin trials
Compression dictionary transport with Shared Brotli and Shared Zstandard
This feature adds support for using designated previous responses, as an external dictionary for HTTP responses that compress Brotli or Zstandard.
Origin Trial | Demo | Tracking bug #1413922 | ChromeStatus.com entry | Spec
Deprecate third-party cookies
We intend to deprecate and remove default access to third-party cookies (also known as cross-site cookies), starting with an initial 1% testing period in Q1 2024, followed by a gradual phaseout planned to begin in Q1 2025, subject to addressing any remaining competition concerns of the UK's Competition and Markets Authority.
Phasing out third-party cookies is a central effort to the Privacy Sandbox initiative, which aims to responsibly reduce cross-site tracking on the web (and beyond) while supporting key use cases through new technologies.
Demo | ChromeStatus.com entry | Spec
Partitioning storage, service workers, and communication APIs
From Chrome 115, storage, service workers, and communication APIs are partitioned in third-party contexts. From Chrome 113 to 126, sites were able to take part in a deprecation trial to temporarily unpartition and restore prior behavior of storage, service workers, and communication APIs.
From Chrome 125, non-cookie storage in the Storage Access API is supported, which should address the majority of use cases for unpartitioned storage. Where those use cases aren't met, it is now possible to request a renewal for the DisableThirdPartyStoragePartitioning deprecation trial for an additional 6 milestones, for users on Chrome 127 to 132 (inclusive).
See the Storage Partitioning deprecation trial renewal blog post for more information.
Tracking bug #1191114 | ChromeStatus.com entry
Keyboard focusable scroll containers deprecation trial
This feature introduces the following changes:
Scrollers are click-focusable and programmatically-focusable by default. Scrollers without focusable children are keyboard-focusable by default.
We attempted to ship these changes, and found that a limited number of sites had broken expectations around some of their components. As a result, we had to unship the feature to avoid this breakage. Given the benefits mentioned above, the feature will begin shipping in 127. To allow more time for the affected sites to migrate their components, we are starting a Deprecation Trial. When enabled, this will disable the KeyboardFocusableScrollers feature.
Origin Trial | Keyboard focusable scrollers | Tracking bug #1040141 | ChromeStatus.com entry | Spec
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.
Mutation events
Mutation event support will be disabled by default starting in Chrome 127. Code should be migrated before that date to avoid site breakage. If more time is needed, there are a few options:
- The Mutation Events deprecation trial (https://developer.chrome.com/origintrials/#/view_trial/919297273937002497) can be used to re-enable the feature for a limited time on a given site. This can be used through Chrome 134, ending March 25, 2025.
- The MutationEventsEnabled enterprise policy can be used for the same purpose, also through Chrome 134.
See the blog post Mutation events deprecation for more details.
Tracking bug #40268638 | ChromeStatus.com entry | Spec
Restrict "private network requests" for subresources from public websites to secure contexts
Requires that private network requests for subresources from public websites may only be initiated from a secure context. Examples include internet to intranet requests and internet to loopback requests.
This is a first step towards fully implementing Private Network Access.
Tracking bug #986744 | ChromeStatus.com entry | Spec
Remove old CSS custom state syntax
The CSS custom state pseudo-class is being renamed from :--foo
to :state(foo)
. The new syntax, :state(foo)
, has been enabled by default, therefore we are removing the :--foo
syntax.
Firefox and Safari never implemented the old syntax and they have both shipped the new syntax.
Enterprise customers who need more time can use the CSSCustomStateDeprecatedSyntaxEnabled
policy. This policy will be removed in Chrome 131.
Tracking bug #41486953 | ChromeStatus.com entry
Further reading
Looking for more? Check out these additional resources.
- What's new in Chrome 127
- What's new in Chrome DevTools 127
- ChromeStatus.com updates for Chrome 127
- Chrome release calendar
- Upcoming deprecations
- Upcoming removals