chrome 146 · released

chrome 146 platform demos

29 features tracked for Chrome 146. 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 (29)

Shipped (19)

  1. 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...

  2. Data URL MIME Type Parameter Preservation

    Preserve MIME type parameters (e.g., charset, boundary) in data URL Content-Type headers per the Fetch Standard. CL: https://chromium-review.googlesource.com/c/chromium/src/+/7135039

  3. Iterator Sequencing

    A TC39 proposal to create iterators by sequencing existing iterators. Introduces Iterator.concat ( ...items ).

  4. LCP: Match specced behavior for emitting candidates

    Changes the LCP algorithm to emit candidates based on the largest painted image instead of the largest pending-but-not-yet-painted image. This might cause more intermediate candidates to be emitted to the performance tim...

  5. Navigation API: add post-commit handler from precommit

    Currently when intercepting navigations with the `navigate` event, precommitHandlers and post-commit ordinary handlers are passed separately. This works well when there is only one or the other, but can be a bit clunky ...

  6. Playback Statistics API for WebAudio

    This feature adds an AudioContext.playbackStats attribute which returns an AudioPlaybackStats object. This object provides audio playback statistics such as average latency, minimum/maximum latency, underrun duration, an...

  7. Populate targetURL during file handling

    Update the Launch Handler implementation to ensure LaunchParams.targetURL is populated when a PWA is launched via File Handling. Previously, this property was null when a file launch was directed to an existing window. T...

  8. Preserving dropEffect Values from dragover to drop Events

    The HTML5 Drag and Drop API allows web applications to handle drag-and-drop operations through a series of events: `dragstart`, `dragenter`, `dragover`, `dragleave`, `drop`, and `dragend`. During these events, the [`data...

  9. Sanitizer API

    The Sanitizer API offers an easy to use and safe by default HTML Sanitizer API, which developers can use to remove content that may execute script from arbitrary, user-supplied HTML content. The goal is to make it easier...

  10. Scoped Custom Element Registry

    This feature allows for multiple custom element definitions for a single tag name to exist within a page to prevent custom element name conflicts when a web app uses libraries from multiple sources. This is achieved by a...

  11. 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...

  12. Selective Permissions Intervention

    When a user grants a website permission to access a powerful API (specifically Bluetooth, Camera, Clipboard, DisplayCapture, Geolocation, Microphone, Serial, and USB), their consent is intended for the site, not necessa...

  13. Stop re-queueing LaunchParams on reload

    Prevent the launchQueue from re-sending the last LaunchParams (including file handles) when a user reloads the page. Currently, a page refresh triggers the launch consumer again with the data from the original launch. Th...

  14. Support the `hanging` and `each-line` for the `text-indent` property

    The two optional keywords for the `text-indent` property extends the capability and the usability of the property. The `hanging` keyword changes indentation to "hanging", that is, all lines except the first line will be...

  15. WebGPU Compatibility mode

    Adds an opt-in, lightly restricted subset of the WebGPU API capable of running older graphics APIs such as OpenGL and Direct3D11. By opting into this mode and obeying its constraints, developers can extend the reach of t...

  16. WebGPU: Texture and Sampler Lets

    Add a language feature to WGSL, `texture_and_sampler_let` that adds the ability to store texture and sampler objects into a let declaration in WGSL.

  17. WebGPU: Transient attachments

    Functionality added to the WebGPU spec after its first shipment in a browser. A new TRANSIENT_ATTACHMENT GPUTextureUsage lets developers create attachments that allow render pass operations to stay in tile memory, avoid...

  18. meta name="text-scale"

    Makes the root element's default font size scale in proportion to both the operating system's and browser's text scale setting. This allows pages that follow best practices around font-relative units (i.e. use rem and em...

  19. trigger-scope

    trigger-scope gives authors the ability to limit the names of animation triggers declared by trigger-instantiating properties. Trigger-Instantiating properties, such as timeline-trigger, declare names which can be refer...

Stepped rollout (1)

  1. 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 ...

    Stepped rollout ChromeStatus ↗ demo →

Origin Trial (3)

  1. CPU Performance API

    Starting in Chrome 152, Chrome introduces the CPU Performance API, which allows web applications to determine the CPU performance of a user's device. This API targets web applications that will use this information to pr...

    Origin Trial ChromeStatus ↗ demo →
  2. Focusgroup

    Gives authors the ability to declaratively give composite widgets arrow key navigation, a guaranteed tab stop, and last-focused memory, replacing hand-coded roving tabindex scripts. Example: <div focusgroup="toolbar wrap...

    Origin Trial ChromeStatus ↗ demo →
  3. Speculation rules: form_submission field

    This extends speculation rules syntax to allow developers to specify the form_submission field for prerender. This field directs the browser to prepare the prerender as a form submission, so that it can be activated by ...

    Origin Trial ChromeStatus ↗ demo →

Dev Trial (6)

  1. Focusgroup

    Gives authors the ability to declaratively give composite widgets arrow key navigation, a guaranteed tab stop, and last-focused memory, replacing hand-coded roving tabindex scripts. Example: <div focusgroup="toolbar wrap...

  2. Speculation rules: form_submission field

    This extends speculation rules syntax to allow developers to specify the form_submission field for prerender. This field directs the browser to prepare the prerender as a form submission, so that it can be activated by ...

  3. Stop re-queueing LaunchParams on reload

    Prevent the launchQueue from re-sending the last LaunchParams (including file handles) when a user reloads the page. Currently, a page refresh triggers the launch consumer again with the data from the original launch. Th...

  4. Unframed display mode for IWAs

    Unframed display mode allows Isolated Web Apps [IWAs](https://chromeos.dev/en/web/isolated-web-apps) to occupy the entire browser window, which optimizes the workspace available. By removing standard window borders and t...

  5. WebMCP

    WebMCP is a proposal for a web API that enables web pages to provide agent-specific paths in their UI. With WebMCP, agent-service interaction takes place via app-controlled UI, providing a shared context available to app...

  6. named-feature() function for CSS @supports

    The named-feature() function allows CSS @supports rules to query for a small set of specific named features that are not possible to test for using other @supports mechanisms but which are considered highly valuable to t...