Chrome 141 beta

Published: September 4, 2025

Unless otherwise noted, the following changes apply to the newest Chrome beta channel release for Android, ChromeOS, Linux, macOS, and Windows. Learn more about the features listed here through the provided links or from the list on ChromeStatus.com. Chrome 141 is beta as of September 4, 2025. You can download the latest on Google.com for desktop or on Google Play Store on Android.

CSS and UI

ARIA Notify API

The ARIA Notify API provides a JavaScript method for developers to directly tell a screen reader what to read.

Using ariaNotify() improves reliability and developer control compared to ARIA live regions, and it allows changes not tied to DOM updates to be announced. This lets you create more consistent and ergonomic accessibility experiences across dynamic web applications. You can control iframe usage of this feature using the "aria-notify" permission policy.

Update hidden=until-found and details ancestor revealing algorithm

The specification recently had some small changes to the revealing algorithms for hidden=until-found and details elements to prevent the browser from getting stuck in an infinite loop; these updates have been added to Chrome.

Support width and height as presentation attributes on nested <svg> elements

Chrome supports applying width and height as presentation attributes on nested <svg> elements through both SVG markup and CSS. This dual approach provides even greater flexibility for developers, letting them manage and style SVG elements more efficiently within complex designs.

With this feature enabled the following HTML snippets have the same output.

With CSS Properties for the nested <svg> element:

<svg width="100px" height="100px">
  <svg style="width:50px;height:50px;">
    <circle cx="50px" cy="50px" r="40px" fill="green" />
  </svg>
</svg>

Without CSS Properties for the nested <svg> element:

<svg width="100px" height="100px">
  <svg width="50px" height="50px">
    <circle cx="50px" cy="50px" r="40px" fill="green" />
  </svg>
</svg>

Web APIs

Digital Credentials API (presentation support)

Websites retrieve credentials from mobile wallet apps using a variety of mechanisms, such as custom URL handlers and QR code scanning. This feature lets sites request identity information from wallets using Android's IdentityCredential CredMan system. It is extensible to support multiple credential formats (such as ISO mDoc and W3C verifiable credential) and allows multiple wallet apps to be used. This update adds mechanisms to help reduce the risk of ecosystem-scale abuse of real-world identity.

Normally, when navigateEvent.intercept() is called, the intercepted navigation commits (and therefore the URL updates) as soon as the NavigateEvent finishes dispatch.

This feature adds a precommitHandler option to navigateEvent.intercept(), similar to handler. It defers the commit until that handler (and all other precommit handlers) are resolved, and it allows the handler to change the navigation's URL, info, status, and history handling behavior (push/replace).

Support restrictOwnAudio

The restrictOwnAudio property is a captured display surfaces constrainable property. This constrainable property changes the behavior of system audio in a captured display surface. The restrictOwnAudio constraint will only have an effect if the captured display surface inherently includes system audio; otherwise, it will have no impact.

By default, when system audio is captured, it includes all audio played out by the system on audio output devices. When restrictOwnAudio is enabled, the captured system audio will be filtered to exclude audio originating from the document that performed getDisplayMedia.

echoCancellationMode for getUserMedia()

Extends echoCancellation behavior of MediaTrackConstraints dictionary. This previously only accepted true and false, and now also has possible values of all and remote-only. Allows the clients to modify echo cancellation behavior applied to audio tracks received from microphones, controlling how much of the user system playout (all, or only audio received from PeerConnections) is removed from the microphone signal.

windowAudio for getDisplayMedia()

Extends DisplayMediaStreamOptions for getDisplayMedia() with a windowAudio option. This new option lets web applications hint to the user agent whether the user should be offered the ability to share audio when a window is selected. The windowAudio option can be set to exclude, system, or window based on application preference.

A web application that is configured for audio capture but wants to limit system audio capture when a window is selected must set windowAudio: "exclude".

FedCM: Alternative Fields in Account Selection

Adds support for phone numbers and usernames, in addition to or instead of a user's full name and email address as identifiers for disambiguating accounts in the account selector, and makes these new fields available for websites to affect the disclosure text. See the documentation for more details.

IndexedDB getAllRecords() and direction option for getAll() and getAllKeys()

This feature adds the getAllRecords() method to the IndexedDB IDBObjectStore and IDBIndex. It also adds a direction parameter to getAll() and getAllKeys(). This functionality lets certain read patterns be significantly faster when compared to the existing alternative of iteration with cursors. In one test, a workload from a Microsoft property showed a 350ms improvement.

The getAllRecords() method combines getAllKeys() and getAll() by enumerating both primary keys and values at the same time. For an IDBIndex, getAllRecords() also provides the record's index key in addition to the primary key and value.

Speculation rules: desktop "eager" eagerness improvements

On desktop, "eager" eagerness speculation rules prefetches and prerenders trigger when users hover on a link for a shorter time than the "moderate" mouse hover time.

The previous behavior, of starting prefetch or prerenders as soon as possible, was the same as "immediate" eagerness. This new behavior is helpful because it better reflects the author's intent to be more eager than the "moderate" and less eager than "immediate".

Strict Same Origin Policy for Storage Access API

Adjusts the Storage Access API semantics to strictly follow the Same Origin Policy with regard to security. That is, using document.requestStorageAccess() in a frame only attaches cookies to requests to the iframe's origin (not site) by default.

Signature-based integrity

This feature provides web developers with a mechanism to verify the provenance of resources they depend on, creating a technical foundation for trust in a site's dependencies. Servers can sign responses with an Ed25519 key pair, and web developers can require the user agent to verify the signature using a specific public key. This offers a helpful addition to URL-based checks offered by Content Security Policy on the one hand, and Subresource Integrity's content-based checks on the other.

WebRTC Encoded Transform (Version 2)

This API lets you process encoded media flowing through an RTCPeerConnection. Chromium released an early version of this API in 2020. Since then, the spec has changed and other browsers have released the updated version of the spec (Safari in 2022 and Firefox in 2023).

This launch updates Chrome to the most recent specification and is part of Interop 2025.

This launch does not cover the generateKeyFrame method, which is still under discussion.

Managed ChromeOS devices only

Permissions Policy for the Device Attributes API

The new Permissions Policy lets you restrict access to the Device Attributes API, which is available only for policy-installed kiosk web apps and policy-installed Isolated Web Apps, both only on managed ChromeOS devices. Additionally, content settings control the feature.

Two new policies are introduced: DeviceAttributesBlockedForOrigins and DefaultDeviceAttributesSetting. These policies are introduced alongside DeviceAttributesAllowedForOrigins.

New origin trials

In Chrome 141 you can opt into the following new origin trials.

Local network access restrictions

Chrome 141 restricts the ability to make requests to the user's local network, gated behind a permission prompt.

A local network request is any request from a public website to a local IP address or loopback, or from a local website (for example, an intranet) to loopback. Requiring a permission for websites to perform these requests mitigates the risk of cross-site request forgery attacks against local network devices such as routers, and it reduces the ability of sites to use these requests to fingerprint the user's local network.

This permission is restricted to secure contexts. If granted, the permissions additionally relaxes mixed content blocking for local network requests (since many local devices are not able to obtain publicly trusted TLS certificates for various reasons).

This work supersedes an earlier effort called "Private Network Access".

Proofreader API

A JavaScript API for proofreading input text with suggested corrections, backed by an AI language model.

Extend CSP script-src (also known as script-src-v2)

This feature adds new keywords to the script-src Content Security Policy (CSP) directive. This adds two new hash-based allowlisting mechanisms: script sources based on hashes of URLs and contents of eval() and eval()-like functions. This is sometimes referred to as script-src-v2, although it is backward compatible with the existing script-src, and uses the same directive.

Extending hashes to cover URL and eval() hashes lets developers set reasonably strict security policies by narrowly allowlisting scripts by their hashes even when script contents are subject to frequent changes, and known-safe contents of eval() without permitting unchecked use of eval() broadly.

The new keywords override host-based script-src when provided. This allows a single header to be compatible with browsers that both do or do not implement the new keywords.

WebAssembly custom descriptors

Lets WebAssembly store data associated with source-level types more efficiently in new "custom descriptor" objects. These custom descriptors can be configured with prototypes for the WebAssembly objects of that source-level type. This lets you install methods on a WebAssembly object's prototype chain and call them directly from JavaScript using normal method call syntax. The prototypes and methods can be configured declaratively using an imported built-in function.