Download 129.0.6668.100 from the Chrome Stable for Windows 32-bit
Download Google Chrome 129.0.6668.100 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 129.0.6668.100
Google Chrome 129.0.6668.100 is available here as part of the Windows 32-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 17th, 2024
Unless otherwise noted, the following changes apply to Chrome 129 stable channel release for Android, ChromeOS, Linux, macOS, and Windows.
Browser changes and development tools
Compute Pressure WebDriver extension commands
Exposes WebDriver commands for creating, removing and updating pressure source samples for virtual pressure sources. Such pressure sources don't depend on underlying hardware or operating system support and can be used for testing.
Related technical references: ChromeStatus.com entry · Spec
CSS
CSS interpolate-size property and calc-size() function
The CSS interpolate-size property lets a page opt into animations and transitions of CSS intrinsic sizing keywords such as auto, min-content, and fit-content, in the cases where those keywords can be animated.
The CSS calc-size() function is a CSS function similar to calc(), however it also supports operations on exactly one supported sizing keyword. Supported sizing keywords are auto, min-content, max-content, and fit-content. Other sizing keywords that may be supported in the future include stretch (currently supported as prefixed -webkit-fill-available) and contain. This function is used to represent the values in the middle of the animations allowed by the interpolate-size property.
Related technical references: ChromeStatus.com entry · Spec
Rename CSS anchor positioning inset-area to position-area
The CSSWG resolved to rename this property from inset-area to position-area. Chrome 129 ships position-area, the inset-area name will be removed in a future release.
Related technical references: Blog post · ChromeStatus.com entry · Spec
Update CSS backdrop-filter to use mirror edgeMode
The backdrop-filter CSS property applies one or more filters to the backdrop of an element. The backdrop is the painted content that lies behind the element. A common filter is a blur allowing designers to construct "frosted glass" dialog boxes, video overlays, translucent navigation headers, and more.
This was initially implemented the same way as a regular blur, but sampling beyond the edges of the element allowed colors from the edges to bleed in. The spec was changed to sample pixels outside the backdrop edges by duplicating the pixels at the edge. This however, results in extreme flickering of content as it enters the backdrop edge. The latest specification change mirrors the backdrop when sampling beyond the edge which allows for a smooth gradual introduction of new colors at the edges without overweighting on single lines of color.
Related technical references: Demo · ChromeStatus.com entry · Spec
Media
Blob support in WebRTC data channels
Implements RTCDataChannel.send(Blob), and the onMessage event can now optionally receive data of type Blob using the binaryType attribute.
In addition to supporting sending strings and ArrayBuffers, you can now choose to send a Blob instead as long as its size is below the SCTP transport maxMessageSize as indicated in the WebRTC specification.
Using the binaryType attribute set to blob, the onMessage event data attribute will be of type Blob instead of ArrayBuffer.
Related technical references: ChromeStatus.com entry · Spec
Web APIs
Intl.DurationFormat
Provides a method of formatting durations, for example "1 hr 40 min 30 sec" that supports multiple locales.
Related technical references: MDN Docs · ChromeStatus.com entry · Spec
Snap Events
Snap Events allow developers reliably listen for when the "snap target" of a scroller changes and perform style adjustments as selected.
Related technical references: Scroll snap events · ChromeStatus.com entry · Spec
Private Aggregation API: client-side contribution merging
Modifies the Private Aggregation API to merge histogram contributions with the same bucket and filtering ID before embedding in the aggregatable report's encrypted payload.
Private Aggregation imposes a limit on the number of contributions that can be embedded in a single aggregatable report, with any additional contributions being dropped. By merging together contributions where possible, we can get additional utility out of the limit. Note that, ignoring the dropping of excess contributions, merging these sorts of contributions shouldn't have any impact on the final outputs, for example summary reports.
Related technical references: ChromeStatus.com entry · Spec
scheduler.yield()
Provides a method for yielding control to the browser, which can be used to break up long tasks. Awaiting the promise returned by scheduler.yield() causes the current task to yield, continuing in a new browser task. This can be used to improve responsiveness issues caused by long tasks. Continuations are prioritized to mitigate performance problems of existing alternatives.
Related technical references: Docs · ChromeStatus.com entry · Spec
Web Authentication API: JSON serialization methods
The WebAuthn PublicKeyCredential.toJSON(), parseCreationOptionsFromJSON(), and parseRequestOptionsFromJSON() methods let developers serialize a WebAuthn response into a JSON object or deserialize a WebAuthn request object from its JSON representation.
Related technical references: ChromeStatus.com entry · Spec
Rendering and graphics
WebGPU extended range (HDR) support
Adds tone mapping parameters to the WebGPU canvas configuration, and adds options of standard (the current behavior of restricting content to the SDR range of the display) as the default, and extended (not imposing this restriction) as a new behavior. This allows WebGPU content to use the full range of a display.
Related technical references: Demo · ChromeStatus.com entry · Spec
Origin trials
FileSystemObserver interface
The FileSystemObserver interface notifies websites of changes to the file system. Sites observe changes to files and directories in the user's local device (as specified in WICG/file-system-access) or in the Bucket File System (as specified in whatwg/fs), and are notified of basic change info, such as the change type.
Related technical references: Docs · ChromeStatus.com entry · Spec
Mesh2D Canvas API
A high-performance Canvas 2D triangle mesh API that can be used to batch-render a large number of textured triangles.
This will enable advanced texture mapping and geometry deformation effects in a 2D context.
Related technical references: Demo · ChromeStatus.com entry · Spec
Deprecations and removals
Deprecate 0.0.0.0 for Private Network Access
Chrome will block access to IP address 0.0.0.0 in advance of Private Network Access (PNA) completely rolling out.
Chrome is deprecating direct access to private network endpoints from public websites as part of the PNA specification. Services listening on localhost (127.0.0.0/8) are considered private according to the specification. Chrome's PNA protection can be bypassed using the IP address 0.0.0.0 to access services listening on the localhost on macOS and Linux.
This can also be abused in DNS rebinding attacks targeting a web application listening on the localhost.
This release of Chrome removes three features.
Related technical references: ChromeStatus.com entry · Spec
Remove the includeShadowRoots argument on DOMParser
The includeShadowRoots argument was a never-standardized argument to the DOMParser.parseFromString() function, which was there to allow imperative parsing of HTML content that contains declarative shadow DOM. This was shipped in Chrome 90 as part of the initial shipment of declarative shadow DOM.
Now that a standardized version of this feature is available with the setHTMLUnsafe() and parseHTMLUnsafe() methods, the non-standard includeShadowRoots argument will be removed. Code should be updated as follows:
Instead of:
Use:
Related technical references: ChromeStatus.com entry
Remove non-standard declarative shadow DOM serialization
The prototype implementation of declarative shadow DOM contained a method called getInnerHTML() used to serialize DOM trees containing shadow roots. That part of the prototype was not standardized with the rest of declarative shadow dom, and instead a replacement was designed—getHTML().
Therefore the old getInnerHTML() method is now being removed from Chrome, you should use getHTML() as a replacement, which will soon be interoperable across browsers.
Related technical references: ChromeStatus.com entry
Remove PointerEvent.getCoalescedEvents() from insecure contexts
The Pointer Events Working Group made PointerEvent.getCoalescedEvents() restricted to secure contexts over four years ago, which removed the API from insecure contexts. Chrome originally shipped the old behavior and didn't follow the spec change immediately because of compat concerns.
We are now removing it from insecure contexts because Chrome usage in insecure contexts turned out to be very low.
Related technical references: ChromeStatus.com entry
Official source: Chrome 129 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.