Chrome 132  |  Release notes  |  Chrome for Developers (2025)

Stable release date: January 14th, 2025

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

HTML and DOM

Throw exception for popovers and dialogs in non-active documents

Previously calling showPopover() or showModal() on a popover or dialogthat resides within an inactive document would silently fail. No exceptionwould be thrown, but as the document is inactive, no popover or dialog wouldbe shown. As of Chrome 132, these situations now throw InvalidStateError.

Tracking bug #373684393 | ChromeStatus.com entry | Spec

Dialog toggle events

It's useful to know when <dialog> elements open and close, and popoveralready has ToggleEvent which is dispatched when a popover opens or closes.Previously, to detect when a <dialog> opens you had to register a mutationobserver to check for open, however, this is quite a lot of work where anevent would be easier.

This change incorporates the same ToggleEvent that popovers dispatch, butfor <dialog> elements: when showModal or show is called, <dialog>dispatches a ToggleEvent with newState=open. When a <dialog> is closed(using the form, button, or closewatcher) it should dispatch a ToggleEventwith newState=closed.

Tracking bug #41494780 | ChromeStatus.com entry | Spec

Fix selection isCollapsed in Shadow DOM

Selection isCollapsed should return true if and only if the anchor and focusare the same. This should be true whether the selection starts or ends inside alight or a shadow tree.

Demo | Tracking bug #40400558 | ChromeStatus.com entry | Spec

CSS

CSS Anchor Positioning: allow anchor-size() in inset and margin properties

Originally, anchor-size() was only allowed in sizing properties. Thespecification was changed to allow anchor-size() in insets and margins aswell.

Tracking bug #346521300 | ChromeStatus.com entry | Spec

CSS sideways writing modes

Support of sideways-rl and sideways-lr keywords for the writing-modeCSS property. sideways-rl and sideways-lr are helpful to write non-CJKtext vertically. They don't have behaviors favorable for CJK languages unlikevertical-rl and vertical-lr.

MDN writing-mode | Tracking bug #40501131 | ChromeStatus.com entry | Spec

Loading

Fetch: Request.bytes() and Response.bytes()

Add a bytes() method to the Request and Response interfaces, whichreturns a promise that resolves with a Uint8Array. While Request andResponse have an arrayBuffer() method, you can't read directly from abuffer. You have to create a view such as a Uint8Array to read it. Thebytes() method improves the ergonomics of getting the body of Request andResponse.

Tracking bug #340206277 | ChromeStatus.com entry | Spec

Ignore Strict-Transport-Security for localhost

Strict-Transport-Security (STS) response headers can cause problems forlocalhost web servers because STS applies host-wide, across all ports. Thiscauses compatibility problems for web developers testing locally. It alsoaffects end-users who use software packages that commonly start localhostweb servers for ephemeral reasons. For example, communication of an authtoken from a web login to a local software package. If one local listenersets Strict-Transport-Security on a localhost response, it's applied toall subsequent localhost requests regardless of port.

Chrome 132 resolves this problem by ignoring Strict-Transport-Securityheaders on responses from localhost URLs.

Tracking bug #41251622 | ChromeStatus.com entry

Capture all screens

Capture all the screens connected to the device using getAllScreensMedia().

Calling getDisplayMedia() multiple times requires multiple user gestures,burdens the user with choosing the next screen each time, and does notguarantee to the app that all the screens were selected. ThegetAllScreensMedia() method improves on all of these fronts.

This feature is shipping on Desktop only.

Design Doc | Tracking bug #40216442 | ChromeStatus.com entry | Spec

Element Capture

Given a video MediaStreamTrack obtained through pre-existing means toinitiate tab-capture, Element Captureallows mutating the track to only capture a subtree of the DOM starting at agiven Element.

The API bears some resemblance to the Region Capture API, but affords greaterflexibility for applications, because occluding and occluded content are bothexcluded from the capture.

Demo | Tracking bug #270230413 | ChromeStatus.com entry | Spec

Web APIs

PushMessageData::bytes()

The PushMessageData interface mimics the Body interface, which was amendedearlier this year with a new bytes() method, following the principle thatAPIs should generally vend byte buffers as Uint8Arrays. Chrome 132 realignswith the Body interface by providing the bytes() accessor on thePushMessageData interface as well.

MDN PushMessageData: bytes() method | Tracking bug #373336950 | ChromeStatus.com entry | Spec

Keyboard focusable scroll containers

The rollout of this feature (from Chrome 130) was stopped due to anaccessibility regression. This is fixed and the feature continues to roll outwith Chrome 132.

Keyboard focusable scrollers | Tracking bug #40113891 | ChromeStatus.com entry | Spec

Device Posture API

This API helps developers to detect the current posture of a foldable device.The device posture is the physical position in which a device holds whichmay be derived from sensors in addition to the angle.

From enhancing the usability of a website by avoiding the area of a fold, toenabling innovative use cases for the web, knowing the posture of a device canhelp developers tailor their content to different devices.

Content can be consumed and browsed even when the device is not flat, inwhich case the developer might want to provide a different layout for itdepending on the posture state in which the device is being used.

Git Repo | Tracking bug #40124716 | ChromeStatus.com entry | Spec

sharedStorage.selectURL() now allows queries to be saved and reused on aper-page basis, where the two per-page-load budgets are charged the firsttime a saved query is run but not for subsequent runs of the saved queryduring the same page-load. This is accomplished with a savedQuery parameterin the options for selectURL() that names the query.

Tracking bug #367440966 | ChromeStatus.com entry | Spec

Private State Token API Permissions Policy default allowlist wildcard

Access to the Private State Token API is gated by Permissions Policy features.Chrome 132 updates the default allowlist for both private-state-token-issuanceand private-state-token-redemption features from self to * (wildcard).

ChromeStatus.com entry | Spec

FedCM Mode API and Use Other Account API

Two new extensions for FedCM:

  • Mode: The active mode allows websites to call FedCM inside a buttonclick (for example, clicking on a Sign-in to IdP button), which requiresFedCM to guarantee it will always respond with a visible user interface.Calling the FedCM API in active mode takes users to login to the IdentityProvider (IdP) when users are logged-out. Also, because the active mode iscalled within an explicit user gesture, the UI is also more prominent (forexample, centered and modal) compared to the UI from the passive mode (whichdoesn't require a user gesture requirement and can be called on page load).
  • Use Other Account: With this extension, an IdP can allow users to signinto other accounts.

Demo | Tracking bug #370694829 | ChromeStatus.com entry | Spec

File System Access for Android and WebView

This API enables developers to build powerful apps that interact with other(non-Web) apps on the user's device using the device's file system. After auser grants a web app access, this API allows the app to read or save changesdirectly to files and folders selected by the user. Beyond reading and writingfiles, this API provides the ability to open a directory and enumerate itscontents, as well as store file and directory handles in IndexedDB to laterregain access to the same content.

File System access shippedon Desktop in Chrome 86, with Chrome 132 it's available on Android and WebView.

The File System Access API | Tracking bug #40091667 | ChromeStatus.com entry | Spec

WebAuthn Signal API

Allows WebAuthn relying parties to signal information about existing credentialsback to credential storage providers, so that incorrect or revoked credentialscan be updated or removed from provider and system UI.

Learn more about the Signal API for passkeys on Chrome desktop.

Demo | Tracking bug #361751877 | ChromeStatus.com entry | Spec

Rendering and graphics

WebGPU: 32-bit float textures blending

The float32-blendable GPU feature makes GPU textures with formats r32float,rg32float, and rgba32float blendable.

Tracking bug #369649348 | ChromeStatus.com entry | Spec

WebGPU: Expose GPUAdapterInfo from GPUDevice

The GPUDevice adapterInfo attribute exposes the same GPUAdapterInfo as theGPUAdapter object.

Tracking bug #376600838 | ChromeStatus.com entry | Spec

WebGPU: Texture view usage

Adds an optional field to WebGPU texture view creation to request a subset ofthe usage flags from the source texture.

By default, texture view usage inherits from the source texture but there areview formats which can be incompatible with the full set of inherited usages.Adding a usage field to texture view creation allows the user to request asubset of the source texture's usages that are valid with the view format andspecific to their intended usage of the texture view.

WebGPU implementations can also optimize the creation of low level resourcesand improve performance when using views with more specialized usage flags.

Tracking bug #363903526 | ChromeStatus.com entry | Spec

Origin trials

Explicit compile hints with magic comments

This feature lets you attach information about which functions should beeagerly parsed and compiled in JavaScript files. The information will beencoded as magic comments.

Origin Trial | Explainer | Tracking bug #42203853 | ChromeStatus.com entry

Document-Isolation-Policy

Document-Isolation-Policy allows a document to enable crossOriginIsolationfor itself, without having to deploy COOP or COEP, and regardless of thecrossOriginIsolation status of the page. The policy is backed by processisolation. Additionally, the document non-CORS cross-origin subresources willeither be loaded without credentials or will need to have a CORP header.

Origin Trial | Tracking bug #333029146 | ChromeStatus.com entry | Spec

Deprecations and removals

navigator.storage no longer an EventTarget

navigator.storage was made an EventTarget for the Storage Pressure Event,which never made it past the prototype phase. This dead code is being removedand as a result, navigator.storage will no longer extend EventTarget.

ChromeStatus.com entry | Spec

Remove prefixed HTMLVideoElement fullscreen APIs

The prefixed HTMLVideoElement fullscreen APIs have been deprecated from Chrome.

They were replaced by the Element.requestFullscreen() API, which firstshipped unprefixed in Chrome 71, in 2018. As of 2024, most browsers have hadsupport for the unprefixed APIs for a few years now.

Chrome 132 removes the following from HTMLVideoElement:

  • The webkitSupportsFullscreen attribute.
  • The webkitDisplayingFullscreen attribute.
  • The webkitEnterFullscreen() method.
  • The webkitExitFullscreen() method. Note the different capitalization ofthe "S" in FullScreen.
  • The webkitEnterFullScreen() method.
  • The webkitExitFullScreen() method.

These methods are now only aliases for the modern API. Their use has declinedsteadily over the years.

ChromeStatus.com entry

Further reading

Looking for more? Check out these additional resources.

Download Google Chrome

Download Chrome for Android, Desktop, or iOS.

Chrome 132  |  Release notes  |  Chrome for Developers (2025)
Top Articles
Latest Posts
Recommended Articles
Article information

Author: Dan Stracke

Last Updated:

Views: 6413

Rating: 4.2 / 5 (63 voted)

Reviews: 94% of readers found this page helpful

Author information

Name: Dan Stracke

Birthday: 1992-08-25

Address: 2253 Brown Springs, East Alla, OH 38634-0309

Phone: +398735162064

Job: Investor Government Associate

Hobby: Shopping, LARPing, Scrapbooking, Surfing, Slacklining, Dance, Glassblowing

Introduction: My name is Dan Stracke, I am a homely, gleaming, glamorous, inquisitive, homely, gorgeous, light person who loves writing and wants to share my knowledge and understanding with you.