Chrome 155 beta

Published: September 16, 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 155 is in beta as of September 16, 2026. You can download the latest beta version from Google.com for desktop or from Google Play Store on Android.

CSS and UI

CSS symbols()

The CSS symbols() function lets authors define a counter style inline instead of first declaring a named @counter-style at-rule. It builds an anonymous counter style from a list of string symbols plus an optional counting system (cyclic, numeric, alphabetic, symbolic, or fixed), and is accepted as the counter style in list-style-type, the list-style shorthand, counter(), and counters().

CSS corner shorthand properties

Implements the CSS corner shorthand and per-corner sub-shorthands (corner-top-left, corner-top-right, corner-bottom-left, corner-bottom-right) as well as physical (corner-top, corner-bottom) and logical (corner-block-start, corner-block-end, etc.) edge shorthands. These allow setting both border-radius and corner-shape for individual corners in a single declaration. Additionally, corners is retained as a compat alias for the corner shorthand.

This feature also includes caching controls. By default, each random() function resolves to a new, distinct value. Web authors can override this default by passing a <random-key> value as the function's first argument to control how random values are shared across properties and elements.

CSS text-decoration-skip-spaces

The text-decoration-skip-spaces CSS property controls whether text decoration lines (for example, underlines, overlines, and line-throughs) skip over whitespace characters. This allows authors to prevent decorations from being drawn under spaces, which is often more visually appealing.

CSS margin-trim

The margin-trim CSS property may be used to omit margins before or after the first or last child of a container. This is supported on regular block containers and multicol containers.

JavaScript

Avoid caching module failures

Currently web developers cannot retry failed module loads, as these failures are being cached (and retries just result in immediate failures). This change to the module loading behavior enables failed module loads to be manually retried (for example, by calling import() again), solving real developer (and user) pain when it comes to using modules over unstable networks.

Import Text (Text Modules)

A TC39 proposal to add module import … with { type: "text" } statements to JavaScript. The import attribute loads text data as a string value.

Web APIs

Additional windowing controls

Lets web applications with the window-management permission maximize(), minimize(), and restore() their windows, and prevent resizing through setResizable(). Additionally, new CSS media features display-state and resizable enable scripts and content to adapt to the respective window states and resizability. These features improve the usability of VDI remote application windows in Web clients, especially when it comes to titlebar window controls. The new functionality enhances existing Window Management API features.

Algorithm updates in WebCrypto

Add support for multiple post-quantum cryptographic algorithms standardized by NIST to the Web Cryptography API:

  • ML-KEM (768, 1024)
  • ML-DSA (44, 65, 87)
  • ChaCha20-Poly1305
  • X-Wing

Additional information can be found in the draft spec: https://wicg.github.io/webcrypto-modern-algos/

Digital Credentials API (issuance support)

This lets issuing websites (for example, a university, government agency, or bank) to securely initiate the provisioning (issuance) process of digital credentials directly into a user's mobile wallet application. On Android, this capability uses the Android IdentityCredential CredMan system (Credential Manager). On Desktop, it uses cross-device approaches using the CTAP protocol similar to Digital Credentials presentation.

Adds support for decoding JPEG XL (image/jxl) images in Blink using jxl-rs, a memory-safe pure Rust decoder. JPEG XL is a modern image format standardized as ISO/IEC 18181 that offers progressive decoding for improved perceived loading performance, support for wide color gamut, HDR, and high bit depth, and support for animation.

Pause media playback on not-visible iframes

Adds a media-playback-while-not-visible permission policy to let embedders control whether embedded iframes which are currently hidden. That includes iframes with the display property set to none, visibility property set to hidden, or zero-area (width or height equal to 0). While hidden, attempts made by the embedded iframe to render audible media will be blocked. When the frame is shown again the prohibitions should be lifted. This should allow developers to build more user-friendly experiences and to also improve the performance by letting the browser handle the playback of content that is not visible to users.

PredefinedColorSpace srgb-linear and display-p3-linear

Add srgb-linear and display-p3-linear color spaces (as defined by CSS) to PredefinedColorSpace for use with canvases.

Renewed HTML insertion and streaming methods

Expose multiple HTML setting methods that provide a coherent story for dynamically inserting markup into an existing document:

  • Positional methods (before(), after(), append(), prepend(), replaceWith()) that take HTML as argument, effectively replacing insertAdjacentHTML().
  • Streaming methods (streamAppendHTML(), streamAppendHTMLUnsafe(), etc.) which return a WritableStream.
  • Passing {runScripts} as part of SetHTMLUnsafeOptions, mimicking createContextualFragment behavior.
  • Supporting createParserOptions in trusted types, allowing trusted types to override scripting mode and sanitizer.

For more information see the Declarative Partial Updates documentation.

WebTransport headers and responseHeaders

Adds support for passing custom HTTP request headers using WebTransportOptions and inspecting server response headers through the WebTransport instance. This allows web applications to supply metadata, authentication tokens, and custom parameters during the initial CONNECT handshake and access server-provided headers once the connection is established.