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 <textarea> and <input>, 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 <table> 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 <path>, <circle>, <rect>, <line>, <polyline>,
<polygon>, and <ellipse>), 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.
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