chrome 145 · released
chrome 145 platform demos
39 features tracked for Chrome 145. 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 (39)
Shipped (30)
-
Add presentationTime/paintTime to performance entries
Expose "paintTime" and "presentationTime" in element timing, LCP, long animation frames, and paint timing. "paintTime" means the time when the rendering phase ended and the browser started the paint phase. "presentation...
-
CSS letter-spacing and word-spacing: percentage values
Enables percentage values for the letter-spacing and word-spacing CSS property, as defined in the CSS Text Module Level 4 spec. Percentage values are calculated relative to the advance measure of the space character (U+0...
-
Clipboardchange event - Sticky activation / Permission check
Require sticky user activation or clipboard-read permission to fire `clipboardchange` events, preventing unauthorized clipboard monitoring. This is as per the spec defined here - https://www.w3.org/TR/clipboard-apis/#cl...
-
Column wrapping for multicol
Add support for the `column-wrap` and `column-height` CSS properties, from multicol Level 2. https://drafts.csswg.org/css-multicol-2/#cwr https://drafts.csswg.org/css-multicol-2/#ch This allows for vertical colum...
-
Cookie Store API `maxAge` attribute
Allows callers to specify a `maxAge` when setting a cookie with the Cookie Store API. Cookie expiry time is already configurable using the `expires` attribute, but `maxAge` provides a more idiomatic option and aligns th...
-
Crash Reporting key-value API
A new key-value API, tentatively `window.crashReport`, backed by a per-Document map holding data that gets appended to crash reports. See https://github.com/WICG/crash-reporting/issues/15 for initial discussion. The dat...
-
Customizable select listbox
This feature extends customizable select support to the listbox rendering mode, including single-select and multi-select in listbox mode. The listbox rendering mode means that the select element is rendered in-flow or i...
-
Device Bound Session Credentials
To enhance user security and combat session cookie theft, Chrome is introducing [Device Bound Session Credentials (DBSC)](https://developer.chrome.com/docs/web-platform/device-bound-session-credentials). This feature all...
-
Enable monochrome emoji rendering in forced colors mode.
This change updates Chromium’s emoji rendering behavior in Forced Colors Mode. During computed-value resolution, emoji whose font-variant-emoji value computes to normal or unicode are rendered using their monochrome glyp...
-
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...
-
Expose 'onanimationcancel' event to GlobalEventHandlers
The CSS Animations Level 1 extends [1] the GlobalEventsHandler Interface defined in the HTML spec [2], declaring 4 new event handlers: onanimationstart, onanimationiteration, onanimationend and onanimationcancel. Only t...
-
Expose rtpTimestamp from WebRTC video frames via VideoFrame.metadata()
Adds a VideoFrame.metadata() method that returns a dictionary containing the rtpTimestamp field, if the underlying VideoFrame has this field in its native metadata. An empty dictionary is returned otherwise. Only video f...
-
Focus's focusVisible option
When calling the `focus()` method, developers can supply a `focusVisible` boolean in the FocusOptions dictionary. When true, a focus ring will always be painted around the newly-focused element and it will match the `:fo...
-
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...
-
InputEvent types for deletion commands on non-collapsed selections
Reports accurate inputType values for deletion keyboard shortcuts on selected text. When deletion commands like Ctrl+Backspace or Ctrl+Delete are used with selected text in contenteditable elements, the beforeinput and i...
-
Local Network Access split permissions
This is an enhancement to the Local Network Access(LNA) restrictions, where we split the permission required from one Local Network Access permission, into 2 separate permissions. Old permission: local-network-access ...
-
Navigation API: expose destination in navigation.transition
Currently NavigationTransition has a "from" property, exposing the old URL of the navigation. Exposing "to" (a NavigationDestination) completes this. It is especially useful when using precommit handlers, as during preco...
-
Overscroll effect on non-root scrollers
Shows elastic overscroll effects on non-root scroll containers. When a nested scrollable element reaches its scroll boundary, the overscroll affordance applies to that element instead of only the root scroller. This redu...
-
Reduced User-Agent strings by default
Starting in Chrome 145, we will remove the **UserAgentReduction** policy. This policy was previously available to control whether Chrome sent a reduced or full User-Agent string. To enhance user privacy and reduce pas...
-
Refine border-radius shadow edge computation for high border-radius
This improvement ensures that shadows and clip boundaries on near-circular elements (where border-radius is close to 50%) precisely match the visual contour of the curved edge. This produces a more consistent rendering ...
-
Secure Payment Confirmation: Browser Bound Keys
Adds an additional cryptographic signature over Secure Payment Confirmation assertions and credential creation. The corresponding private key is not synced across devices. This helps web developers meet requirements for ...
-
Secure Payment Confirmation: UX Refresh
Updates the UX elements for the SPC dialog on Android Chrome. Other than just UX presentation the following are being added: - Allowing merchants to provide an optional list of payment entity logos related to the paymen...
-
Show true window position on Android
Chrome on Android accurately reports the browser window's position and size using window.screenX, window.screenY, window.outerWidth, and window.outerHeight. Previously Chrome incorrectly assumed all browser windows on A...
-
TCP Socket Pool Limit Randomization
By exploiting limits in the connection pool size on Chrome, knowledge can be gained about cross-site state which would otherwise be inaccessible. Specifically, it’s possible (with some statistical certainty) to evaluate ...
-
Trusted Types spec alignment
Trusted Types (https://developer.mozilla.org/en-US/docs/Web/API/Trusted_Types_API) was originally implemented and launched in Chromium in 2019, and has since found use in numerous websites. It has recently gained interes...
-
Upsert
ECMAScript proposal for Map.prototype.getOrInsert, Map.prototype.getOrInsertComputed, WeakMap.prototype.getOrInsert, and WeakMap.prototype.getOrInsertComputed.
-
Use of CssPixels in LayoutShift API
This feature changes the attribution data (`prevRect` and `currentRect`) in the [LayoutShift API](https://wicg.github.io/layout-instability/) to be reported in CSS pixels instead of physical pixels. The current behavior ...
-
WebGPU: `subgroup_uniformity` feature
Functionality added to the WebGPU spec after its first shipment in a browser. Adds a new scope to the uniformity analysis and changes which parts of the language are checked in each to allow subgroup functionality to be...
-
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...
-
`text-justify` CSS property
Support of `text-justify` CSS property Web authors can control how text is justified when `text-align: justify` is applied by using the `text-justify` property. For example, they can force justification by expanding in...
Deprecated (2)
-
Chrome removes support for obsolete virtual cameras on macOS
As early as Chrome 145, Chrome will remove support for obsolete virtual cameras for all macOS releases that it supports. On macOS, modern virtual cameras are built using the [Core Media IO](https://developer.apple.com/d...
-
Remove BMP Extension for Embedding JPEG-or-PNG-in-BMP
Chrome will remove BMP extension for embedding JPEG-or-PNG-in-BMP for the following reasons: Security ======== We have compelling evidence that surprising and rarely-used support for nesting formats is a path to securi...
Stepped rollout (2)
-
Device Bound Session Credentials
To enhance user security and combat session cookie theft, Chrome is introducing [Device Bound Session Credentials (DBSC)](https://developer.chrome.com/docs/web-platform/device-bound-session-credentials). This feature all...
-
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 ...
Origin Trial (1)
-
WebAudio: Configurable render quantum
Adds an optional renderSizeHint to AudioContext and OfflineAudioContext. This allows developers to customize the WebAudio render quantum size by passing a specific integer, use the default of 128 frames by omitting the h...
Dev Trial (4)
-
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...
-
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...
-
Light dismiss improvements for popovers and dialogs
Improves and simplifies the light dismiss behavior for popovers and dialogs to fix a few bugs. "Light dismiss" is the behavior where clicking outside of a popover or dialog closes it. The fixed bugs include making scroll...
-
WebAudio: Configurable render quantum
Adds an optional renderSizeHint to AudioContext and OfflineAudioContext. This allows developers to customize the WebAudio render quantum size by passing a specific integer, use the default of 128 frames by omitting the h...