chrome 136 · released

chrome 136 platform demos

37 features tracked for Chrome 136. 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 (37)

Shipped (24)

  1. AudioContext Interrupted State

    The current Web Audio API lacks a mechanism for the User Agent (UA) to interrupt playback for scenarios such as exclusive audio access (VoIP) or when a laptop lid is closed. To address this, we propose adding an "interru...

  2. CSS dynamic-range-limit property

    Enables a page to limit the maximum brightness of HDR content.

  3. Captured Surface Control

    A Web API that allows Web applications to: 1. Forward wheel events to a captured tab. 2. Read and change the zoom level of a captured tab.

  4. CapturedSurfaceResolution

    Expose pixel ratio of the captured surface while screensharing. This feature will help applications to conserve their system resources or adapt the quality/bandwidth trade-off according to the physical and logical resol...

  5. Dispatching click events to captured pointer

    If a pointer is captured while the `pointerup` event is being dispatched, the `click` event will be dispatched to the captured target instead of the nearest common ancestor of `pointerdown` and `pointerup` events as per ...

  6. Explicit Compile Hints with Magic Comments

    Allow attaching information about which functions should be eager parsed & compiled in JavaScript files. The information will be encoded as magic comments. We'll first target launching the file-based explicit compile h...

  7. FedCM multi IDP in single get() call and remove add accounts in passive mode

    Allows FedCM to show multiple identity providers in the same dialog. This provides developers with a convenient way to present all supported identity providers to users. We are planning to first tackle the simple case of...

  8. Fluent Scrollbars.

    This feature modernizes the Chromium scrollbars (both overlay and non-overlay) on Windows and Linux to fit the Windows 11 Fluent design language. Non-overlay Fluent scrollbars will be enabled by default in Linux and Win...

  9. H265 (HEVC) codec support in WebRTC

    This newer codec has increased compression efficiency (higher quality per bitrate) relative to older generation codecs like VP8 and H264 and very strong hardware support going back over a decade. This translates into inc...

  10. H26x Codec support updates for MediaRecorder

    Chromium's MediaRecorder API now supports HEVC encoding, introducing the hvc1.* codec string, and adds new codecs (hev1.* and avc3.*) supporting variable resolution video in MP4. Support for HEVC platform encoding was...

  11. Incorporating navigation initiator into the HTTP cache partition key

    Chrome’s HTTP cache keying scheme will be updated to include an “is-cross-site-main-frame-navigation” boolean to mitigate cross-site leak attacks involving top-level navigation. Specifically, this will prevent cross-site...

  12. Language support for CanvasTextDrawingStyles

    The <canvas> DOM element, like all DOM elements, accepts a `lang` attribute that is used to define language specific treatment for font selection (when fonts have locale specific glyphs). Browsers respect this attribute....

  13. Partitioning :visited links history

    To eliminate user browsing history leaks, anchor elements are styled as :visited only if they have been clicked from this top-level site and frame origin before. On the browser-side, this means that the VisitedLinks hash...

  14. Permissions Policy reports for iframes

    Introduces a new violation type called "Potential Permissions Policy violation", which will only look at Permissions Policy (including report-only policy) and the allow attribute set in iframes to detect the conflict bet...

  15. Protected audience: text conversion helpers

    Protected Audience bidding and scoring scripts that interface with WebAssembly need to efficiently convert string-typed data to (and from) byte arrays (e.g. to pass strings into and out of WebAssembly via the “memory” Ar...

  16. RegExp.escape

    RegExp.escape is a static method that takes a string and returns an escaped version that may be used as a pattern inside a regular expression. For example, copied from the proposal explainer: ``` const str = promp...

  17. Rename `string` attr() type to `raw-string`

    In https://github.com/w3c/csswg-drafts/issues/11645#issuecomment-2701601350 it was resolved to replace `string` attr() type with `raw-string`, see: https://drafts.csswg.org/css-values-5/#attr-notation. Change attr() ...

  18. Speculation rules: tag field

    This enables developers to add tag field to speculation rules. This optional field can be used to track the source of speculation rules, e.g. to treat them differently at an intermediary server. Any tags associated with ...

  19. Type-agnostic var() fallback

    The fallback part of a var() function does not validate against the type of the custom property being referenced.

  20. Unprefixed print-color-adjust

    The print-color-adjust allows adjusting colors in printed web pages. This is the same as Chromium's already-supported -webkit-print-color-adjust, but with a standardized name. The -webkit-prefixed version is not removed...

  21. Update ProgressEvent to use double type for 'loaded' and 'total'

    The ProgressEvent has attributes `loaded` and `total` indicating the progress, and their type is `unsigned long long` now. With this feature, the type for these two attributes is changed to `double` instead, which giv...

  22. Use DOMPointInit for getCharNumAtPosition, isPointInFill, isPointInStroke

    This change brings Chromium code in line with the latest W3C spec for SVGGeometryElement and SVGPathElement in terms of usage of DOMPointInit over SVGPoint for getCharNumAtPosition, isPointInFill, isPointInStroke. The c...

  23. Web Authentication Conditional Create (Automatic Passkey Upgrades)

    WebAuthn Conditional Create allows websites to automatically create passkeys for existing users that have a matching password saved in their password manager.

  24. WebGPU: GPUAdapterInfo isFallbackAdapter attribute

    Functionality added to the WebGPU spec after its first shipment in a browser. The GPUAdapterInfo isFallbackAdapter boolean attribute indicates if an adapter has significant performance limitations in return for wider...

Deprecated (1)

  1. Remove HTMLFencedFrameElement.canLoadOpaqueURL().

    canLoadOpaqueURL() was replaced with navigator.canLoadAdAuctionFencedFrame() in 2023, and calling it has resulted in a deprecation console warning ever since pointing developers to the new API. It does not make sense to ...

Origin Trial (2)

  1. Audio Output Devices API: setPreferredSinkId()

    Adds setPreferredSinkId() to MediaDevices, which enables a top-level frame to override the default audio output device for all audio renderers in the top-level frame and its child frames, including cross-origin child fr...

    Origin Trial ChromeStatus ↗ demo →
  2. Enabling Web Applications to understand bimodal performance timings

    Web applications may suffer from bimodal distribution in page load performance due to factors outside of the application’s control. For example, when a user agent first launches in a "cold start" scenario, it must perfor...

    Origin Trial ChromeStatus ↗ demo →

Dev Trial (10)

  1. 'request-close' Invoker Command

    Dialog elements can be closed through a variety of mechanisms, sometimes developers want to have the ability to prevent closure. To achieve this dialogs fire a cancel event. Originally this was only fired via a close req...

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

  3. Corner shaping (corner-shape, superellipse, squircle)

    Enable styling corners, on top of the existing border-radius, by expressing the shape/curvature of the corner as a superellipse. This allows shapes like squircles, notches, scoops etc., and animating between them.

  4. Deprecate special font size rules for H1 within some elements

    The HTML spec contains a list of [special rules for H1 tags](https://html.spec.whatwg.org/multipage/rendering.html#sections-and-headings) nested within `article`, `aside`, `nav`, or `section` tags. Chrome 140 deprecates ...

  5. FedCM: Alternative Fields in Account Selection

    Adds support for phone numbers and usernames, in addition to or instead of a user's full name and email address as identifiers for disambiguating accounts in the account selector. Also, makes these new fields available f...

  6. Structured Headings, the headingoffset & headingreset attributes, and the :heading pseudo class

    A system for creating structured headings within a document. The `headingoffset=` attribute can be added to elements that influences the child `h1`-`h6` elements' heading levels, for example a `headingoffset=1` will mea...

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

  8. WebGPU 'core-features-and-limits'

    The 'core-features-and-limits' feature signifies a WebGPU adapter and device support the core features and limits of the spec. Explainer: https://gist.github.com/greggman/0dea9995e33393c546a4c2bd2a12e50e

  9. WebGPU: GPUTextureView for externalTexture binding

    Functionality added to the WebGPU spec after its first shipment in a browser. A GPUTextureView is now allowed to be used for an externalTexture binding when creating a GPUBindGroup.

  10. WebGPU: copyBufferToBuffer overload

    Functionality added to the WebGPU spec after its first shipment in a browser. The GPUCommandEncoder copyBufferToBuffer() method now includes a simpler way to copy entire buffers using a new overload with optional off...