Download 134.0.6998.165 from the Chrome Stable for Windows 32-bit
Download Google Chrome 134.0.6998.165 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 134.0.6998.165
Google Chrome 134.0.6998.165 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: March 4th, 2025
Unless otherwise noted, the following changes apply to Chrome 134 stable channel release for Android, ChromeOS, Linux, macOS, and Windows.
HTML and DOM
Customizable <select> Element
Customizable <select> allows developers to take complete control of the rendering of <select> elements by adding the appearance: base-select CSS property and value.
This feature relies on the SelectParserRelaxation flag, which changes the HTML parser to allow more tags within the <select> tag.
Related technical references: ChromeStatus.com entry · Spec
Select parser relaxation
This change makes the HTML parser allow additional tags in <select> besides <option>, <optgroup>, and <hr>.
This feature is gated by the temporary policy (SelectParserRelaxationEnabled). This is a temporary transition period, and the policy will stop working from Chrome 141.
If you are experiencing problems that you believe are caused by this change, there's a reverse origin trial to disable the parser relaxation.
Related technical references: ChromeStatus.com entry · Spec
Dialog light dismiss
One of the nice features of the Popover API is its light dismiss behavior. This behavior is now part of <dialog>, with a new closedby attribute controlling the behavior:
<dialog closedby="none">: No user-triggered closing of dialogs at all.<dialog closedby="closerequest">: Pressing Esc (or other close trigger) closes the dialog<dialog closedby="any">: Clicking outside the dialog, or pressing Esc, closes the dialog. Akin topopover="auto"behavior.
Related technical references: ChromeStatus.com entry · Spec
CSS
CSS highlight inheritance
With CSS highlight inheritance, the CSS highlight pseudo-classes, such as ::selection and ::highlight, inherit their properties through the pseudo highlight chain, rather than the element chain. The result is a more intuitive model for inheritance of properties in highlights.
Related technical references: ChromeStatus.com entry · Spec
PWA
Document subtitle (Fix PWA app titles)
This feature allows to specify complementary information about the current window of an installed running PWA. It adds a subtitle to the page to provide contextual information that is displayed in the window's title bar. This replaces the text contained in the HTML title element.
Related technical references: ChromeStatus.com entry · Spec
User link capturing on PWAs
Web links automatically direct users to installed web apps. To better align with users' expectations around installed experiences, Chrome makes it easier to move between the browser and installed web apps. When the user clicks a link that could be handled by an installed web app, the link will open in that installed web app. Users can change this behavior through the installed web app's settings. Developers can control this behavior with the launch_handler manifest property, and can reference this developer documentation for more information about how deep linking works with installed web apps.
Performance
Document-Policy: expect-no-linked-resources
The expect-no-linked-resources configuration point in Document Policy allows a document to hint to the user agent to better optimize its loading sequence, such as not using the default speculative parsing behavior.
User Agents have implemented speculative parsing of HTML to speculatively fetch resources that are present in the HTML markup, to speed up page loading. For the vast majority of pages on the Web that have resources declared in the HTML markup, the optimization is beneficial and the cost paid in determining such resources is a sound tradeoff. However, the following scenarios might result in a sub-optimal performance tradeoff versus the explicit time spent parsing HTML for determining sub resources to fetch:
- Pages that don't have any resources declared in the HTML.
- Large HTML pages with minimal or no resource loads that could explicitly control preloading resources using other preload mechanisms available.
The expect-no-linked-resources Document-Policy hints the User Agent that it may choose to optimize out the time spent in such sub resource determination.
Related technical references: ChromeStatus.com entry · Spec
Explicit resource management (async)
These features address a common pattern in software development regarding the lifetime and management of various resources (for example memory and I/O). This pattern generally includes the allocation of a resource and the ability to explicitly release critical resources.
Related technical references: ChromeStatus.com entry · Spec
Explicit resource management (sync)
These features address a common pattern in software development regarding the lifetime and management of various resources (for example memory and I/O). This pattern generally includes the allocation of a resource and the ability to explicitly release critical resources.
Related technical references: ChromeStatus.com entry · Spec
Extend the console.timeStamp API to support measurements and presentation options
Extends the console.timeStamp() API, in a backwards-compatible manner, to provide a high-performance method for instrumenting applications and surfacing timing data to the Performance panel in DevTools.
Timing entries added with the API can have a custom timestamp, duration and presentation options (track, swimlane, and color).
Related technical references: ChromeStatus.com entry · Spec
Web APIs
Allow reading interest groups in Shared Storage Worklet
Adds an interestGroups() method to the shared storage worklet, to return the Protected Audience interest groups associated with the shared storage origin's owner, with some additional metadata.
This API provides the Protected Audience buyer with a better picture of what's happening with their users, allowing for Private Aggregation reports.
Attribution reporting Feature: Remove aggregatable report limit when trigger context ID is non-null
This change is based on API caller feedback and the need for being able to measure a higher number of conversion events for certain user flows.
Currently the API has a limit that allows up to 20 aggregatable reports to be generated per source registration which is restrictive for use cases where a user may have a longer user journey. This change removes the aggregatable report limit when a trigger context ID is provided as part of the registration. The removal of this limit is restricted to only when the trigger context ID is specified, because when it is specified the API applies a higher rate of null reports which helps to protect against cross-site information leaking through report counts.
Additionally, aggregatable reports will still be bound by other limits that restrict the total amount of information that can be measured, such as the L1 contribution budget (65,536) per source and the attribution rate limit.
Bounce tracking mitigations on HTTP Cache
Bounce tracking mitigations for the HTTP cache is an extension to existing anti-bounce-tracking behavior. It removes the requirement that a suspected tracking site must have performed storage access in order to activate bounce tracking mitigations.
Chrome's initially proposed bounce tracking mitigation solution triggers when a site accesses browser storage (for example, in cookies) during a redirect flow. However, bounce trackers can systematically circumvent such mitigations by using the HTTP cache to preserve data. By relaxing the triggering conditions for bounce tracking mitigations, the browser should be able to catch bounce trackers using the HTTP cache.
Related technical references: ChromeStatus.com entry · Spec
LLM-powered on-device detection of abusive notifications on Android
This launch aims to hide the contents of notifications that are suspected to be abusive. The user will then have the options to dismiss, show the notification, or unsubscribe from the origin. This detection is to be done by an on-device model.
OffscreenCanvas getContextAttributes
Add the getContextAttributes interface from CanvasRenderingContext2D to OffscreenCanvasRenderingContext2D.
Related technical references: ChromeStatus.com entry · Spec
Private Aggregation API: per-context contribution limits for Shared Storage callers
Enables Shared Storage callers to customize the number of contributions per Private Aggregation report.
This feature enables Shared Storage callers to configure per-context contribution limits with a new field, maxContributions. Callers set this field to override the default number of contributions per report—larger and smaller numbers will both be permitted. Chrome will accept values of maxContributions between 1 and 1000 inclusive; larger values will be interpreted as 1000.
Due to padding, the size of each report's payload will be roughly proportional to the chosen number of contributions per report. We expect that opting into larger reports will increase the cost of operating the Aggregation Service.
Protected Audience callers won't be affected by this feature. However, we are planning to add support for customizing the number of contributions for Protected Audience reports in future features.
Related technical references: ChromeStatus.com entry · Spec
Support Web Locks API in Shared Storage
Integrates the Web Locks API into Shared Storage. This prevents scenarios such as where cross-site reach measurement can result in duplicate reporting, due to the potential race conditions within the get() and set() logic.
This change:
- Introduces
navigator.locks.requestto the worklet environment. - Introduces
{ withLock: <resource>}option to all modifier methods. - Introduces a batch modify method:
sharedStorage.batchUpdate(methods, options). This method, with thewithLockoption, allows multiple modifier methods to be executed atomically, enabling use cases where a website needs to maintain consistency while updating data organized across multiple keys.
Related technical references: ChromeStatus.com entry
Rendering and graphics
Support ImageSmoothingQuality in PaintCanvas
This page highlights the release changes most relevant to users. The official source below contains the full technical detail.
Official source: Chrome 134 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.