Download 136.0.7103.93 from the Chrome Stable for Windows 32-bit
Download Google Chrome 136.0.7103.93 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 136.0.7103.93
Google Chrome 136.0.7103.93 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: April 29th, 2025
Unless otherwise noted, the following changes apply to Chrome 136 stable channel release for Android, ChromeOS, Linux, macOS, and Windows.
HTML and DOM
Language support for CanvasTextDrawingStyles
The <canvas> DOM element, like all DOM elements, accepts a lang attribute that is used to define language specific treatment for font selection (when fonts have locale specific glyphs). Browsers respect this attribute. However, when an OffscreenCanvas is created there is no way to set locale information, possibly resulting in a state where an offscreen canvas produces rendered results that differ from the canvas in which its output is used. This feature adds a lang IDL attribute to CanvasTextDrawingStyles to give developers direct control over the language for the text drawing and metrics.
Related technical references: ChromeStatus.com entry · Spec
CSS and UI
The dynamic-range-limit property
Enables a page to limit the maximum brightness of HDR content.
Related technical references: ChromeStatus.com entry · Spec
Partition :visited links history
To eliminate user browsing history leaks, anchor elements are styled as :visited only if they have been clicked from this top-level site and frame origin before.
There is an exception for "self-links", where links to a site's own pages can be styled as :visited even if they have not been clicked on in this exact top-level site and frame origin before. This exemption is only enabled in top-level frames or subframes which are same-origin with the top-level frame. The privacy benefits are still achieved because sites already know which of its subpages a user has visited, so no new information is exposed. This was a community-requested exception which improves user experience.
Related technical references: ChromeStatus.com entry · Spec
Unprefixed print-color-adjust
The print-color-adjust property lets you adjust colors in printed web pages. This is the same as Chrome's already-supported -webkit-print-color-adjust, but with a standardized name.
The -webkit- prefixed version is not removed.
Related technical references: MDN Docs · ChromeStatus.com entry · Spec
Rename string attr() type to raw-string
The CSS Working Group has resolved to replace string attr() type with raw-string.
Therefore from Chrome 136 attr(data-foo string) becomes attr(data-foo raw-string).
Related technical references: ChromeStatus.com entry · Spec
Type-agnostic var() fallback
The fallback part of a var() function does not validate against the type of the custom property being referenced.
Related technical references: ChromeStatus.com entry
Web APIs
Dispatch click events to captured pointer
If a pointer is captured while the pointerup event is being dispatched, the click event is now dispatched to the captured target instead of the nearest common ancestor of pointerdown and pointerup events as per the UI Event spec.
For uncaptured pointers, the click target remains unchanged.
Related technical references: ChromeStatus.com entry · Spec
Explicit compile hints with magic comments
Allows attaching of information about which functions should be eager parsed and compiled in JavaScript files.
The information is encoded as magic comments.
Related technical references: ChromeStatus.com entry · Spec
Incorporate navigation initiator into the HTTP cache partition key
Chrome's HTTP cache keying scheme is updated to include an is-cross-site-main-frame-navigation boolean to mitigate cross-site leak attacks involving top-level navigation.
Specifically, this will prevent cross-site attacks in which an attacker can initiate a top-level navigation to a given page and then navigate to a resource known to be loaded by the page in order to infer sensitive information using load timing. This change also improves privacy by preventing a malicious site from using navigations to infer whether a user has visited a given site previously.
Related technical references: ChromeStatus.com entry · Spec
Protected audience: text conversion helpers
Protected Audience bidding and scoring scripts that interface with WebAssembly need to efficiently convert string-typed data to (and from) byte arrays (for example, to pass strings into and out of WebAssembly with the "memory" ArrayBuffer). This provides two standalone functions, protectedAudience.encodeUtf8, and protectedAudience.decodeUtf8 to perform these tasks about an order of magnitude more efficiently than doing it in JavaScript.
RegExp.escape
RegExp.escape is a static method that takes a string and returns an escaped version that may be used as a pattern inside a regular expression.
For example:
Related technical references: ChromeStatus.com entry · Spec
Speculation rules: tag field
This enables developers to add tag field to speculation rules. This optional field can be used to track the source of speculation rules. For example, to treat them differently at an intermediary server. Any tags associated with a speculation will be sent with the Sec-Speculation-Tags header.
Related technical references: ChromeStatus.com entry · Spec
Update ProgressEvent to use double type for loaded and total
The ProgressEvent has attributes loaded and total indicating the progress, and their type is unsigned long long now.
With this feature, the type for these two attributes is changed to double instead, which gives the developer more control over the value. For example, the developers can now create a ProgressEvent with the total of 1 and the loaded increasing from 0 to 1 gradually. This is aligned with the default behavior of the <progress> HTML element if the max attribute is omitted.
Related technical references: ChromeStatus.com entry · Spec
Privacy and security
Permissions Policy reports for iframes
Introduces a new violation type called "Potential Permissions Policy violation", which will only look at Permissions Policy (including report-only policy) and the allow attribute set in iframes to detect the conflict between Permissions Policy enforced versus permissions propagated to iframes.
Related technical references: ChromeStatus.com entry · Spec
Reduce fingerprinting in Accept-Language header information
Reduces the amount of information the Accept-Language header value string exposes in HTTP requests and in navigator.languages. Instead of sending a full list of the user's preferred languages on every HTTP request, Chrome now sends the user's most preferred language in the Accept-Language header.
Related technical references: ChromeStatus.com entry
Identity
FedCM updates
Allows FedCM to show multiple identity providers in the same dialog, by having all providers in the same get() call. This provides developers with a convenient way to present all supported identity providers to users.
Chrome 136 also removes support for add another account in FedCM passive mode. This feature allows showing a use another account button alongside other IdP accounts in the chooser. The feature is currently unused, and UX conversations have led us to believe that supporting this leads to a more complicated flow without much benefit. This feature will still work in FedCM active mode.
Related technical references: ChromeStatus.com entry · Spec
Web authentication conditional create (passkey upgrades)
WebAuthn conditional create requests let websites upgrade existing password credentials to a passkey.
Related technical references: ChromeStatus.com entry · Spec
Images and media
AudioContext Interrupted State
Adds an "interrupted" state to AudioContextState. This new state lets the User Agent pause playback during exclusive audio access (VoIP) or when a laptop lid is closed.
Related technical references: ChromeStatus.com entry · Spec
Captured surface control
A Web API that lets web applications:
- Forward wheel events to a captured tab.
- Read and change the zoom level of a captured tab.
Related technical references: ChromeStatus.com entry · Spec
CapturedSurfaceResolution
Expose pixel ratio of the captured surface while screensharing.
This feature helps applications to conserve their system resources or adapt the quality over bandwidth trade-off according to the physical and logical resolutions of the captured surface.
Related technical references: ChromeStatus.com entry · Spec
H265 (HEVC) codec support in WebRTC
After this change, HEVC will join VP8, H.264, VP9, and AV1 as supported codecs in WebRTC. Support will be queryable using the MediaCapabilities API.
Related technical references: ChromeStatus.com entry · Spec
H26x Codec support updates for MediaRecorder
Chromium's MediaRecorder API now supports HEVC encoding, introducing the hvc1.* codec string, and adds new codecs (hev1.* and avc3.*) supporting variable resolution video in MP4.
This page highlights the release changes most relevant to users. The official source below contains the full technical detail.
Official source: Chrome 136 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.