Version article

Download 124.0.6367.207 from the Chrome Stable for Windows 64-bit

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

Stable Windows 64-bit Published 2024-05-14
Version 124.0.6367.207
Release date 2024-05-14
Platform Windows 64-bit
File size 143.27MB
Quick facts

What users usually want to know first

Branch Stable
Clicks

What changed in Chrome 124.0.6367.207

Google Chrome 124.0.6367.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.

Browser Changes and Developer Tools

Universal install

Make any page installable even those not meeting the current PWA installability criteria.

Keyboard-focusable scroll containers

Improves accessibility by making scroll containers focusable using sequential focus navigation. Prior to this change, the tab key doesn't focus scrollers unless tabIndex is explicitly set to 0 or more.

By making scrollers focusable by default, users who can't (or don't want to) use a mouse will be able to focus clipped content using a keyboard's tab and arrow keys. This behavior is enabled only if the scroller does not contain any keyboard focusable children.

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

Permissions Prompt for Web MIDI API

This feature gates access to the Web MIDI API behind a permissions prompt. Previously, the use of SysEx messages with the Web MIDI API requires an explicit user permission.From Chrome 125, all access to the Web MIDI API requires a user permission.

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

HTML and DOM

The writingsuggestions attribute

Browsers are starting to provide writing suggestions to users as they type on various editable fields across the web. While this is generally useful for users, there are cases when developers may want to turn off browser-provided writing assistance, such as extensions or sites that provide similar functionality of their own.

The new attribute writingsuggestions has values of true or false that allow developers to turn on or off browser-provided writing suggestions. The attribute's state for an element can also be inherited from ancestor elements, thereby allowing developers to control this ability at a per-element or per-document or sub-document scale.

Loading

Sec-CH-UA-Form-Factors client hint

This hint gives a server information about the user agent's form-factors. It returns one or more of the following form-factor values:

  • Desktop: A user-agent running on a personal computer.
  • Automotive: A user-agent embedded in a vehicle, where the user may be responsible for operating the vehicle and unable to attend to small details.
  • Mobile: Small, touch-oriented device typically carried on a user's person.
  • Tablet: A touch-oriented device larger than "Mobile" and not typically carried on a user's person.
  • XR: Immersive devices that augment or replace the environment around the user.
  • EInk: A device characterized by slow screen updates and limited or no color resolution.
  • Watch: A mobile device with a tiny screen (typically less than two inches), carried in such a way that the user can glance at it quickly.

Private Network Access permission to relax mixed content

To establish connections to devices on a local network that don't have globally unique names, and therefore cannot obtain TLS certificates, this feature introduces a new option to fetch() to declare a developers' intent to talk to such a device. This includes a new policy-controlled feature to gate each site's access to this capability, and new headers for the server's preflight response to provide additional metadata.

priority HTTP request header

This adds the priority request header for all HTTP requests with the priority information for the request at the time that it was sent.

RFC 9218 (Extensible Prioritization Scheme for HTTP) defines a priority HTTP request header to use for signaling request priority to origins (and intermediaries). It also defines negotiation processes and protocol-level frames for HTTP/2 and HTTP/3 to carry the same priority information.

The header can only signal the initial priority for a resource when it was first requested while the frame-based mechanisms allow for modifying the priority after the fact.

The header can operate end-to-end to the origin servers (and provide a mechanism for the origin to override the priority if recognized by intermediaries) while the frames are limited to operating on a link level.

This feature is specifically for supporting the header-based prioritization scheme.

Document render-blocking

This feature enables authors to block rendering of a document until the critical content has been parsed, ensuring a consistent first paint across all browsers. Without this feature, the first paint's state depends on the heuristics for parser yielding which can vary across browsers.

This is particularly important for View Transitions where the parsed DOM state on the first frame can drastically change the transition created.

Note that this feature implements a <link rel=expect href="#id"> syntax that allows a link element to reference another expected element on the page. The rendering is then blocked until the expected element is fully parsed. This supersedes the previous implementation of an HTML attribute that allows the whole document to be render-blocked.

X25519Kyber768 key encapsulation for TLS

Protects current Chrome TLS traffic against future quantum cryptanalysis by deploying the Kyber768 quantum-resistant key agreement algorithm.

This is a hybrid X25519 and Kyber768 key agreement based on an IETF standard. This specification and launch is outside the scope of W3C. This key agreement will be launched as a TLS cipher, and should be transparent to users.

Media

jitterBufferTarget attribute

The jitterBufferTarget attribute allows applications to specify a target duration of time in milliseconds of media for the RTCRtpReceiver jitter buffer to hold. This influences the amount of buffering done by the user agent, which in turn affects retransmissions and packet loss recovery. Altering the target value allows applications to control the tradeoff between playout delay and the risk of running out of audio or video frames due to network jitter.

Web APIs

The WebSocketStream API

The WebSocket API provides a JavaScript interface to the RFC6455 WebSocket protocol. While it has served well, it is awkward from an ergonomics perspective and is missing the important feature of backpressure. The intent of the WebSocketStream API is to resolve these deficiencies by integrating WHATWG Streams with the WebSocket API.

setHTMLUnsafe and parseHTMLUnsafe

The setHTMLUnsafe and parseHTMLUnsafe methods allow the Declarative Shadow DOM to be used from JavaScript. These methods also offer an easier way to imperatively parse HTML into DOM, as compared to innerHTML or DOMParser.

Streams API: ReadableStream async iteration

The streams APIs provide ubiquitous, interoperable primitives for creating, composing, and consuming streams of data. This change adds support for the async iterable protocol to the ReadableStream API, enabling readable streams to be used as the source of for await...of loops.

pageswap event

The pageswap event is fired on a document's window object when a navigation will replace this document with a new document. The event provides activation info about the navigation (type, NavigationHistoryEntry for the new document).

If the navigation has a cross-document view transition, the event is dispatched before capturing state for the old document. This allows the developer to configure the old state captured for the transition based on the navigation's activation info and the current visual state of the old document.

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.

Document picture-in-picture: add option to hide back-to-tab button

This adds a new parameter (disallowReturnToOpener) to the Document picture-in-picture API that, when set to true, hints to the browser that it shouldn't show a button in the picture-in-picture window that allows the user to go back to the opener tab.

While having a button to return to the opener tab always makes sense in the video picture-in-picture case (the video stream can be returned to the video element in the opener tab), this is not always the case for document picture-in-picture experiences. This gives developers more control over the user experience when they determine that such a button does not make sense for their use case.

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

Official source: Chrome 124 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.