chrome 144 · released

chrome 144 platform demos

43 features tracked for Chrome 144. 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 (43)

Shipped (27)

  1. @scroll-state scrolled support

    Allows authors to style descendants of containers based on the most recent scrolling direction. Example: .scrolling-up { translate: 80px 0; transition: 0.4s translate; } html { container-type: scroll-state; ...

  2. CSS anchor positioning with transforms

    When an anchor-positioned element is tethered against an anchor that has a transform (or is contained by something with a transform), resolve anchor() and anchor-size() functions against the bounding box of the transform...

  3. CSS caret-shape property

    The shape of the caret in native applications is most commonly a vertical bar, an underscore or a rectangular block. In addition, the shape often varies depending on the input mode, such as insert or replace. The CSS car...

  4. CSS color space display-p3-linear

    Add display-p3-linear CSS color space

  5. CSS find-in-page highlight pseudos

    This feature exposes **find-in-page** search result styling to authors as a highlight pseudo-element, like selection and spelling errors. This allows authors to change the foreground and background colors or add text dec...

  6. Clipboardchange event

    The "clipboardchange" event fires whenever the system clipboard contents are changed either by a web app or any other system application. This allows web-apps like remote desktop clients to keep their clipboards synchron...

  7. Don't use aria-details for anchor positioning

    See the discussion in this issue for more context: - https://github.com/w3c/html-aam/issues/545 The code to create aria-details relationships for non-popover use cases of anchor positioning was likely a mistake. Since ...

  8. Interoperable Pointer and Mouse boundary events after DOM changes

    After an event target gets removed from the DOM, the logical target of the pointer as implied by the Pointer and Mouse boundary events (i.e. over, out, enter and leave events) should be the nearest ancestor still attache...

  9. Mirroring of RTL MathML operators

    Support for character-level and glyph-level mirroring when rendering MathML operators in right-to-left mode. When using RTL mode some operators can be mirrored by changing them to another code point (e.g. a right pare...

  10. Multicast support for Direct Sockets API

    This feature allows [Isolated Web Apps](https://chromeos.dev/en/web/isolated-web-apps) (IWAs) to subscribe to multicast groups and receive User Datagram Protocol (UDP) packets from there. IWAs can now also specify additi...

  11. Non-Tree-Scoped container-name Matching

    Ignore tree-scope when matching container-name for @container queries. Previously, container-name matching for container queries used tree-scoped names/references for matching, which meant the same name would not match ...

  12. Performance + Event Timing: InteractionCount

    The Event Timing API is part of the Performance Timeline and is used to measure the performance of user interactions. Certain Events will have an interactionId value assigned to them, and this is useful for grouping rel...

  13. Pointer Lock on Android

    Provides access to raw mouse movement by locking the target of mouse events to a single element and hiding the mouse cursor.

  14. RTCDegradationPreference enum value "maintain-framerate-and-resolution"

    "maintain-framerate-and-resolution" disables WebRTC's internal video adaptation. This enables the application to implement its own adaptation logic and prevents interference from the internal adaptation. From https://...

  15. Respect overscroll-behavior for keyboard scrolls

    When you set `overscroll-behavior` to a value other than `auto`, the browser should not perform scroll chaining. We respect this for mouse or touch scrolling, however keyboard scrolls were ignoring it. This change makes ...

  16. Respect overscroll-behavior on non-scrollable scroll containers

    The overscroll-behavior applies to all scroll container elements, regardless of whether those elements currently have overflowing content or are user scrollable. Developers can use overscroll-behavior to prevent scroll p...

  17. SVG2 CSS Cascading

    Align the Blink implementation with the SVG2 specification for matching CSS rules in <use> element trees. Match selectors against the <use> instantiation elements instead of the originating element subtree. This means s...

  18. Support ping, hreflang, type and referrerPolicy for SVGAElement

    Adds support for ping, hreflang, type, and referrerPolicy attributes on SVGAElement, aligning its behavior with HTMLAnchorElement for consistent link handling across HTML and SVG.

  19. Temporal in ECMA262

    Temporal API https://github.com/tc39/proposal-temporal in ECMA262 is a new API that provides standard objects and functions for working with dates and times. Date has been a long-standing pain point in ECMAScript. This ...

  20. The <geolocation> element

    Introduces the <geolocation> element, a declarative, user-activated control for accessing the user's location. It streamlines the user and developer journey by not only handling the permission flow but also directly prov...

  21. User-Agent Client Hints "ch-ua-high-entropy-values" permissions policy

    Adds support for a 'ch-ua-high-entropy-values' permissions policy that enables a top-level site to restrict which documents are able to collect high-entropy client hints via the navigator.userAgentData.getHighEntropyValu...

  22. ViewTransitions waitUntil() method

    The ViewTransition automatically constructs a pseudo-element tree to display and animate participating elements in the transition. Per spec, this subtree is constructed when the view transition starts animating and is de...

  23. Web App Manifest: specify update eligibility, icon urls are Cache-Control: immutable

    Specify an update eligibility algorithm in the manifest spec. This makes the update process more deterministic and predictable, giving the dev more control over whether (and when) updates should apply to existing install...

  24. WebGPU: Uniform buffer standard layout

    Functionality added to the WebGPU spec after its first shipment in a browser. Uniform buffers declared in WGSL shaders are no longer required to have 16-byte alignment on array elements, or to pad nested structure offse...

  25. WebGPU: `subgroup_id` feature

    Functionality added to the WebGPU spec after its first shipment in a browser. The `subgroup_id` and `num_subgroups` built-in values are now available when the subgroups extension is enabled.

  26. XRVisibilityMaskChange

    Adds an XRVisibilityMaskChange event that will provide a list of vertices and a list of indices to represent the mesh of the visible portion of the user's viewport. This data can then be used to confidently limit the amo...

  27. side-relative syntax for background-position-x/y longhands

    Defines the background image's position relative to one of its edges. This syntax gives web authors a more flexible and responsive mechanisms to define the background image position, instead of using fixed values that ...

Deprecated (2)

  1. Deprecate savedTabGroups as individual value in SyncTypesListDisabled

    To align desktop and ChromeOS behavior with mobile and to simplify sync management, the individual `savedTabGroups` datatype is now deprecated and is no longer an individually customizable value within the [SyncTypesList...

  2. Externally loaded entities in XML parsing

    Chrome synchronously fetches external XML entities/DTDs and incorporates them into parsing under specific circumstances. I propose to remove this functionality. http/tests/security/contentTypeOptions/xml-external-entity...

Stepped rollout (4)

  1. Deprecate and Remove: Related Website Sets (RWS)

    Related Website Sets (RWS), formerly known as First Party Sets, provides a framework for developers to declare relationships among sites, to enable limited cross-site cookie access for specific, user-facing purposes. Thi...

    Stepped rollout ChromeStatus ↗ demo →
  2. Deprecate and Remove: document.requestStorageAccessFor

    The requestStorageAccessFor (rSAFor) API is an extension to the Storage Access API that allows a top-level site to request access to unpartitioned ("first-party") cookies on behalf of embedded sites. Browsers will have d...

    Stepped rollout ChromeStatus ↗ demo →
  3. Deprecate savedTabGroups as individual value in SyncTypesListDisabled

    To align desktop and ChromeOS behavior with mobile and to simplify sync management, the individual `savedTabGroups` datatype is now deprecated and is no longer an individually customizable value within the [SyncTypesList...

    Stepped rollout ChromeStatus ↗ demo →
  4. Predictable reported storage quota

    Chrome 138 will introduce a predictable storage quota from StorageManager's estimate API for sites that do not have unlimited storage permissions. It is possible to detect a user's browsing mode via the reported storage...

    Stepped rollout ChromeStatus ↗ demo →

Origin Trial (3)

  1. Capability Elements <usermedia> MVP

    Usermedia Capability Element, is a declarative, user-activated control for accessing the starting and interacting with media streams. This addresses the long-standing problem of permission prompts being triggered direct...

    Origin Trial ChromeStatus ↗ demo →
  2. Enhanced Canvas TextMetrics

    Expand the TextMetrics Canvas API to support selection rectangles, bounding box queries, and glyph cluster-based operations. This new functionality should enable complex text editing applications with accurate selection...

    Origin Trial ChromeStatus ↗ demo →
  3. Speculation Rules: prerender-until-script Action

    This extends speculation rules to introduce a new action called prerender_until_script. It is designed as an intermediate option between the existing prefetch (which only fetches the main document) and prerender (which...

    Origin Trial ChromeStatus ↗ demo →

Dev Trial (7)

  1. Capability Elements <usermedia> MVP

    Usermedia Capability Element, is a declarative, user-activated control for accessing the starting and interacting with media streams. This addresses the long-standing problem of permission prompts being triggered direct...

  2. Don't use aria-details for anchor positioning

    See the discussion in this issue for more context: - https://github.com/w3c/html-aam/issues/545 The code to create aria-details relationships for non-popover use cases of anchor positioning was likely a mistake. Since ...

  3. IndexedDB: SQLite backend (in-memory contexts)

    Chromium's IndexedDB implementation is rewritten on top of SQLite, to replace the previous implementation that uses a hybrid of LevelDB and flat files. There is no change to the Web API. This is expected to improve reli...

  4. Local network access restrictions for WebTransport

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

  5. Scroll Triggered Animations

    This feature adds scroll-position-based control of animations, e.g. playing, pausing, and resetting an animation. A common pattern on pages across the web is to kick off an animation when a scroll position is reached. D...

  6. Speculation Rules: prerender-until-script Action

    This extends speculation rules to introduce a new action called prerender_until_script. It is designed as an intermediate option between the existing prefetch (which only fetches the main document) and prerender (which...

  7. WebRequest.SecurityInfo in Controlled Frame

    This feature introduces a WebRequest.SecurityInfo API for [ControlledFrame](https://developer.chrome.com/docs/iwa/controlled-frame). It allows a web app to intercept an HTTPS, WSS, or WebTransport request to a server, re...