Stable release date: October 28th, 2025
Unless otherwise noted, the following changes apply to Chrome 142 stable channel release for Android, ChromeOS, Linux, macOS, and Windows.
CSS and UI
Absolute positioning for the ::view-transition element
View transitions use a pseudo subtree of the element, with ::view-transition
being the root of that transition. Previously, the ::view-transition element
was specified to have position: fixed. The CSS Working Group resolved to make
this position: absolute and so Chrome now reflects that change.
This change shouldn't be noticeable because this element's containing block remains the snapshot containing block in either the absolute or fixed case. The only noticeable difference is in getComputedStyle.
Tracking bug #439800102 | ChromeStatus.com entry | Spec
activeViewTransition property on document
The View Transitions API lets developers start visual transitions between different states. The primary SPA entry point is startViewTransition(), which returns a transition object. This object contains several promises and functionality to track transition progress, and lets you manipulate transitions, for example, by skipping the transition or modifying its types.
From Chrome 142, developers no longer need to store this object. A document.activeViewTransition property represents this object, or null if no transition is ongoing.
This also applies to MPA transitions, where the object is only available through pageswap and pagereveal events. In this update, document.activeViewTransition is set to this object for the duration of the transition.
Tracking bug #434949972 | ChromeStatus.com entry | Spec
:target-before and :target-after pseudo-classes
These pseudo-classes match scroll markers that are before or after the active marker (matching :target-current) within the same scroll marker group, as determined by flat tree order:
:target-before: Matches all scroll markers that precede the active marker in the flat tree order within the group.:target-after: Matches all scroll markers that follow the active marker in the flat tree order within the group.
Tracking bug #440475008 | ChromeStatus.com entry | Spec
Range syntax for style container queries and if()
Chrome enhances CSS style queries and the if() function by adding support for range syntax.
It extends style queries beyond exact value matching (for example, style(--theme: dark)). Developers can use comparison operators (such as > and <) to compare custom properties, literal values (for example, 10px or 25%), and values from substitution functions like attr() and env(). For a valid comparison, both sides must resolve to the same data type. It is limited to the following numeric types: <length>, <number>, <percentage>, <angle>, <time>, <frequency>, and <resolution>.
Tracking bug #408011559 | ChromeStatus.com entry | Spec
Interest Invokers (the interestfor attribute)
Chrome adds an interestfor attribute to <button> and <a> elements. This attribute adds "interest" behaviors to the element. When a user "shows interest" in the element, actions are triggered on the target element, for example, showing a popover. The user agent detects when a user "shows interest" in the element through methods such as holding the pointer over the element, hitting special hotkeys on the keyboard, or long-pressing the element on touchscreens. When interest is shown or lost, an InterestEvent fires on the target, which has default actions for popovers, such as showing and hiding the popover.
Tracking bug #326681249 | ChromeStatus.com entry | Spec
Mobile and desktop parity for select element rendering modes
By using the size and multiple attributes, the <select> element can be rendered as an in-page listbox or a button with a popup. However, these modes don't have consistent availability across mobile and desktop Chrome. In-page listbox rendering is unavailable on mobile, and a button with a popup is unavailable on desktop when the multiple attribute is present.
This update adds the listbox to mobile and a multi-select popup to desktop, and ensures that opt-ins with the size and multiple attributes result in the same rendering mode across mobile and desktop. The changes are summarized as follows:
- When the
sizeattribute has a value greater than1, in-page rendering is always used. Mobile devices ignored this before. - When the
multipleattribute is set with nosizeattribute, in-page rendering is used. Mobile devices previously used a popup instead of an in-page listbox. - When the
multipleattribute is set withsize=1, a popup is used. Desktop devices previously used an in-page listbox.
Tracking bug #439964654 | ChromeStatus.com entry | Spec
Support download attribute in SVG <a> element
This feature introduces support for the download attribute on the SVGAElement interface in Chromium, aligning with the SVG 2 specification. The download attribute enables authors to specify that the target of an SVG hyperlink should be downloaded rather than navigated to, mirroring the behavior already supported in HTMLAnchorElement. This enhancement promotes interoperability across major browsers and ensures consistent behavior between HTML and SVG link elements, thereby improving developer experience and user expectations.
Tracking bug #40589293 | ChromeStatus.com entry | Spec
Graphics
WebGPU: primitive_index feature
WebGPU adds a new optional capability that exposes a new WGSL shader built-in, primitive_index. It provides a per-primitive index to fragment shaders on supported hardware, similar to the vertex_index and instance_index built-ins. The primitive index is useful for advanced graphical techniques, such as virtualized geometry.
Tracking bug #342172182 | ChromeStatus.com entry | Spec
WebGPU: Texture formats tier1 and tier2
Extend GPU texture format support with capabilities like render attachment, blending, multisampling, resolve and storage_binding.
Tracking bug #445725447 | ChromeStatus.com entry | Spec
Web APIs
FedCM—Support showing third-party iframe origins in the UI
Before Chrome 142, FedCM always showed the top-level site in its UI.
This works well when the iframe is conceptually first-party (for example, foo.com might have an iframe foostatic.com, which is not meaningful to the user).
But if the iframe is actually third-party, it is better to show the iframe origin in the UI so users better understand who they are sharing their credentials with. For example, a photo editor might be embedded in a book publishing web app and might want to let users access files they stored before with the photo editor. This capability is now available.
Tracking bug #390581529 | ChromeStatus.com entry | Spec
Stricter *+json MIME token validation for JSON modules
Reject JSON module script responses whose MIME type's type or subtype contains non-HTTP token code points (for example, spaces) when matched with *+json. This aligns with the MIME Sniffing specification and other engines. It is part of the Interop2025 modules focus area.
Tracking bug #440128360 | ChromeStatus.com entry | Spec
Web Speech API contextual biasing
This feature enables websites to support contextual biasing for speech recognition by adding a recognition phrase list to the Web Speech API.
Developers can provide a list of phrases as well as updating them to apply a bias to the speech recognition models in favor of those phrases. This helps improve accuracy and relevance for domain-specific and personalized speech recognition.
Media session: add reason to enterpictureinpicture action details
Adds enterPictureInPictureReason to the MediaSessionActionDetails sent to the enterpictureinpicture action in the Media Session API. This allows developers to distinguish between enterpictureinpicture actions triggered explicitly by the user (e.g. from a button in the user agent) and enterpictureinpicture actions triggered automatically by the user agent due to the content becoming occluded.
Tracking bug #446738067 | ChromeStatus.com entry | Spec
Security
Local network access restrictions
Chrome 142 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. Gating the ability for websites to perform these requests behind a permission mitigates the risk of cross-site request forgery attacks against local network devices such as routers, and 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).
Learn more in New permission prompt for Local Network Access.
Tracking bug #394009026 | ChromeStatus.com entry | Spec
User input
Interoperable pointerrawupdate events exposed only in secure contexts
The PointerEvents specification restricted pointerrawupdate to secure contexts in 2020, hiding both the event firing and the global event listeners from insecure contexts. Through this feature, Chrome will match the updated specification and become interoperable with other major browsers.
Tracking bug #404479704 | ChromeStatus.com entry | Spec
Sticky user activation across same-origin renderer-initiated navigations
This feature preserves the sticky user activation state after a page navigates to another same-origin page. The lack of user activation in the post-navigation page prevents some use cases like showing virtual keyboards on auto-focus, and this has been a blocker for the developers who want to build MPAs over SPAs.
Tracking bug #433729626 | ChromeStatus.com entry | Spec
Origin trials
Device Bound Session Credentials
A way for websites to securely bind a session to a single device.
It lets servers have a session be securely bound to a device. The browser will renew the session periodically as requested by the server, with proof of possession of a private key.
Origin Trial | Device Bound Session Credentials: Second origin trial begins | ChromeStatus.com entry | Spec