Chrome version: 151, 150, 149, 148, 147, 146, 145, 144, 143, 142, 141, 140, 139, 138, 137, 136, 135, 134, 133, 132, 131, 130, 129, 128, 127, 126, 125, 124, 123, 122, 121, 120, 119, 118, 117, 116, 115, 114, 113, 112, 111, 110, 109, 108, 107, 106, 105, 104, 103, 102, 101, 100, 99, 98, 97, 96, 95, 94, 93, 92, 91, 90, 89, 88, 87, 86, 85, 84, 83, 82, 81, 80, 79, 78, 77, 76, 75, 74, 73, 72, 71, 70, 69, 68, 67, 66, 65, 64, 63, 62, 61, 60, 59, 58, 57, 56, 55, 54, 53, 52, 51, 50, 49, 48, 47, 46, 45, 44, 43, 42, 41, 40, 39, 38, 37, 36, 35, 34, 33, 32, 31, 30, 29, 28, 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0
This release of Chrome had 23 new features.
The `pagereveal` event is fired on a Document's window object at the first render opportunity after a Document is: initially loaded, restored from the back-forward cache, or activated from a prerender. It can be used by a page author to setup a page entry UX - such as a ViewTransition from a previous state. This feature is split out from the larger ViewTransition-on-Navigation project. #
This feature was specified in this Spec.
Docs: https://github.com/WICG/view-transitions/blob/main/cross-doc-explainer.md
No linked samplesThis feature allows web developers to create WebAuthn[0] credentials (that is, "publickey" credentials, aka passkeys) in cross-origin iframes. Two conditions are required for this new ability: 1. The iframe has a publickey-credentials-create-feature permission policy. 2. The iframe has transient user activation. This will allow developers to create passkeys in embedded scenarios, such as after an identity step-up flow where the Relying Party is providing a federated identity experience. [0]: https://w3c.github.io/webauthn/ #
This feature was specified in this Spec.
We plan on landing the following changes to the Attribution Reporting API focused on: * additional API configurability for event-level reporting by supporting customization for trigger data cardinality and values * additional API configurability for summary reports by supporting filters in aggregatable values
NotRestoredReason API reports the list of reasons why a page is not served from BFcache in a frame tree structure, via PerformanceNavigationTiming API. #
This feature was specified in this Spec.
Applies the kerning to CJK punctuation characters to produce the visually pleasing typography as defined by JLREQ (Requirements for Japanese Text Layout) and CLREQ (Requirements for Chinese Text Layout). Many CJK punctuation characters include glyph-internal spacing. For example, the CJK full stop and the CJK close parenthesis usually have glyph-internal spacings on the right half of their glyph spaces, to give them a constant advance as other ideographic characters. But when they appear in a row, the glyph-internal spacings become excessive. This feature adjusts such excessive spacing. This feature adjusts the glyph-internal spacing for three cases: 1) adjacent characters (pair kerning), 2) at the line start, and 3) at the line end. To avoid the risk of excessive kerning, fonts must have the OpenType `halt` or `chws` feature, or both. If the font doesn’t have either feature, the effect is disabled. This feature implements 4 values: `normal`, `trim-start`, `space-all`, and `space-first`. #
This feature was specified in this Spec.
Docs: https://docs.google.com/document/d/146Bupkg3nrNALL3bm8UElRd0vsLVH5807xubsnrthDw/edit?usp=sharing
Samples: https://output.jsbin.com/figixaq
Allows authors to provide separate colors for light and dark color-schemes on a per element basis. System colors and UA form controls are rendered with different colors depending on the color-scheme set on an element. Authors can have the same possibility through the light-dark() function: #target { background-color: light-dark(lime, green); } The #target element will have a green background if the used color-scheme for the element is 'dark'. Otherwise, the background will be lime. #
This feature was specified in this Spec.
Adds support for the existing CSS property `paint-order`. This change only affects html (non-SVG) text; SVG text already supports paint-order via attribute or CSS property. #
Adds support to the CSS display-mode media feature for picture-in-picture. This allows web developers to write specific CSS rules that are only applied when (part of the) the web app is shown in picture-in-picture mode. #
This feature was specified in this Spec.
Docs: https://github.com/w3c/csswg-drafts/issues/9260
Samples: https://document-picture-in-picture-api.glitch.me/display-mode.html
Extends the Attribution Reporting API to allow attributing conversions that happen on the web to events that happen off the browser, within other applications. The proposal here takes advantage of OS-level support for attribution. In particular, it gives the developer an option to allow events on the mobile web to be joinable with events in Android’s Privacy Sandbox, although support for other platforms could also be implemented.
This feature was specified in this Spec.
This enables `opener.focus()` from a document picture-in-picture window to bring system-level focus to the tab that owns the document picture-in-picture window. This allows developers to bring the original tab back to the foreground when necessary, e.g. when the user needs to access a more full UI/experience that doesn't fit in the smaller picture-in-picture window.
This feature was specified in this Spec.
Samples: https://steimelchrome.github.io/backtotab.html
Import attributes[^1] are a JavaScript feature to allow annotating import declarations, for example `import xxx from "mod" with { type: "json" }'. Chrome originally shipped a previous version of the proposal (in M91) using 'assert' as the keyword. This version has then been updated to use 'with' due to some changes needed while integrating it with HTML for JSON and CSS modules[^2]. [^1]: https://github.com/tc39/proposal-import-attributes/ [^2]: https://github.com/whatwg/html/issues/7233
This feature was specified in this Spec.
This is a extension of long tasks. It measures the task together with its subsequent rendering update, adding information such as long running scripts, rendering time, and time spent in forced layout and style ("layout thrashing"). Developers can use this as a diagnostic for "sluggishness", which is measured by INP, by finding the causes for main-thread congestion which is often the cause for bad INP. #
This feature was specified in this Spec.
navigation.activation stores state about when the current Document was activated (e.g., when it was initialized, or restored from the back/forward cache).
This feature was specified in this Spec.
Adds support for Private Aggregation’s debug mode for the per-buyer extended Private Aggregation reporting to Protected Audience sellers (aka auctionReportBuyers reporting). This is done with a new, optional auctionReportBuyerDebugModeConfig field passed to runAdAuction(). auctionReportBuyers reporting is currently the only use of Private Aggregation reports that does not have a way to enable its debug mode (a temporary mechanism tied to third-party cookie eligibility that relaxes some of the API’s privacy constraints to allow for easier debugging and integration). #
This feature was specified in this Spec.
This API allows developers to configure the routing, and allows them to offload simple things ServiceWorkers do. If the condition matches, the navigation happens without starting ServiceWorkers or executing JavaScript, which allows web pages to avoid performance penalties due to ServiceWorker interceptions. #
This feature was specified in this Spec.
Functionality added to the WebGPU/WGSL spec after its first shipment in a browser. Adds support new WGSL builtins to work with 4 8-bit numbers packed in a u32. The new dot product functionality is especially useful for executing machine learning models that work on 8-bit weights. #
This feature was specified in this Spec.
Functionality added to the WebGPU/WGSL spec after its first shipment in a browser. Provides better ergonomics for accessing member of a composite through a pointer. For example `(*ptr).i` can now be written `ptr.i`. #
This feature was specified in this Spec.
Functionality added to the WebGPU/WGSL spec after its first shipment in a browser. Loosens restrictions on which pointers can be passed to WGSL functions such that pointers to storage/uniform/workgroup address spaces are allowed. #
This feature was specified in this Spec.
Functionality added to the WebGPU/WGSL spec after its first shipment in a browser. Loosens a restriction where using readonly depth-stencil attachments in a render pass required both aspects (depth and stencil) to be readonly. This was too strict, and prevent use-cases where for example the depth is used readonly for contact shadow tracing, while the stencil buffer is written to do identify pixels for further processing. (Both Unity and Unreal do things with mixed depth-stencil readonliness). #
This feature was specified in this Spec.
Zstandard, or “zstd”, is a data compression mechanism described in RFC8878. It is a fast lossless compression algorithm, targeting real-time compression scenarios at zlib-level and better compression ratios. The "zstd" token was added as an IANA-registered Content-Encoding token as per https://datatracker.ietf.org/doc/html/rfc8878#name-content-encoding. Adding support for "zstd" as a Content-Encoding will help load pages faster and use less bandwidth, and spend less time and CPU/power on compression on our servers, resulting in reduced server costs. #
This feature was specified in this Spec.
Docs: https://docs.google.com/document/d/1aDyUw4mAzRdLyZyXpVgWvO-eLpc4ERz7I_7VDIPo9Hc/edit?usp=sharinghttps://docs.google.com/document/d/14dbzMpsYPfkefAJos124uPrlkvW7jyPJhzjujSWws2k/edit?usp=sharing
No linked samples`align-content` CSS property works for block containers and table cells. The property worked only for flex containers and grid containers. It supports block containers and table cells, that is to say `display: block`, `display: list-item`, `display: table-cell`, etc. #
This feature was specified in this Spec.
Currently <script blocking="render" type="module"> requires a `src` attribute, even if this `src` is a data URI. This is an unnecessary constrain, as inline module scripts that import other script should still be able to render-block. See https://github.com/whatwg/html/issues/10034 #
This feature was specified in this Spec.
By 'field-sizing' property, web authors can disable fixed default sizes of form controls, and make their size depend on their content. It's very easy to provide automatically-growing text fields. #
This feature was specified in this Spec.
Docs: https://github.com/tkent-google/explainers/blob/main/form-sizing.md
No linked samplesThis release of Chrome had 2 new origin trials.
This feature adds support for using designated previous responses, as an external dictionary for content encoding compressing responses with Brotli or Zstandard. Enterprises might experience potential compatibility issues with enterprise network infrastructure that intercepts HTTPS traffic and is sensitive to unknown content encodings. The enterprise policy "CompressionDictionaryTransportEnabled" is available to turn off the compression dictionary transport feature. #
This feature was specified in this Spec.
Docs: https://docs.google.com/document/d/1IcRHLv-e9boECgPA5J4t8NDv9FPHDGgn0C12kfBgANg/edithttps://github.com/WICG/compression-dictionary-transporthttps://datatracker.ietf.org/doc/draft-ietf-httpbis-compression-dictionaryhttps://docs.google.com/document/d/1WCK965Ew0hTN6k05o2JFi9Y-AdGfkB1io_i6LrTSeQs/edit?usp=sharing
Samples: https://compression-dictionary-transport-threejs-demo.glitch.mehttps://compression-dictionary-transport-shop-demo.glitch.me
JavaScript Promise Integration (JSPI) is an API that allows WebAssembly applications to integrate with JavaScript Promises. It allows a WebAssembly program to act as the generator of a Promise, and it allows the WebAssembly program to interact with Promise-bearing APIs. In particular, when an application uses JSPI to call a Promise-bearing (JavaScript) API, the WebAssembly code is suspended; and the original caller to the WebAssembly program is given a Promise that will be fulfilled when the WebAssembly program finally completes. JSPI is described in more detail in https://github.com/WebAssembly/js-promise-integration which is part of the W3C WebAssembly standards track. See also https://github.com/WebAssembly/stack-switching and https://github.com/WebAssembly/meetings/tree/main/stack. #
This feature was specified in this Spec.
This release of Chrome had 7 are available behind a flag.
The prior behavior caused issues if a top layer element (dialog, fullscreen, etc.) was DOM-nested within a popover. The inner element, when promoted to the top layer, would cause the outer popover to be hidden, which also (via CSS display:none) hid the inner element. That, in turn, caused issues at least for dialogs, which inert the entire page. This change makes top layer elements "nestable" within popovers. #
This feature was specified in this Spec.
The :open pseudo-class matches <dialog> and <details> when they are in their open state, and matches <select> and <input> when they are in modes which have a picker and the picker is showing. #
This feature was specified in this Spec.
The CSS interpolate-size property allows a page to opt in to animations and transitions of CSS intrinsic sizing keywords such as auto, min-content, fit-content, etc., in the cases where we can animate those keywords. The CSS calc-size() function is a CSS function similar to calc(), but that also supports operations on exactly one supported sizing keyword. Currently supported sizing keywords are auto, min-content, max-content, fit-content, and (for flex-basis) content. Other sizing keywords that may be supported in the future include stretch (currently supported as prefixed -webkit-fill-available) and contain. This function is used to represent the values in the middle of the animations allowed by the interpolate-size property. #
This feature was specified in this Spec.
Installed web apps can change the text on the title bar based on the page's content. The current behavior is that the installed web application will put the app's name from the manifest and append the page’s inner text from the `<title>` HTML tag in the head of the page. This often can create awkward titles for some web apps. This feature allows to specify complementary information about the current window of an installed running PWA. It adds a subtitle to the page to provide contextual information that is displayed in the window's title bar. This replaces the text contained in the HTML's title tag. #
This feature was specified in this Spec.
Docs: https://docs.google.com/document/d/1RFooPMsNJWoMifLU71GQysTC86BYdyKTCMcDIos3IGs/edit?usp=sharing
Samples: https://diek.us/pwinterhttps://youtu.be/qdBhSmawNc8?t=1581
CSS property writing-mode allow elements to go vertical, but users cannot set the direction in which value changes. With this feature, we are allowing the form control elements meter, progress and range input type to have vertical writing mode and choose the form control's value direction. If direction is rtl, the value is rendered from bottom to top. If direction is ltr, the value is rendered from top to bottom. For Web compatibility, we plan to slowly rollout the change in 123 and enable in stable in 124.
This feature was specified in this Spec.
Improves accessibility by making scroll containers focusable using sequential focus navigation. Today, the tab key doesn't focus scrollers unless tabIndex is explicitly set to 0 or more. By making scrollers focusable by default, users who can't (or don't want to) use a mouse will be able to focus clipped content using a keyboard's tab and arrow keys. This behavior is enabled only if the scroller does not contain any keyboard focusable children. This logic is necessary so we don't cause regressions for existing focusable elements that might exist within a scroller like a <textarea>. Note: The previous rollout of this feature (started in Chrome 127) was stopped due to web compatibility issues, which should be fixed in the current implementation shipping in 130. Note: The previous rollout of this feature (started in 130) was stopped due to an accessibility regression, which should be fixed in the current implementation shipping in 132. #
This feature was specified in this Spec.
Docs: https://drafts.csswg.org/css-overflow-3/#scroll-containerhttps://html.spec.whatwg.org/multipage/interaction.html#focusable-areahttps://html.spec.whatwg.org/multipage/interaction.html#dom-tabindex
No linked sampleshttps://github.com/tc39/proposal-duplicate-named-capturing-groups
This feature was specified in this Spec.
To keep the platform healthy, we sometimes remove APIs from the Web Platform which have run their course. There can be many reasons why we would remove an API, such as:
Some of these changes will have an effect on a very small number of sites. To mitigate issues ahead of time, we try to give developers advanced notice so they can make the required changes to keep their sites running.
Chrome currently has a process for deprecations and removals of API's, essentially:
You can find a list of all deprecated features on chromestatus.com using the deprecated filter and removed features by applying the removed filter. We will also try to summarize some of the changes, reasoning, and migration paths in these posts.
This release of Chrome had 0 features deprecated.
This release of Chrome had 0 features removed.