Download 140.0.7339.207 from the Chrome Stable for Windows 64-bit
Download Google Chrome 140.0.7339.207 with the branch, platform, release date, and file size shown clearly on the same page.
What users usually want to know first
What changed in Chrome 140.0.7339.207
Google Chrome 140.0.7339.207 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: September 2nd, 2025
Unless otherwise noted, the following changes apply to Chrome 140 stable channel release for Android, ChromeOS, Linux, macOS, and Windows.
CSS
CSS typed arithmetic
Typed arithmetic lets you write expressions in CSS such as calc(10em / 1px) or calc(20% / 0.5em * 1px). This is useful in, for example, typography, as it lets you convert a typed value into an untyped one and reuse it for number accepting properties. Another use case is to multiply the unitless value by another type. For example, you can now cast from pixels to degrees.
Related technical references: ChromeStatus.com entry · Spec
CSS caret-animation property
Chromium supports animation of the caret-color property. However, when animated, the caret's default blinking behavior interferes with the animation.
The CSS caret-animation property has two possible values: auto and manual. auto means browser default (blinking), and manual means the developer controls the caret animation. Additionally, users who are disturbed by or have adverse reactions to blinking or flashing visuals can disable the blinking with a user stylesheet.
Related technical references: ChromeStatus.com entry · Spec
highlightsFromPoint API
The highlightsFromPoint API lets developers interact with custom highlights. It detects which highlights exist at a specific point within a document. This interactivity is valuable for complex web features where multiple highlights may overlap or exist within shadow DOM. By providing precise point-based highlight detection, the API empowers developers to manage dynamic interactions with custom highlights more effectively. For example, developers can respond to user clicks or hover events on highlighted regions to trigger custom tooltips, context menus, or other interactive features.
Related technical references: ChromeStatus.com entry · Spec
ScrollIntoView container option
The ScrollIntoViewOptions container option allows developers to perform a scrollIntoView operation that only scrolls the nearest ancestor scroll container. For example, the following snippet only scrolls the scroll container of target to bring target into view, but won't scroll all of the scroll containers to the viewport:
Related technical references: ChromeStatus.com entry · Spec
View transitions: Inherit more animation properties
Adds more animation properties to inherit through the view transition pseudo tree:
animation-timing-functionanimation-iteration-countanimation-directionanimation-play-state
Related technical references: ChromeStatus.com entry · Spec
View transition pseudos inherit animation-delay.
In addition to the previous update, the animation-delay property is now inherited through the view transition pseudo tree.
Related technical references: ChromeStatus.com entry · Spec
Nested view transitions groups
This feature allows view transitions to generate a nested pseudo-element tree rather than a flat one. This allows the view transition to appear more in line with its original elements and visual intent. It enables clipping, nested 3D transforms, and proper application of effects like opacity, masking, and filters.
Related technical references: ChromeStatus.com entry · Spec
Propagate viewport overscroll-behavior from root
This change propagates overscroll-behavior from the root instead of the body.
The CSS working group resolved not to propagate properties from the <body> to the viewport. Instead, properties of the viewport propagate from the root (<html>) element. As such, overscroll-behavior should propagate from the root element. However, Chrome has had a longstanding issue: it propagates overscroll-behavior from the <body> rather than the root. This behavior is not interoperable with other browsers. This change makes Chrome comply with the specification and become interoperable with other implementations.
Related technical references: ChromeStatus.com entry · Spec
CSS counter() and counters() in alt text of content property
This feature adds the ability to use counter() and counters() in the alt text of the content property. This provides more meaningful information to improve accessibility.
Related technical references: ChromeStatus.com entry · Spec
CSS scroll-target-group property
The scroll-target-group property specifies whether the element is a scroll marker group container. It accepts one of the following values:
- 'none': The element does not establish a scroll marker group container.
- 'auto': The element establishes a scroll marker group container forming a scroll marker group containing all of the scroll marker elements for which this is the nearest ancestor scroll marker group container.
Establishing a scroll marker group container lets any anchor HTML elements with a fragment identifier that are inside such a container to be the HTML equivalent of ::scroll-marker pseudo-elements. The anchor element whose scroll target is currently in view can be styled using the :target-current pseudo-class.
Related technical references: ChromeStatus.com entry · Spec
Support font-variation-settings descriptor in @font-face rule
CSS allows developers to adjust a font's weight, width, slant, and other axes using the font-variation-settings property on individual elements. However, Chromium-based browsers lack support for this property within @font-face declarations. This feature supports the string-based syntax for font-variation-settings as defined in CSS Fonts Level 4. Invalid or unrecognized feature tags are ignored per specification. No binary or non-standard forms are supported. Variable fonts are becoming more widely adopted for both performance and typographic flexibility. Adding support for this descriptor in Chromium enhances control, reduces repetition, and supports a more scalable, modern approach to web typography.
Related technical references: ChromeStatus.com entry · Spec
DOM
ToggleEvent source attribute
The source attribute of a ToggleEvent contains the element that triggered the ToggleEvent to be fired, if applicable. For example, if a user clicks a <button> element with the popovertarget or commandfor attribute set to open a popover, the ToggleEvent fired on the popover will have its source attribute set to the invoking <button>.
Related technical references: ChromeStatus.com entry · Spec
Isolated Web Apps (IWAs)
Controlled Frame API (available only to IWAs)
This feature adds a Controlled Frame API available only to Isolated Web Apps (IWAs). Like similarly-named APIs on other platforms, Controlled Frame allows embedding all content, even third-party content that cannot be embedded in <iframe>. Controlled Frame also allows controlling embedded content with a collection of API methods and events. For more information about Isolated Web Apps, see the Isolated Web Apps explainer.
Related technical references: ChromeStatus.com entry · Spec
JavaScript
Uint8Array to and from base64 and hex
Base64 is a common way to represent arbitrary binary data as ASCII. JavaScript has Uint8Arrays for binary data. However, it lacks a built-in mechanism to encode that data as base64, or to take base64 data and produce a corresponding Uint8Array. This feature adds the ability and methods for converting between hex strings and Uint8Arrays.
Related technical references: ChromeStatus.com entry · Spec
View transition finished promise timing change
The current finished promise timing happens within the rendering lifecycle steps. This means that code that runs as a result of promise resolution happens after the visual frame that removes the view transition has been produced. This can cause a flicker at the end of the animation if the script moves styles to preserve a visually similar state. This change resolves the issue by moving the view transition cleanup steps to run asynchronously after the lifecycle is completed.
Related technical references: ChromeStatus.com entry
Web APIs
ReadableStreamBYOBReader min option
This feature introduces a min option to the existing ReadableStreamBYOBReader.read(view) method. The method already accepts an ArrayBufferView into which it reads data, but currently does not guarantee how many elements are written before the read resolves. By specifying a min value, you can require that the stream wait until at least that many elements are available before resolving the read. This improves upon the current behavior, where reads may resolve with fewer elements than the view can hold.
Related technical references: ChromeStatus.com entry · Spec
Get Installed Related Apps API on desktop
The Get Installed Related Apps API (navigator.getInstalledRelatedApps) provides sites access to if their corresponding related applications are installed. Sites are only allowed to use this API if the application has an established association with the web origin.
The API was launched in Chrome 80 for Android. Additional support for web apps on Desktop was enabled in Chrome 140.
Related technical references: Docs · ChromeStatus.com entry · Spec
Http cookie prefix
In some cases, it's important to distinguish on the server side between cookies set by the server and those set by the client. One such case involves cookies normally always set by the server. However, unexpected code (such as an XSS exploit, a malicious extension, or a commit from a confused developer) might set them on the client. This proposal adds a signal that lets servers make such a distinction. More specifically, it defines the __Http and __HostHttp prefixes, which ensure a cookie is not set on the client side using script.
This page highlights the release changes most relevant to users. The official source below contains the full technical detail.
Official source: Chrome 140 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.