- CSS gap decorations with new properties column-rule-inset, row-rule-inset, column-rule-visibility-items, and row-rule-visibility-items to style gaps in container layouts like grid and flexbox
- Support for animation of CSS gap decoration rule width, color, and insets
- Support for path() and shape() functions in CSS shape-outside property for defining float exclusion shapes
- Support for rect() and xywh() basic shape functions in CSS shape-outside property
- Support for image-rendering: crisp-edges to scale images preserving contrast and edges using nearest-neighbor scaling
- Introduce path-length as a CSS property for SVG geometry elements
- Add Intl.Locale.prototype.variants to support variants in Intl.Locale constructor options
- Text with text-overflow: ellipsis temporarily switches from ellipsis to clip when user interacts by editing or using caret navigation
- Removed erroneous border-color: gray CSS rule from UA stylesheet for table elements to allow borders to default to currentColor
- User action pseudo-classes :hover, :active, and :focus-within now match only up to the first top layer element in parent chain
- Restrict access to system accent color for CSS keywords AccentColor and AccentColorText and accent-color: auto to web app and initial profile context
- Payment Request API payment handlers can report distinct errors for user cancellation versus internal payment app errors
- Chrome respects autocorrect="off" attribute for Windows touch keyboard in TSF integration
- Asynchronous Clipboard API defer actual clipboard data retrieval until web application calls getType() to reduce CPU usage
- WebSocket connections are closed on bfcache entry instead of preventing page from entering Back/Forward Cache
Stable release date: June 2nd, 2026 Unless otherwise noted, the following changes apply to Chrome 149 stable channel release for Android, ChromeOS, Linux, macOS, and Windows.
CSS and UI
CSS gap decorations
CSS gap decorations let you style gaps in container layouts like grid and flexbox, similar to column-rule in multiple-column layout. This feature is highly requested by web developers who must use hacks to style the gaps in grid and flexbox layouts today. It brings new CSS properties like column-rule-inset, row-rule-inset, column-rule-visibility-items, and row-rule-visibility-items, and supports animation of rule width, color, and insets. CSS gap decorations blog post | Tracking bug #357648037 | ChromeStatus.com entry | Spec
Clip text overflow on user interaction
When a user interacts (for example, by editing or using caret navigation) with text that has text-overflow: ellipsis set, the text temporarily switches from ellipsis to clip. This lets the user see and interact with the hidden overflow content. This feature applies to all editable and non-editable elements. For form controls, such as and , this behavior is already supported. Tracking bug #40731275 | ChromeStatus.com entry | Spec
Remove explicit border color UA stylesheet rule for tables
This change removes the erroneous border-color: gray CSS rule from the UA stylesheet for the element. The HTML specification does not contain this rule, and it prevented borders from defaulting to currentColor. Neither Firefox nor WebKit have this gray border color rule in their UA stylesheet, leading to interoperability issues. Tracking bug #494554835 | ChromeStatus.com entry | Spec
Support path() and shape() in shape-outside
Adds support for the path() and shape() shape functions in the CSS shape-outside property. These functions let developers define float exclusion shapes more flexibly and support animation. Tracking bug #502328208 | ChromeStatus.com entry | Spec
Support rect() and xywh() in shape-outside
Adds support for the rect() and xywh() basic shape functions in the CSS shape-outside property. These functions let developers define float exclusion shapes using rectangle coordinates, aligning Chrome with Firefox and Safari which already support this feature. Tracking bug #490343453 | ChromeStatus.com entry | Spec
User action pseudo-class top layer boundary
Changes :hover, :active, and :focus-within matching on parents of elements to match only up to the first top layer element in the parent chain. Since top layer elements are typically rendered disconnected from their parent chain visually, it does not make sense to change parent styles when a top layer element is hovered or activated. Tracking bug #407769114 | ChromeStatus.com entry | Spec
Web app scope system accent color
Restricts access to the system accent color for CSS keywords (AccentColor and AccentColorText) and accent-color: auto to be only within a web app and initial profile context. This limits a significant fingerprinting vector when exposing the user's system colors widely on the web. Tracking bug #481353056 | ChromeStatus.com entry | Spec
image-rendering: crisp-edges
image-rendering: crisp-edges indicates that image should be scaled in a way that preserves contrast and edges, and which avoids smoothing colors or introducing blur to the image in the process. Chrome, Firefox, and Safari treat crisp-edges and pixelated as synonyms and implement both using nearest-neighbor scaling. Tracking bug #41073066 | ChromeStatus.com entry | Spec
Support 'path-length' as a CSS property
Introduces a new CSS property, path-length, which maps to the SVG pathLength presentation attribute. This applies to SVG geometry elements that support pathLength (including , , , , , , and ), allowing authors to specify it in stylesheets, inline styles, and animations. Tracking bug #40670251 | ChromeStatus.com entry | Spec
Web APIs
Intl.Locale.prototype.variants
Adds Intl.Locale.prototype.variants as stated in the ECMA-402 specification, and accepts variants in the options bag in the Intl.Locale constructor. ChromeStatus.com entry | Spec
Payment Request: Allow payment handlers to report back internal errors
Lets payment handlers accessed using the Payment Request API return distinct errors for "user cancelled" (AbortError) versus "internal payment app error" (OperationError). This lets developers retry or fall back to a different flow when an internal app error occurs, while properly stopping if the user cancels. Tracking bug #473478138 | ChromeStatus.com entry | Spec
Respect autocorrect="off" for Windows touch keyboard in TSF
Makes Chrome's TSF integration detect and revert touch keyboard autocorrections on Windows when the focused editable element has autocorrect="off" set. Tracking bug #487613498 | ChromeStatus.com entry | Spec
Selective Clipboard Format Read
Enhances the Asynchronous Clipboard API by deferring actual clipboard data retrieval from the OS until the web application calls getType(). Instead of eagerly fetching all available formats at read() time, the browser now returns ClipboardItem objects with available MIME types but without the underlying data, which reduces CPU usage and improves responsiveness. Tracking bug #435051711 | ChromeStatus.com entry | Spec
Network and connectivity
Disconnect WebSockets on bfcache entry
Active WebSocket connections no longer prevent a page from entering the Back/Forward Cache (bfcache). By closing connections on bfcache entry instead of marking the document as ineligible, the browser allows pages with active WebSockets to be stored and restored. Tracking bug #467838624 | ChromeStatus.com entry | Spec
New origin trials
Gamepad event-driven input API
Extends the Gamepad API with a new event-driven model that lets applications receive gamepad input with lower latency. Instead of relying on frequent polling using navigator.getGamepads(), developers can now listen for a rawgamepadinputchange event, which fires whenever new input data is available from the device. Origin Trial | Tracking bug #40582297 | ChromeStatus.com entry | Spec
Permissions Policy: focus-without-user-activation
Lets embedders control programmatic focus from embedded content with the focus-without-user-activation permissions policy. When the policy is denied for a frame, programmatic focus calls (element.focus(), autofocus, window.focus(), dialog.showModal(), and popover focusing) are blocked unless triggered by user activation. Origin Trial | Tracking bug #40095111 | ChromeStatus.com entry | Spec
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, which lets methods be installed on a WebAssembly object's prototype chain and called directly from JavaScript using normal method call syntax. Origin Trial | Tracking bug #403372470 | ChromeStatus.com entry | Spec