Version article

Download 135.0.7049.114 from the Chrome Stable for Windows 64-bit

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

Stable Windows 64-bit Published 2025-04-23
Version 135.0.7049.114
Release date 2025-04-23
Platform Windows 64-bit
File size 158.85MB
Quick facts

What users usually want to know first

Branch Stable
Clicks

What changed in Chrome 135.0.7049.114

Google Chrome 135.0.7049.114 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: April 1st, 2025

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

HTML and DOM

Invoker Commands; the command and commandfor attributes

The command and commandfor attributes on <button> elements let you assign behaviour to buttons in a more accessible and declarative way.

Link rel=facilitated-payment to support push payments

Adds support for <link rel="facilitated-payment" href="..."> as a hint that the browser should notify registered payment clients about a pending push payment.

CSS

::column pseudo-element for carousels

A ::column pseudo-element, which allows applying a limited set of styles to the generated fragments. Specifically, this would be limited to styles which do not affect the layout, and thus can be applied post-layout.

ChromeStatus.com entry

::scroll-button() pseudo-elements

Allows the creation of interactive scroll buttons as pseudo-elements, for example:

These should be focusable, behaving as a button (including their UA styles). When activated, a scroll should be performed in the direction by some amount. When it is not possible to scroll in that direction, they should be disabled (and styled with :disabled), otherwise they are enabled (and styled with :enabled).

The selector lets you define buttons in four logical directions: block-start, block-end, inline-start, inline-end; as well as four physical directions: up, down, left, right.

::scroll-marker and ::scroll-marker-group

Adds the ::scroll-marker and ::scroll-marker-group pseudo-elements for scrolling containers. They let you create a set of focusable markers for all of the associated items within the scrolling container.

CSS Inertness—the interactivity property

The interactivity property specifies whether an element and its flat tree descendants (including text runs) are inert or not.

Making an element inert affects whether it can be focused, edited, selected, and searchable by find-in-page. It also affects whether it is visible in the accessibility tree.

CSS logical overflow

The overflow-inline and overflow-block CSS properties allow setting overflow in inline and block direction relative to the writing-mode. In a horizontal writing-mode overflow-inline maps to overflow-x, while in a vertical writing-mode it maps to overflow-y.

CSS anchor positioning remembered scroll offset

Add support for the concept of remembered scroll offset.

When a positioned element has a default anchor, and is tethered to this anchor at one edge, and against the original containing block at the other edge, the scroll offset will be taken into account when it comes to sizing the element. This way you can use all visible space (using position-area) for the anchored element when the document is scrolled at a given scroll offset.

In order to avoid layout (resizing the element) every time the document is scrolled (which is undesired behavior, and also bad for performance), what will be used is a so-called "remembered scroll offset", rather than always using the current scroll offset. The remembered scroll offset is updated at a so-called "anchor recalculation point", which is either:

  • When the positioned element is initially displayed.
  • When a different position option (position-try-fallbacks) is chosen.

CSS shape() function

The shape() function allows responsive free-form shapes in clip-path.

You can define a series of verbs, roughly equivalent to the verbs in path(), but where the verbs accept responsive units (such as % or vw), as well as any CSS values such as custom properties.

safe-area-max-inset-* variables

This feature adds max-area-safe-inset-* variables which don't change and represent the maximum possible safe area inset.

The use case this solves is to avoid needing to relayout the page in cases where the footer (for example) can simply slide as the safe area inset value grows, as opposed to changing size.

Nested pseudo elements styling

Allows to style pseudo elements that are nested inside other pseudo elements. So far, support is defined for:

  • ::before::marker
  • ::after::marker

With ::column::scroll-marker being supported in the future.

Audio and video

Add MediaStreamTrack support to the Web Speech API

Add MediaStreamTrack support to the Web Speech API.

The Web Speech API is a web standard API that allows developers to incorporate speech recognition and synthesis into their web pages. Currently, the Web Speech API uses the user's default microphone as the audio input. MediaStreamTrack support allows websites to use the Web Speech API to caption other sources of audio including remote audio tracks.

Web APIs

Create service worker client and inherit service worker controller for srcdoc iframe

Srcdoc context documents are currently not service worker clients and not covered by their parent's service worker. That results in some discrepancies (for example, Resource Timing reports the URLs that these document load, but service worker doesn't intercept them). This change aims to fix the discrepancies by creating service worker clients for srcdoc iframes and make them inherit parent's service worker controller.

Element reflection

This feature allows for ARIA relationship attributes to be reflected in IDL as element references rather than DOMStrings.

This implements the IDL attributes in the ARIAMixin interface with a type of Element or FrozenArray<Element>, with the exception of ariaOwnsElements.

Fenced frames: Automatic beacon cross-origin data support

Fenced frames or URN iframes, if loaded through an API like Protected Audience or Shared Storage, can send out reporting beacons automatically if some event occurs (currently only top-level navigation beacons are supported). This feature was previously updated to allow cross-origin documents loaded in the root fenced frame's tree to send automatic beacons if opted in, but still kept the restriction that only frames that are same-origin to the origin loaded by the API could set the data that would be sent as part of the beacon. This feature expands that functionality to allow the cross-origin document to set the data that will be used in the automatic beacon.

To allow this while still preserving privacy, both the fenced frame root document and the cross-origin subframe document must explicitly opt in. This is the same opt in shape as other cross-origin FFAR features. Specifically, the root frame must opt in using the Allow-Fenced-Frame-Automatic-Beacons header, and the cross-origin subframe setting the data must opt in with the crossOriginExposed parameter in the call to setReportEvent().

Float16Array

Adds the Float16Array typed array. Number values are rounded to IEEE fp16 when writing into Float16Array instances.

HSTS tracking prevention

Mitigates user tracking by third-parties using the HSTS cache.

This feature only allows HSTS upgrades for top-level navigations and blocks HSTS upgrades for sub-resource requests. Doing so makes it infeasible for third-party sites to use the HSTS cache in order to track users across the web.

NavigateEvent sourceElement

When a navigation is initiated by an Element (for example, with a link click or a form submission), the sourceElement property on the NavigateEvent will be the initiating element.

NotRestoredReasons API reason name change

The NotRestoredReasons API is changing some of the reason texts to align to the standardized names. If you are monitoring these reasons you may notice a change in reason texts.

Observable API

Observables are a popular reactive-programming paradigm to handle an asynchronous stream of push-based events. They can be thought of as Promises but for multiple events, and aim to do what Promises did for callbacks and nesting. That is, they allow ergonomic event handling by providing an Observable object that represents the asynchronous flow of events.

You can subscribe to the object to receive events as they come in, and call any of its operators or combinators to declaratively describe the flow of transformations through which events go. This is in contrast with the imperative version, which often requires complicated nesting with things like addEventListener().

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

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