Published: September 2, 2026
Unless otherwise noted, the following changes apply to the newest Chrome beta channel release for Android, ChromeOS, Linux, macOS, and Windows. Learn more about these features by using the provided links or by visiting ChromeStatus.com. Chrome 154 is in beta as of September 2, 2026. You can download the latest beta version from Google.com for desktop or from Google Play Store on Android.
CSS and UI
CSS scroll-marker-group modes
The scroll-marker-group property is enhanced to support the following modes:
links: The generated::scroll-marker-groupoperates inlinksmode, functioning like a navigation list. This is the default mode if omitted.tabs: The generated::scroll-marker-groupoperates intabsmode, functioning like a tablist.
Each mode changes the focus order and accessibility behavior of
::scroll-marker-group and ::scroll-marker, following WAI-ARIA patterns:
- Links mode (default): Mimics standard navigation landmarks combined with
fragment anchors. The
::scroll-marker-grouptakes on thenavigationrole, and::scroll-markerelements take on thelinkrole. All::scroll-markerelements are sequential tab stops. When a link marker is activated, focus moves to the target element. - Tabs mode: Replicates the tabs pattern and serves as the foundation for
tabbed carousels. The
::scroll-marker-groupis assigned thetablistrole,::scroll-markerelements act astabroles, and originating elements get thetabpanelrole. Only the active::scroll-markeracts as a tab stop, using arrow keys to navigate between markers. Content from inactive tabs is hidden from the accessibility tree.
CSS text-decoration-inset
The text-decoration-inset CSS property controls how far underlines, overlines,
and line-through decorations are inset from or extended beyond text run edges. It
supports auto, length, and percentage values, including one-value and two-value
syntax for setting start and end offsets. This lets developers adjust decoration
spacing and create reveal effects with native text decorations instead of
background gradients or additional elements.
CSS text-decoration-skip-spaces
The text-decoration-skip-spaces CSS property controls whether text decoration
lines (such as underlines, overlines, and line-throughs) skip over whitespace
characters. This lets you prevent decorations from being drawn under spaces.
Expose CSSStyleValue hierarchy to Worker contexts
The CSS Typed OM specification exposes the CSSStyleValue hierarchy to worker
global scopes ([Exposed=(Window, Worker, PaintWorklet, LayoutWorklet)]), but
Blink previously only exposed CSSStyleValue, CSSKeywordValue,
CSSNumericValue, CSSUnitValue, and CSSUnparsedValue to Window and
worklets. As a result, these constructors were undefined in Worker contexts.
Chrome 154 exposes these constructors in workers, aligning with the specification
and other browser engines.
FontFace width attribute and font-width descriptor
Exposes the width attribute on FontFace and the @font-face font-width
descriptor as aliases for stretch and font-stretch. This aligns Chromium
with the updated CSS Font Loading and CSS Fonts 4 specifications. You can
inspect or initialize font face widths using FontFace.width and CSS font-width
interchangeably with stretch and font-stretch.
Light dismiss improvements for popovers and dialogs
Improves and simplifies the light dismiss behavior for popovers and dialogs. Light dismiss is the behavior where clicking outside of a popover or dialog closes it. These improvements ensure that scrolling gestures on touchscreens and right-clicks no longer trigger light dismiss.
The browser now uses click events to trigger light dismiss instead of a
combination of pointerdown and pointerup events.
Responsively-sized <iframe>
Lets sites opt into iframes with responsive sizing. This sizes the <iframe>
element in the parent document to the iframe document's layout overflow sizing,
avoiding scrolling in the child document.
JavaScript
Iterator includes
A TC39 proposal that adds an includes() method to iterators, letting you check
whether an iterator yields a given value, similar to Array.prototype.includes().
Web APIs
Add options bag to WebSocket constructor
Adds support for passing an options dictionary (WebSocketInit) as the second
argument to the WebSocket constructor. The options dictionary supports a
protocols option, letting you specify subprotocols (mirroring the existing
protocols argument), and serves as an extension point for future options.
Previously, this was written as:
const socket = new WebSocket("wss://example.com:8080", "soap");
With this change, it can also be written as:
const socket = new WebSocket("wss://example.com:8080", { protocols: "soap" });
Algorithm updates in WebCrypto
Adds post-quantum cryptography and a symmetric AEAD algorithm to the set of cryptographic algorithms available in the Web Cryptography API. This gives you access to browser-provided implementations of quantum-resistant cryptographic algorithms standardized by NIST:
- ML-KEM (768, 1024)
- ML-DSA (44, 65, 87)
- ChaCha20-Poly1305
- X-Wing
CORS enforcement for Background Fetch
The Background Fetch API now enforces Cross-Origin Resource Sharing (CORS).
This update aligns Chromium's implementation with the intent of the Background Fetch specification. This ensures that Background Fetch requests are subject to the same security policies, such as Local Network Access checks, preventing sites from bypassing CORS and other security policy checks by using Background Fetch instead of regular Fetch.
Fetch API: Forward reason from AbortController to fetch Response
Exposes the abort reason, if one is provided, to the methods of the Response
object and its ReadableStream, rather than only the fetch promise. This aligns
Chrome with the standard, surfacing the developer-supplied abort reason
everywhere intended.
Local Network Access restrictions for Background Fetch
Background Fetch requests require that the service worker's origin has the necessary Local Network Access (LNA) permission to send requests to local or loopback servers.
This aligns Chromium's implementation with the intent of the Background Fetch specification, which states that requests go through the Fetch specification and have the same security policies applied to them. This prevents sites from bypassing LNA checks by using Background Fetch instead of regular Fetch.
For enterprises, you can use existing LNA enterprise policies in the same way as for regular Fetch API requests from service workers:
LocalNetworkAccessRestrictionsTemporaryOptOutLocalNetworkAccessAllowedForUrlsLoopbackNetworkAllowedForUrlsLocalNetworkAccessPermissionsPolicyDefaultEnabledLocalNetworkAccessIpAddressSpaceOverrides
Renewed HTML insertion and streaming methods
Exposes multiple HTML setting methods that provide a coherent approach for dynamically inserting markup into an existing document:
- Positional methods (
before(),after(),append(),prepend(), andreplaceWith()) that take HTML as an argument, replacinginsertAdjacentHTML(). - Streaming methods (
streamAppendHTML(),streamAppendHTMLUnsafe(), and related methods) which return aWritableStream. - Passing
{runScripts}as part ofSetHTMLUnsafeOptions, matchingcreateContextualFragmentbehavior. - Supporting
createParserOptionsin Trusted Types, letting Trusted Types override the scripting mode and sanitizer.
Secure Payment Confirmation: Locale validation
Updates the Secure Payment Confirmation locale data field to return a
NotSupportedError DOMException if none of the language tags provided in the
field match the language used by the Secure Payment Confirmation dialog. If the
field is not set or is empty, this validation is skipped.
This helps match the language of the data supplied to Secure Payment Confirmation with the dialog.
Support targetAddressSpace option for WebSockets
Adds support for passing a targetAddressSpace option in the WebSocket
constructor. This lets you specify that a WebSocket connection to a public
hostname should be treated as going to a "local" or "loopback" destination,
matching existing support in the Fetch API. The main use case is to bypass
mixed content restrictions when connecting to local servers that don't support
HTTPS, because Local Network Access permissions require a secure context.
For example, a public site that connects to a local server can use a hostname instead of manual configuration of the exact private IP address:
const ws = new WebSocket("ws://local-server.example", { targetAddressSpace: "local" });
This flags the WebSocket connection as going to a local address, bypassing mixed content blocking when run in a secure context. The user must grant the site the local network permission for the WebSocket connection to succeed, and the hostname must resolve to a local IP address (otherwise it is blocked).
This feature builds on the options dictionary added to the WebSocket
constructor.
WebGPU: WGSL fragment depth
Adds the ability to provide a less or greater modifier to
@builtin(frag_depth) in WGSL.
Using @builtin(frag_depth) without modifiers can introduce a performance
penalty by disabling early-Z optimizations on a draw call. The new modifiers allow
explicit setting of the buffer mode, enabling early-Z optimizations to be applied.
Window Shape API
The Window Shape API lets allowlisted
Isolated Web Apps on ChromeOS
have a customized window shape. By enabling non-rectangular and non-contiguous
window layouts, developers can implement experiences such as widgets, floating
panels, and overlays that match the appearance of native applications. The
window.setShape() method requires the window to be in unframed display mode
and requires the window-management permission.
Administrators can manage this feature with existing policies for window management:
DefaultWindowManagementSettingconfigures the default state of window management for all apps.WindowManagementAllowedForUrlslets IWAs with specified origins enter unframed mode and set custom window shapes without user interaction.WindowManagementBlockedForUrlsblocks the permission for specified origins, forcing Chrome to remove any custom window shapes and fall back to other available display modes.
New origin trials
In Chrome 154, you can opt into the following new origin trials.
Private Verification Tokens
Private Verification Tokens (PVT) is a low-entropy mechanism that lets websites transfer the trust that users have established in regular browsing into private browsing mode, reducing user friction from CAPTCHAs and challenges. PVTs are issued during a regular browsing session and redeemed in private browsing mode.