Version article

Download 125.0.6422.141 from the Chrome Stable for Windows 64-bit

Download Google Chrome 125.0.6422.141 with the branch, platform, release date, and file size shown clearly on the same page.

Stable Windows 64-bit Published 2024-05-31
Version 125.0.6422.141
Release date 2024-05-31
Platform Windows 64-bit
File size 144.83MB
Quick facts

What users usually want to know first

Branch Stable
Clicks

What changed in Chrome 125.0.6422.141

Google Chrome 125.0.6422.141 is available here as part of the Windows 64-bit Stable archive. Use this release page when you want the exact version, the current package details, and quick access to the correct installer.

Stable release date: May 14th, 2024

Unless otherwise noted, the following changes apply to Chrome 125 stable channel release for Android, ChromeOS, Linux, macOS, and Windows.

HTML and DOM

Declarative shadow DOM serialization

A feature to let developers serialize DOM trees containing shadow roots, recently standardized in the HTML standard.

CSS

CSS Anchor Positioning

CSS anchor positioning lets developers tether an absolutely positioned element to one or more other elements on the page (the anchors), in a declarative way, without the use of JavaScript. Anchor positioning works performantly when the anchors are scrollable. A common use case is to position a popover such as a tooltip next to the element that invoked it, or a select menu and its popover options list. Before the anchor positioning feature, these use cases required JavaScript to dynamically position the popover, and keep it anchored as the invoking element was scrolled, which is a performance footgun and difficult to get right. With anchor positioning, these use cases can be implemented performantly and declaratively.

The anchor positioning feature consists of a large number of CSS properties. A few of the key properties are as follows:

  • anchor-name: sets up an element to be an anchor for other elements.
  • position-anchor: describes the "default" anchor that an anchored element should use for anchor positioning.
  • The anchor() function: used to refer to the position of the anchor element, in positioning the anchored element.
  • inset-area: a shorthand for positioning, for common relative positions.

CSS stepped value functions— round() , mod() , and rem()

The stepped-value functions, round(), mod(), and rem(), all transform a given value according to another "step value".

The round() CSS function returns a rounded number based on a selected rounding strategy.

The mod() CSS function returns a modulus left over when the first parameter is divided by the second parameter, similar to the JavaScript remainder operator (%). The modulus is the value left over when one operand, the dividend, is divided by a second operand, the divisor. It always takes the sign of the divisor.

The rem() CSS function returns a remainder left over when the first parameter is divided by the second parameter, similar to the JavaScript remainder operator (%). The remainder is the value left over when one operand, the dividend, is divided by a second operand, the divisor. It always takes the sign of the dividend.

Baseline Newly Available: This feature is now available in all three major browser engines.

New syntax for CSS custom :state()

CSS custom state lets custom elements expose their own pseudo-classes. The syntax has now been spec'ed in the CSSWG, and Chrome 125 now supports the new syntax :state(foo). This change will have a window where Chrome will support both the old syntax (:--foo) and the new syntax so websites can switch to the new one.

Remove discontinuity for Oklab and Oklch colors with lightness of nearly 100% or 0

Before this change, all Lab, LCH, Oklab and Oklch colors with a lightness value of 100% were rendered as white, regardless of the other two parameters. All colors in these spaces with a lightness value of 0 were rendered as black. These two mappings caused discontinuities in gradients and were unexpected to web developers.

With this rollback, these colors are no longer mapped artificially and the resulting displayed color will be continuous with nearby colors and depend on the gamut mapping of the display.

Used color scheme root scrollbars

Makes the browser use the user's preferred color scheme to render the viewport scrollbars if the value of "page's supported color schemes" is 'normal' or not specified, and the computed value of color-scheme for the root element is normal. Viewport scrollbars can be considered to be outside the web content. Therefore, the user agents should honor the user's preferred color scheme when rendering viewport scrollbars if the developer has not explicitly specified support for color schemes.

This change does not prevent developers from controlling the color scheme for scrollbars. The new behavior makes the browser use the user's preferred color-scheme to render viewport non-overlay scrollbars only if the developer hasn't specified the color scheme for the root element.

view-transitions class

There's a new CSS property view-transition-class which allows the you to specify one or more view transition classes. You can then select the ViewTransition pseudo elements using these classes, for example ::view-transition-group(*.class).

This is an extension to the ViewTransition API that simplifies styling of view transition pseudo elements in a similar way that CSS classes simplify styling of regular DOM elements.

Loading

Accept HTTP and HTTPS URLs when constructing WebSocket

This update enables HTTP and HTTPS schemes in the WebSocket constructor, therefore also letting developers use relative URLs. These are normalized to the ws: and wss: internal schemes.

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.

ChromeStatus.com entry

The Compute Pressure API

The Compute Pressure API offers high-level states that represent the CPU load on the system. It allows the implementation to use the right underlying hardware metrics to ensure that users can take advantage of all the processing power available to them as long as the system is not under unmanageable stress.

Intel led the design and implementation work for this API, which will let video conferencing apps dynamically balance features and performance.

Extending Storage Access API (SAA) to non-cookie storage

This launches the proposed extension of the Storage Access API (backwards compatible and has been in origin trial) to allow access to unpartitioned cookie and non-cookie storage in a third-party context. The current API only provides access to cookies, which have different use-cases than non-cookie storage.

FedCM CORS requirement on ID assertion endpoint

The fetches in the FedCM API are hard to reason about because of the properties required of them. While there is ongoing discussion regarding the accounts endpoint, there is also largely consensus that the ID assertion endpoint should use CORS. This update aligns security properties of this fetch more closely to other fetches in the web platform.

FedCM credentialed request no longer sends SameSite=Strict cookie

FedCM now sends ID assertion requests with CORS. That change means that Chrome no longer send SameSite=Strict cookies to the ID assertion endpoint, though Chrome stills send SameSite=None. Since it does not make sense to send a different set of cookies to the accounts endpoint and the ID assertion endpoint, this change makes them consistent.

Not sending SameSite=Strict cookies is also consistent with requestStorageAccess behavior and cross-site requests in general.

Interoperable mousemove default action

Chrome allowed canceling mousemove events to prevent other APIs like text selection (and even drag-and-drop in the past). This does not match other major browsers; nor does it conform to the UI Event spec. Now text selection will no longer be the default action of mousemove. Text selection and drag-and-drop can still be prevented through canceling selectstart and dragstart events respectively.

This feature will be rolled out slowly starting from Chrome 125, and is expected to be available to all users by Chrome 126.

Regular expression modifiers

Regular expression modifiers adds the ability to locally modify the i, m, and s' flags inside a pattern.

To enable a flag for a subexpression, use (?X:subexpr) where X is one of i, m, or s. To disable a flag for a subexpression, use (-X:subexpr).

For example, for the case-insensitivity i flag:

Regular expression duplicate named capture groups

Duplicate named capture groups lets you use the same capturing group name across alternatives. For example

This page highlights the release changes most relevant to users. The official source below contains the full technical detail.

Official source: Chrome 125 Release Notes

Installation notes

After downloading the package, confirm that the branch and platform match your device before launching the installer or extracting the archive. If you only need a standard everyday browser, Stable is usually the safest choice. If you are testing new behavior, Beta, Dev, and Canary are better fits.

Related release pages

For newer or older builds in the same branch, open the category archive linked above. For different platforms, use the related desktop archives in the sidebar.

Frequently asked questions

These FAQ blocks help the page read like a complete release article instead of a download stub, which is better for trust and better for SEO.

Should I use this release or stay on Stable?

If you just want the safest everyday browsing experience, Stable is usually the right default. Preview branches are better for testing, compatibility checks, and early feature access.

Why show exact version numbers so prominently?

Because exact-version queries are common in English search behavior, especially for QA teams, enterprise users, and people trying to reproduce a bug or environment.

Why keep a full article around the download buttons?

A stronger page body gives users context and gives Google clearer signals about what the release page actually covers.

Where should older releases live?

Older versions belong in the category archive page, with this article template handling exact-version landing pages one release at a time.