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.
features (33)
Shipped (22)
-
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...
-
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".
-
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...
-
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...
-
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...
-
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...
-
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...
-
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-...
-
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...
-
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...
-
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...
-
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...
-
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...
-
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...
-
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...
-
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...
-
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...
-
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...
-
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...
-
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...
-
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...
-
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...
Deprecated (2)
-
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...
-
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 ...
Dev Trial (9)
-
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...
-
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.
-
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...
-
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 ...
-
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...
-
HTML-in-canvas
HTML-in-canvas enables customizing the rendering of html using canvas with three new primitives: an attribute to opt-in canvas elements (layoutsubtree), methods to draw child elements (2d: drawElementImage, webgl: texEle...
-
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 ...
-
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...
-
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...