chrome 138 · released

chrome 138 platform demos

33 features tracked for Chrome 138. Click a feature's title to open its demo; each card also links to its ChromeStatus entry.

Per-feature demos below are built automatically, one feature per commit, and every distinct use case should become an interactive concept page.

Probing browser capabilities…

features (33)

Shipped (22)

  1. Pass 'Sec-Purpose: prefetch' header with <link rel=prefetch>

    Chrome currently passes both 'Purpose: prefetch' and 'Sec-Purpose: prefetch' headers as part of prefetch through speculation rules. However, only 'Purpose: prefetch' is passed with <link rel=prefetch>. We plan to stan...

    Shipped ChromeStatus ↗ demo →
  2. Add prefetchCache and prerenderCache to Clear-Site-Data header

    Two new values for the Clear-Site-Data header to help developers target clearing the prerender and prefetch cache: "prefetchCache" and "prerenderCache".

    Shipped ChromeStatus ↗ demo →
  3. Add support for video frame orientation metadata to WebCodecs

    Introduces "rotation: int" and "flip: bool" values to various video related interfaces in WebCodecs so that developers can work with frame sources that have orientation (E.g., Android cameras, certain media). The Vide...

    Shipped ChromeStatus ↗ demo →
  4. CSS 'stretch' sizing keyword

    A keyword for CSS sizing properties (e.g. 'width', 'height') that allows elements to grow to exactly fill their containing block's available space. It is similar to '100%', except the resulting size is applied to the ele...

    Shipped ChromeStatus ↗ demo →
  5. CSS Sign-Related Functions: abs(), sign()

    The sign-related functions ​abs() and sign() ​compute various functions related to the sign of their argument. The abs(A) function contains one calculation A, and returns the absolute value of A, as the same type as t...

    Shipped ChromeStatus ↗ demo →
  6. CSS env variable for OS-level font scale

    Exposes a user's preferred font scale to CSS. Currently, it is not practical for a page to detect if the user has changed their preferred font size via the Operating System's preferences. This CSS environment variable wi...

    Shipped ChromeStatus ↗ demo →
  7. CSS sibling-index() and sibling-count()

    sibling-index() and sibling-count() can be used as integers in CSS property values to style elements based on their position among its siblings, or the total number of siblings respectively. These functions can be used d...

    Shipped ChromeStatus ↗ demo →
  8. Crash Reporting API: is_top_level & visibility_state

    This feature adds `is_top_level` and `visibility_state` string fields to the crash reporting API body that gets sent to the default reporting endpoint for crash reports. See https://wicg.github.io/crash-reporting/#crash-...

    Shipped ChromeStatus ↗ demo →
  9. Escape "<" and ">" in attributes on serialization

    Escape "<" and ">" in values of attributes on serialization. This mitigates the risk of mutation XSS attacks, which occur when value of an attribute is interpreted as a start tag token after being serialized and re-pa...

    Shipped ChromeStatus ↗ demo →
  10. Ignore Letter Spacing in Cursive Scripts

    This feature adds logic to ignore the letter-spacing setting for cursive scripts as specified by the web author, in line with the spec, to ensure that letter spacing does not disrupt word structure and aims to produce be...

    Shipped ChromeStatus ↗ demo →
  11. Integrity Policy for scripts

    Subresource-Integrity (SRI) enables developers to make sure the assets they intend to load are indeed the assets they are loading. But there's no current way for developers to be sure that all of their scripts are valida...

    Shipped ChromeStatus ↗ demo →
  12. Interpolation progress functional notation: CSS progress() function

    The progress() functional notation returns a <number> value representing the position of one calculation (the progress value) between two other calculations (the progress start value and progress end value). progress() i...

    Shipped ChromeStatus ↗ demo →
  13. Language Detector API

    A JavaScript API for detecting the language of text, with confidence levels. An important supplement to translation is language detection. This can be combined with translation, e.g. taking user input in an unknown lang...

    Shipped ChromeStatus ↗ demo →
  14. Pushsubscriptionchange event upon resubscription

    Fire the pushsubscriptionchange event in service workers when an origin for which a push subscription existed in the past, but which was revoked because of a permission change (from granted to deny/default), is re-grante...

    Shipped ChromeStatus ↗ demo →
  15. ServiceWorker support for Speculation Rules Prefetch

    This feature enables ServiceWorker-controlled prefetches, that is a speculation rules prefetch to URLs controlled by a Service Worker. Previously, the prefetch is cancelled upon detecting a controlling Service Worker, th...

    Shipped ChromeStatus ↗ demo →
  16. Speculation rules: mobile "moderate" eagerness improvements

    On mobile, "moderate" eagerness speculation rules prefetches and prerenders now trigger when a link enters the viewport and passes other conditions that indicate that it's more likely to be clicked. The previous behav...

    Shipped ChromeStatus ↗ demo →
  17. Speculation rules: target_hint field

    This extends speculation rules syntax to allow developers to specify the target_hint field. This field provides a hint to indicate a target navigable where a prerendered page will eventually be activated. For example, w...

    Shipped ChromeStatus ↗ demo →
  18. Summarizer API

    Summarizer API is a JavaScript API for producing summaries of input text, backed by an AI language model. Browsers and operating systems are increasingly expected to gain access to a language model. By exposing this buil...

    Shipped ChromeStatus ↗ demo →
  19. Translator API

    A JavaScript API to provide language translation capabilities to web pages. Browsers are increasingly offering language translation to their users. Such translation capabilities can also be useful to web developers. This...

    Shipped ChromeStatus ↗ demo →
  20. Update QuotaExceededError to a DOMException derived interface

    Currently, when the web platform wants to tell you when you've exceeded quota, it will use `DOMException` with the specific `name` property set to `QuotaExceededError`. However this does not allow carrying additional inf...

    Shipped ChromeStatus ↗ demo →
  21. Viewport Segments Enumeration API

    The Viewport Segments API allows developers to adapt their website/webapp layout to target foldable devices. The viewport segments defines the position and dimensions of a logically separate region of the viewport. Viewp...

    Shipped ChromeStatus ↗ demo →
  22. Web serial over Bluetooth on Android

    This feature allows web pages and web apps to connect to serial ports over Bluetooth on Android devices. Chrome on Android now supports Web Serial API over Bluetooth RFCOMM. Existing enterprise policies (DefaultSerialGu...

    Shipped ChromeStatus ↗ demo →

Deprecated (2)

  1. Deprecate asynchronous range removal for Media Source Extensions

    The Media Source standard long ago changed to disallow ambiguously defined behavior involving asynchronous range removals: * SourceBuffer.abort() no longer aborts SourceBuffer.remove() operations * Setting MediaSource.du...

    Deprecated ChromeStatus ↗ demo →
  2. WebGPU: Deprecate GPUAdapter isFallbackAdapter attribute

    Deprecates the GPUAdapter isFallbackAdapter boolean attribute from WebGPU, which is redundant with the GPUAdapterInfo isFallbackAdapter boolean attribute. This upcoming removal is a minor breaking change as support for ...

    Deprecated ChromeStatus ↗ demo →

Dev Trial (9)

  1. CSS Anchored Fallback Container Queries

    Introduce @container anchored(fallback) to style descendants of anchor positioned elements based on which of position-try-fallbacks is applied. Such queries can be used to e.g. style an anchored element's tether, its an...

    Dev Trial ChromeStatus ↗ demo →
  2. CSS counter() and counters() in alt text of 'content' property

    counter() and counters() in alt text of 'content' property is useful to provide more meaningful information to e.g. pseudo-elements to improve their accessibility.

    Dev Trial ChromeStatus ↗ demo →
  3. CSS scroll-target-group property

    The scroll-target-group property specifies whether the element is a scroll marker group container. 'none': The element does not establish a scroll marker group container. 'auto': The element establishes a scroll mark...

    Dev Trial ChromeStatus ↗ demo →
  4. CSS typed arithmetic

    Typed arithmetic allows to write expressions in CSS such a calc(10em / 1px) or calc(20% / 0.5em * 1px) which is useful for e.g. typography, as it allows to convert typed value into an untyped one and reuse it for number ...

    Dev Trial ChromeStatus ↗ demo →
  5. Cache sharing for extremely-pervasive resources

    For a small number (hundreds) of hand-curated static third-party script, stylesheet and compression-dictionary resources that are used on a large portion of the web, Chrome will use a single-keyed HTTP cache to store tho...

    Dev Trial ChromeStatus ↗ demo →
  6. HTML-in-canvas

    HTML-in-canvas enables customizing the rendering of html using canvas with new primitives to manage canvas layout, drawing capabilities, rendering events for DOM-to-canvas synchronization, and geometry update capabilitie...

    Dev Trial ChromeStatus ↗ demo →
  7. Local network access restrictions

    Chrome 142 restricted the ability to make requests to the user's local network, gated behind a permission prompt. A local network request is any request from a public website to a local IP address or loopback, or from a ...

    Dev Trial ChromeStatus ↗ demo →
  8. ScrollIntoView container option

    The ScrollIntoViewOptions container option allows developers to perform a scrollIntoView only scrolling the nearest ancestor scroll container. For example, the following snippet only scrolls the scroll container of targe...

    Dev Trial ChromeStatus ↗ demo →
  9. Uint8Array to/from base64 and hex

    base64 is a common way to represent arbitrary binary data as ASCII. JavaScript has Uint8Arrays to work with binary data, but no built-in mechanism to encode that data as base64, nor to take base64'd data and produce a co...

    Dev Trial ChromeStatus ↗ demo →