chrome 148 · released

chrome 148 platform demos

38 features tracked for Chrome 148. 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 (38)

Shipped (20)

  1. CSS Name-only Container Queries

    A CSS query container can be queried based on its container-name only, and the container does not need any container-type set: <style> #container { container-name: --foo; } @container --foo { input { background-colo...

    Shipped ChromeStatus ↗ demo →
  2. Content type in Resource Timing

    Adds the contentType field to PerformanceResourceTiming to hold a string corresponding to the content type of the fetched resource as returned by the server.

    Shipped ChromeStatus ↗ demo →
  3. Correctly set "dropEffect" for "dragEnter", "dragLeave" and "dragOver" events

    The drag and drop specifications require the "dataTransfer"'s object "dropEffect" attribute to have certain predetermined values on "dragEnter", "dragOver" and "dragLeave". Drag enter and drag over should have a "dropEff...

    Shipped ChromeStatus ↗ demo →
  4. Extended lifetime shared workers

    This update adds a new option, `extendedLifetime: true`, to the `SharedWorker` constructor. This new option requests that the shared worker be kept alive even after all current clients have unloaded. This allows pages to...

    Shipped ChromeStatus ↗ demo →
  5. Get Secure Payment Confirmation Capabilities

    Adds a new static method to the Payment Request that allows web developers to get the capabilities of the browser's implementation of Secure Payment Confirmation. This helps web developers to easily know what capabiliti...

    Shipped ChromeStatus ↗ demo →
  6. IDNA ContextJ rules

    IDNA is the mechanism for non-ASCII characters in domain names, encoding a URL like http://네이버.한국/ as http://xn--950bt9s8xi.xn--3e0b707e/ (a redirect to naver.com). The processing is defined by https://www.unicode.org/r...

    Shipped ChromeStatus ↗ demo →
  7. Lazy loading for video and audio elements

    Adds the loading attribute to <video> and <audio> elements, allowing developers to defer media resource loading until the element is near the viewport using loading="lazy". This matches the existing lazy loading behavior...

    Shipped ChromeStatus ↗ demo →
  8. Manifest localization

    Supports localization of manifest members so apps can adapt their names, descriptions, icons, and shortcuts to the user’s language and region. Developers provide localized values in the web app manifest, and the browser ...

    Shipped ChromeStatus ↗ demo →
  9. Open Font Format avar2 text shaping and glyph rendering

    Version 2 of the avar (Axis Variations) table enables font designers to create variable fonts with better control over interpolation. While the original variable font spec handles axes independently, avar2 allows axes to...

    Shipped ChromeStatus ↗ demo →
  10. Pointer event suppression on drag start

    According to the HTML spec, when a drag starts the user agent should send the appropriate events to the drag source to indicate that the pointer event stream has ended, and that it shouldn't expect any more events from t...

    Shipped ChromeStatus ↗ demo →
  11. 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...

    Shipped ChromeStatus ↗ demo →
  12. Prompt API

    Prompt API gives web developers direct access to a browser-provided on-device AI language model. The API design offers fine-grained control, aligned with cloud API shapes, for progressively enhancing sites with model int...

    Shipped ChromeStatus ↗ demo →
  13. SharedWorker on Android

    For a long time, SharedWorker has been disabled on Android due to concerns about its unpredictable process lifecycle. We believed that SharedWorker instances might terminate unexpectedly, without noticing to users or web...

    Shipped ChromeStatus ↗ demo →
  14. The revert-rule keyword

    The revert-rule keyword rolls back the cascade to the previous rule, similar to how revert-layer rolls back the cascade to the previous layer. For example: ``` div { color: green; } div { color: revert-rule; /* Effe...

    Shipped ChromeStatus ↗ demo →
  15. Web Authentication Immediate UI mode

    A new mode for navigator.credentials.get() that causes browser sign-in UI to be displayed to the user if there is a passkey or password for the site that is immediately known to the browser, or else rejects the promise w...

    Shipped ChromeStatus ↗ demo →
  16. Web Serial API on Android

    The Web Serial API provides an interface for connecting to serial devices, either through a serial port on the user’s system or removable USB and Bluetooth devices that emulate a serial port. Now it is supported on Andro...

    Shipped ChromeStatus ↗ demo →
  17. WebGPU: `linear_indexing` feature

    Functionality added to the WebGPU spec after its first shipment in a browser. Adds two new compute shader built-in values for user quality of life. These are implemented for all backends (as polyfills of existing built-...

    Shipped ChromeStatus ↗ demo →
  18. WebRTC Datachannel: Always negotiate data channels

    Implements a WebRTC extension alwaysNegotiateDataChannels which defines a way for the application to negotiate data channels in the SDP offer before creating a datachannel. This also negotiates the data m= section before...

    Shipped ChromeStatus ↗ demo →
  19. at-rule: CSS Feature Detection

    This feature adds an `at-rule()` function to CSS `@supports` which enables authors to feature-detect support for CSS at-rules.

    Shipped ChromeStatus ↗ demo →
  20. text-decoration-skip-ink: all

    Add support for the `all` value for the CSS text-decoration-skip-ink property, as specified in https://drafts.csswg.org/css-text-decor-4/#text-decoration-skip-ink-property. The `text-decoration-skip-ink` property alread...

    Shipped ChromeStatus ↗ demo →

Origin Trial (9)

  1. Agentic Federated Login

    A set of FedCM extensions to help agentic browsers safely log users in to websites using their federated accounts.

    Origin Trial ChromeStatus ↗ demo →
  2. Connection Allowlists

    Connection Allowlists is a feature designed to provide explicit control over external endpoints by restricting connections initiated via the Fetch API or other web platform APIs from a document or worker. The proposed i...

    Origin Trial ChromeStatus ↗ demo →
  3. Container Timing

    The Container Timing API enables monitoring when annotated sections of the DOM are displayed on screen and have finished their initial paint. A developer will have the ability to mark subsections of the DOM with the cont...

    Origin Trial ChromeStatus ↗ demo →
  4. Declarative Shadow DOM 'shadowrootadoptedstylesheets'

    Allows for Declarative Shadow DOM (DSD) to specify adopted stylesheets at parse time. 'shadowrootadoptedstylesheets' supports a space-separated list of specifiers that each get fetched (exactly like a JavaScript import) ...

    Origin Trial ChromeStatus ↗ demo in v148 →
  5. HTML install element

    Chrome can now trigger a request for the browser to install a web app, given a manifest URL and optional manifest ID. The `<install>` element enables cross-origin web app installation without JavaScript and provides a be...

    Origin Trial ChromeStatus ↗ demo in v148 →
  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...

    Origin Trial ChromeStatus ↗ demo →
  7. Long Animation Frames style and layout duration

    Add `styleDuration` and `forcedStyleDuration` information to the Long Animation Frame API, enabling developers to distinguish style and layout times.

    Origin Trial ChromeStatus ↗ demo in v148 →
  8. OpaqueRange

    `OpaqueRange` represents a live span of text within a form control’s value, such as a `<textarea>` or text-based `<input>`, so developers can work with value text using range-like APIs. It enables operations such as `ge...

    Origin Trial ChromeStatus ↗ demo →
  9. Prompt API Sampling Mode

    Allows developers to configure language model output variety and creativity in the Prompt API using high-level samplingMode presets. Instead of exposing raw numerical parameters like topK and temperature that vary unpred...

    Origin Trial ChromeStatus ↗ demo in v148 →

Dev Trial (9)

  1. Agentic Federated Login

    A set of FedCM extensions to help agentic browsers safely log users in to websites using their federated accounts.

    Dev Trial ChromeStatus ↗ demo →
  2. Deprecate and remove: non-allowlisted Event interfaces from document.createEvent()

    Remove support for creating non-allowlisted event interfaces from document.createEvent(). After this change, these will throw NOT_SUPPORTED_ERR as required by the specification. (However, events with usage above 0.01% or...

    Dev Trial ChromeStatus ↗ demo →
  3. JS Self-Profiling Markers

    The JavaScript Self-Profiling API lets a web application sample its own call stacks to measure performance on real user devices. This feature adds an optional marker field to each captured sample that identifies the type...

    Dev Trial ChromeStatus ↗ demo in v153 →
  4. OpaqueRange

    `OpaqueRange` represents a live span of text within a form control’s value, such as a `<textarea>` or text-based `<input>`, so developers can work with value text using range-like APIs. It enables operations such as `ge...

    Dev Trial ChromeStatus ↗ demo →
  5. Out of order streaming

    Use <template for> and processing instruction ranges (<?marker>, <?start>, and <?end> to update existing parts of the document without JS.

    Dev Trial ChromeStatus ↗ demo →
  6. Remove explicit border color UA stylesheet rule for tables

    This change removes the erroneous `border-color: gray` CSS rule from the UA stylesheet for the `<table>` element. The spec does not contain this rule: https://html.spec.whatwg.org/multipage/rendering.html#tables-2 and...

    Dev Trial ChromeStatus ↗ demo →
  7. Renewed HTML insertion&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, e...

    Dev Trial ChromeStatus ↗ demo →
  8. Summarizer API performance preference

    The current Summarizer (https://chromestatus.com/feature/5193953788559360) relies on large on-device models, which can imply high latency, high resource usage, and limited device compatibility. We propose adding a prefer...

    Dev Trial ChromeStatus ↗ demo →
  9. User action pseudo class top layer boundary

    This feature represents the behavior described in this section of the CSS spec: https://www.w3.org/TR/selectors-4/#useraction-pseudos which says that :hover, :active, and :focus-within match on the parents of elements,...

    Dev Trial ChromeStatus ↗ demo →