Chrome 146 beta

Published: February 11, 2026

Unless otherwise noted, these changes apply to the latest Chrome Beta channel release for Android, ChromeOS, Linux, macOS, and Windows. For more information about these features, see the provided links or the list on ChromeStatus.com. Download the latest version from Google.com for desktop or from Google Play Store on Android.

CSS and UI

Scroll-triggered animations

This feature adds scroll-position-based control of animations, for example, playing, pausing, and resetting an animation.

A common pattern on web pages is to start an animation when a scroll position is reached. Developers often use JavaScript to manually detect when an element is within its scroll container's viewport and to start a corresponding animation (for example, sliding that element into view). Many of these use cases rely on information that can be provided declaratively. This feature lets authors create these interactions declaratively through CSS, which allows the user agent to offload the handling of this interaction to a worker thread. The API also includes JavaScript interfaces that extend the feature to web animations in addition to CSS animations.

Find out more in CSS scroll-triggered animations are coming!.

The trigger-scope property

The trigger-scope property lets developers limit the names of animation triggers declared by trigger-instantiating properties.

Trigger-instantiating properties, such as timeline-trigger, declare names that the animation-trigger property can reference to attach animations to triggers. However, these names are global by default (similar to anchor-name). Authors often need to limit the visibility of these names to isolate animation-to-trigger interactions.

Timeline Named Range "scroll"

This feature expands the set of named ranges for view timelines by adding a scroll range.

The Scroll-Driven Animations API introduced ViewTimelines and named ranges that refer to portions of a ViewTimeline that define an animation's range.

However, all provided named ranges were restricted to the portion of the ViewTimeline where its subject is visible. Authors can now refer to the full extent of the scroll container underlying the timeline. This feature adds a scroll named range to the existing set (entry, exit, cover, contain).

Support the hanging and each-line for the text-indent property

The two optional keywords for the text-indent property extend its capability and usability.

The hanging keyword changes indentation to hanging, which means all lines except the first line are indented.

The each-line keyword makes indentation affect not only the first line but also each line after a forced line break.

Web APIs

Navigation API: add post-commit handler from precommit

A small ergonomic improvement that enables registering a post-commit handler while invoking a precommit handler.

Prior to this change, when intercepting navigations with the navigate event, precommitHandlers and post-commit ordinary handlers are passed separately.

This works well when there is only one or the other, but can be a bit clunky when the flow includes a precommitHandler that leads to a post-commit handler.

Populate targetURL during file handling

The Launch Handler implementation now ensures that LaunchParams.targetURL is populated when a PWA launches through File Handling. Previously, this property was null when a file launch was directed to an existing window. This change ensures that the URL from the developer's manifest action field (the same URL the document must currently load) is available to the launchQueue consumer.

WebGPU: Texture and sampler lets

Adds a language feature to WGSL, texture_and_sampler_let, that lets you store texture and sampler objects into a let declaration in WGSL.

WebGPU Compatibility mode

Adds an opt-in, lightly restricted subset of the WebGPU API that can run older graphics APIs, such as OpenGL and Direct3D11. By opting into this mode and obeying its constraints, developers can extend the reach of their WebGPU applications to many older devices that lack the modern, explicit graphics APIs that core WebGPU requires. For simple applications, the only required change is to specify the compatibility featureLevel when calling requestAdapter. For more advanced applications, some modifications might be necessary to accommodate the mode's restrictions. Because Compatibility mode is a subset, the resulting applications are also valid WebGPU Core applications and run even on user agents that don't support Compatibility mode.

WebGPU: Transient attachments

A new TRANSIENT_ATTACHMENT GPUTextureUsage lets developers create attachments that allow render pass operations to stay in tile memory, avoiding VRAM traffic and potentially avoiding VRAM allocation for the textures.

Intl.Locale.prototype.variants

Adds Intl.Locale.prototype.variants, and also accepts variants in the option bag in the Intl.Locale constructor.

Iterator Sequencing

Implements a TC39 proposal to create iterators by sequencing existing iterators. This introduces Iterator.concat(...items).

meta name="text-scale"

Makes the root element's default font size scale in proportion to both the operating system's and browser's text scale settings. This lets pages that follow best practices around font-relative units (that is, use rem and em for font sizes and page elements that change with the user's text size preferences) respect the user's OS-level text scale setting. This also causes the browser to disable existing browser-based mechanisms (that is, full-page zoom on Windows) and heuristics (that is, text autosizing on mobile). Web developers can now signal to the browser that the page is constructed in a way (that is, with rem and em) that scales well across various user-selected font size preferences. Similar to env(preferred-text-scale), which provides authors with a way to access the text scale, this API extends that by enabling scaling through the root element's default font size and opting out of automatic text scaling.

Preserve dropEffect values from dragover to drop events

The HTML5 Drag and Drop API lets web applications handle drag-and-drop operations through a series of events: dragstart, dragenter, dragover, dragleave, drop, and dragend. During these events, the dataTransfer.dropEffect property indicates which operation (copy, move, link, or none) to perform.

According to the HTML5 specification, the dropEffect value that web applications set during the last dragover event is preserved and available in the subsequent drop event.

However, Chromium-based browsers overwrote the web application's dropEffect value with the browser's own negotiated operation before the drop event fired, which broke specification compliance and limited developer control over drag-and-drop behavior.

Data URL MIME type parameter preservation

Preserves MIME type parameters (for example, charset, boundary) in data URL Content-Type headers per the Fetch Standard.

Sanitizer API

The Sanitizer API offers an easy-to-use and safe-by-default HTML Sanitizer API that developers can use to remove content that might execute script from arbitrary, user-supplied HTML content. The goal is to make it easier to build XSS-free web applications.

New origin trials

In Chrome 146, you can opt into these new origin trials.

WebNN

WebNN seeks to let web applications and frameworks take advantage of native operating system services for machine learning and the underlying hardware capabilities available on a user's computer to implement consistent, efficient, and reliable ML experiences on the web.

Register for the WebNN trial.