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 20 new features.
We are landing the following change to the Attribution Reporting API focused on: * Improving transmission loss through changes to the source destination limit logic
We are landing the following change to the Attribution Reporting API focused on: * Improving API report batching capabilities
AudioContext creation and audio rendering errors are reported to web applications via a callback assigned to AudioContext.onerror. #
This feature was specified in this Spec.
Support of new CSS property `ruby-align` is added. The property accepts one of `space-around` `space-between` `start` and `center` keywords, and controls alignment of ruby base text and ruby annotation text. #
This feature was specified in this Spec.
This feature is not to fire selectionchange event when there is already one pending. For web developers, selectionchange event listeners will be called less often with this feature. Before this feature, every time the mutation of the selection on one target(input/textarea/document) would make the listener to be called once. Now with this feature, before the selectionchange event listner is finally called, multiple mutations of the selection on one target would make the listener to be called only once. #
This feature was specified in this Spec.
Chrome 128 adds a cross-site ancestor bit to the keying of the partitioned cookie's CookiePartitionKey. This change unifies the partition key with the partition key values used in storage partitioning and adds protection against clickjacking attacks by preventing cross-site embedded frames from having access to the top-level-site's partitioned cookies. If an enterprise experiences any breakage with embedded iframes, they can use the CookiesAllowedForUrls policy or use SameSite=None cookies without the Partitioned attribute and then invoke the Storage Access API (SAA) to ensure that embedded iframes have access to the same cookies as the top level domain. #
This feature was specified in this Spec.
[Isolated Web Apps](https://developer.chrome.com/docs/iwa/introduction) (IWAs) are an extension of existing work on PWA installation and Web Packaging that provide stronger protections against server compromise and other tampering that is necessary for developers of security-sensitive applications. Rather than being hosted on live web servers and fetched over HTTPS, these applications are packaged into Web Bundles, signed by their developer, and distributed to end-users through one or more of the potential methods described in the [explainer](https://github.com/WICG/isolated-web-apps/blob/main/README.md). In Chrome 128, IWAs became installable through an admin policy only on enterprise-managed ChromeOS devices.
This feature was specified in this Spec.
Samples: https://github.com/GoogleChromeLabs/telnet-clienthttps://github.com/WICG/controlled-frame/tree/main/test_app
Line-breaks are possible within elements with `display: ruby`. A single pair of a ruby-base and a ruby-text has never been line-breakable, and it has been pushed to the next line if the current line had no enough space for the entire pair. Now each of the ruby-base and the ruby-text can be split into multiple lines. #
This feature was specified in this Spec.
Docs: https://docs.google.com/document/d/1hzvrwoE_0aw08X_CaU40zV5bXbMQjY2SHQHj3Np4sDo/edit?usp=sharing
No linked samplesThe WCAG (accessibility guidelines) specify that the size of pointer inputs must be at least 24x24 CSS pixels. The <option> element within the <select> dropdown currently does not meet this height requirement. #
This feature was specified in this Spec.
Docs: https://github.com/openui/open-ui/issues/1026
No linked samplesAs devices with advanced pen input capabilities are becoming increasingly prevalent, it is important that the web platform continues to evolve to fully support these advanced features in order to unlock rich experiences for both end users and developers. One such advancement is the ability for a device's digitizer to recognize more than one pen device interacting with it simultaneously. This feature is an extension to the PointerEvent interface to include a new attribute, persistentDeviceId, that represents a session-persistent, document isolated, unique identifier that a developer can reliably use to identify individual pens interacting with the page.
This feature was specified in this Spec.
Modifies the Private Aggregation API to add a 'filtering ID' to the aggregatable reports' encrypted payloads. This ID allows histogram contributions with different filtering IDs to be processed separately on the aggregation service. A list of filtering IDs could be provided in an aggregation query and any contributions not matching a listed ID will be filtered out, not contributing to the result. To support the new feature, we update the report version to "1.0" (from "0.1"). By the time this is launched to Stable, all valid aggregation service releases will support the new report version, avoiding backwards compatibility concerns. (Old releases are deprecated on a regular schedule.) #
This feature was specified in this Spec.
Promise.try is a new static method. `Promise.try(f)` is shorthand for `new Promise(resolve => resolve(f()))`.
This feature was specified in this Spec.
The CSSWG resolved to rename this property, because "fallbacks" more accurately describes what this property controls. The word "options" is a bit deceiving, since the styles outside of `position-try` blocks will be tested first, and if they result in a layout that fits within the containing block, none of the "options" will get used. So "fallbacks" is a better word to describe this behavior. https://github.com/w3c/csswg-drafts/issues/10395#issuecomment-2192127524 One note for developers: there is a `position-try` shorthand (see https://drafts.csswg.org/css-anchor-position-1/#position-try-prop) that can be used to help this migration. If you set `position-try` instead of `position-try-options` *or* `position-try-fallbacks`, the shorthand will set the proper longhand before and after this rename. #
This feature was specified in this Spec.
Support the SkipAd media session action. This skipad action allows Chrome to show a button in the system media controls or in the PiP window. #
This feature was specified in this Spec.
Docs: https://developers.google.com/web/updates/2019/02/chrome-73-media-updates#skipadhttps://github.com/WICG/mediasession/pull/203
Samples: https://googlechrome.github.io/samples/picture-in-picture/skip-ad.html
Updates the existing implementation of the previously non-standard CSS zoom property to align with the new standard. This changes various JS APIs to align with the spec (see design doc), changes zoom to apply to iframe content documents, and changes it to apply to all inherited length properties (previously it only changed inherited font-size).
This feature was specified in this Spec.
Docs: https://docs.google.com/document/d/1AcnDShjT-kEuRaMchZPm5uaIgNZ4OiYtM4JI9qiV8Po/edit
Samples: https://jsbin.com/wasafateko/edit?html,css,js,output
Allows SVG gradients to interpolate in a linear-light sRGB color space. Currently all SVG gradients interpolate in a gamma-encoded sRGB color space. #
This feature was specified in this Spec.
The new `hints` parameter[1] in WebAuthn requests allows sites to provide guidance to browsers to guide their UI. The canonical use case are enterprises which know that their internal sites use only security keys and want to be able to communicate that so that browsers focus the UI on that case. But hints also resolve a tension where the current `authenticatorAttachment` parameter is strict: setting it to `platform` excludes all cross-platform options and vice versa. This has proven less than ideal in some cases. [1] https://w3c.github.io/webauthn/#enum-hints
This feature was specified in this Spec.
On Windows, popular native apps [1] use UTF-8 format to read/write SVG images from/to clipboard. Proposal is to switch to UTF-8 on Windows while writing `image/svg+xml` format to the clipboard. This is similar to the HTML format where we use UTF-8 on Windows. When SVG image content is read from the clipboard, Chromium converts it into UTF-16. Alternative considered It was attempted to add a BOM character to the UTF-16LE encoded SVG image content, but the sampled native apps [1] were unable to parse the images correctly. [1] Here is an inventory of all the sampled native apps that read/write `image/svg+xml` format: https://docs.google.com/document/d/1ULlihA0FOJOqcyD9MgzLZrAbk0uTQPJqDPuPJ2aiuS4/edit?usp=sharing [2] https://learn.microsoft.com/en-us/windows/win32/dataxchg/html-clipboard-format#:~:text=The%20only%20character%20set%20supported%20by%20the%20clipboard%20is%20Unicode%20(UTF%2D8). #
This feature was specified in this Spec.
Docs: https://docs.google.com/document/d/1ULlihA0FOJOqcyD9MgzLZrAbk0uTQPJqDPuPJ2aiuS4/edit?usp=sharing
Samples: https://webdbg.com/test/svg
The aria-rowindextext and aria-colindextext properties can be used by developers to express semantics about a table or grid to assistive tech. These attributes are applied in addition to aria-rowindex/aria-colindex in cases where the numeric indices of rows or columns are not meaningful, for example a chessboard or a spreadsheet where the columns are named by letters rather than numbers. These properties are reflected in JavaScript as Element.ariaRowIndexText/Element.ariaColIndexText and ElementInternals.ariaRowIndexText/ElementInternals.ariaColIndexText. These are part of the Interop2024 Accessibility focus area: https://wpt.fyi/results/wai-aria/idlharness.window.html?label=master&label=experimental&aligned&view=interop&q=label%3Ainterop-2024-accessibility
This feature was specified in this Spec.
This new API allows users to get current caret position from a given screen point. The API returns a CaretPosition object which represents the caret position indicating current text insertion point including the containing DOM node, caret's character offset, and the client rectangle of caret range. The API also supports get CaretPosition inside Shadow DOM. To get CaretPosition inside Shadow DOM, caller needs to provide reference to all the shadow roots that this API can pierce into. #
This feature was specified in this Spec.
This release of Chrome had 4 new origin trials.
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 having all providers in the same get() call. We are also removing support for ‘add another account’ in FedCM passive mode. This feature allows showing a ‘use another account’ button alongside other IdP accounts in the chooser. The feature is currently unused, and UX conversations have led us to believe that supporting this leads to a more complicated flow without much benefit. This feature will still work in FedCM active mode. #
This feature was specified in this Spec.
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 hashtable is now partitioned via "triple-keying", or by storing the following for each visited link: <link URL, top-level site, frame origin>. By only styling links that have been clicked on this site and frame before, the many side-channel attacks that have been developed to obtain :visited links styling information are now obsolete, as they no longer provide sites with new information about users. There is an exception for "self-links", where links to a site's own pages can be styled as :visited even if they have not been clicked on in this exact top-level site and frame origin before. This exemption is only enabled in top-level frames or subframes which are same-origin with the top-level frame. The privacy benefits above are still achieved because sites already know which of its subpages a user has visited, so no new information is exposed. This was a community-requested exception which improves user experience as well. #
This feature was specified in this Spec.
Docs: https://github.com/explainers-by-googlers/Partitioning-visited-links-history
No linked samplesUpdates the existing implementation of the previously non-standard CSS zoom property to align with the new standard. This changes various JS APIs to align with the spec (see design doc), changes zoom to apply to iframe content documents, and changes it to apply to all inherited length properties (previously it only changed inherited font-size).
This feature was specified in this Spec.
Docs: https://docs.google.com/document/d/1AcnDShjT-kEuRaMchZPm5uaIgNZ4OiYtM4JI9qiV8Po/edit
Samples: https://jsbin.com/wasafateko/edit?html,css,js,output
Adds subgroup functionality to WebGPU. Subgroup operations perform SIMT operations to provide efficient communication and data sharing among groups of invocations. These operations can be used to accelerate applications by reducing memory overheads incurred by inter-invocation communication.
This feature was specified in this Spec.
This release of Chrome had 11 are available behind a flag.
Adds the Atomics.pause method to hint the CPU that the current code is executing a spinlock.
This feature was specified in this Spec.
Docs: https://github.com/tc39/proposal-atomics-microwait/blob/main/README.md
No linked samplesLook up query containers in the flat tree ancestor order instead of shadow-including order. The specification for container queries changed to look up flat tree ancestors. This change is only relevant for shadow DOM where an element will now be able to see non-named containers inside shadow trees into which the element or one of its ancestors are slotted, even if the CSS rule does not use ::part() or ::slotted(). #
This feature was specified in this Spec.
The reading-flow CSS property controls the order in which elements in a flex, grid or block layout are exposed to accessibility tools and focused via TAB keyboard focus navigation. This change implements the CSS reading-flow keyword values: * normal * flex-visual * flex-flow * grid-rows * grid-columns * grid-order * source-order See spec: https://drafts.csswg.org/css-display-4/#reading-flow The reading-order CSS property allows authors to manually-override the order within a reading flow container. It is an integer with default value 0. See spec: https://drafts.csswg.org/css-display-4/#reading-order Please find more thorough examples of how TAB keyboard navigation and accessibility is improved by this feature here: https://chrome.dev/reading-flow-examples/ #
This feature was specified in this Spec.
Samples: https://chrome.dev/reading-flow-examples
To achieve optical balance of text content, the text-box-trim and text-box-edge properties, along with the text-box shorthand property, make finer control of vertical alignment of text possible. The text-box-trim property specifies the sides to trim, above or below, and the text-box-edge property specifies how the edge should be trimmed. These properties allow developers to control vertical spacing precisely by using the font metrics. Note that the `ideographic` and `ideographic-ink`, two values for the text-box-edge property for CJK, are deferred to future releases due to open issues currently under discussion. #
This feature was specified in this Spec.
This adds a new parameter ("preferInitialWindowPlacement") to the document picture-in-picture API that, when set to true, hints to the user agent that it should not try to reuse the position or size of the previous document picture-in-picture from this site when opening this one. Often, a document picture-in-picture window will close and re-open multiple times for the same site, such as moving a video conference to and from PiP. The user agent is free to re-open the PiP window at its most recent size / location, so that it stays where the user last moved it and provides continuity between the PiP windows. However, if the new window is semantically unrelated to the previous window, such as if it is a new VC, then the developer can use this parameter provide a hint to the user agent that this window might be better opened in its default position / size instead.
This feature was specified in this Spec.
Extends the use of the "opener" rel type to same-window navigations to signal to the browser that the destination page will open a new window and the referring page expects to be able to access it. Some user agents perform browsing context group changes on navigation that aren't strictly necessary for security in order to improve performance. This results in named window reuse not being possible across a back navigation. Annotating an anchor element with "opener" will signal to the user agent that performing a browsing context group change would break a future opener relationship. #
Intl.DurationFormat API is a TC39 ECMA402 proposal See https://github.com/tc39/proposal-intl-duration-format for the proposal The proposal advanced to Stage 3 on 2021-10 Spec: https://tc39.es/proposal-intl-duration-format/ #
This feature was specified in this Spec.
Docs: https://docs.google.com/document/d/1UMwkeeiqVyVNhNW8CS1vwN9g2cIH0AryaU16DT-vGg0/edit
Samples: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DurationFormat
Promise.try is a new static method. `Promise.try(f)` is shorthand for `new Promise(resolve => resolve(f()))`.
This feature was specified in this Spec.
The CSSWG resolved to rename this property, because "fallbacks" more accurately describes what this property controls. The word "options" is a bit deceiving, since the styles outside of `position-try` blocks will be tested first, and if they result in a layout that fits within the containing block, none of the "options" will get used. So "fallbacks" is a better word to describe this behavior. https://github.com/w3c/csswg-drafts/issues/10395#issuecomment-2192127524 One note for developers: there is a `position-try` shorthand (see https://drafts.csswg.org/css-anchor-position-1/#position-try-prop) that can be used to help this migration. If you set `position-try` instead of `position-try-options` *or* `position-try-fallbacks`, the shorthand will set the proper longhand before and after this rename. #
This feature was specified in this Spec.
This change makes the HTML parser allow additional tags in <select> besides <option>, <optgroup>, and <hr>. This change is in support of the customizable <select> feature but is being shipped first because it can be done separately and has some compat risk which I'd like to get feedback on. This feature is gated by the temporary policy (SelectParserRelaxationEnabled). This is a temporary transition period, and the policy will stop working on milestone M141. Customizable select explainer: https://open-ui.org/components/customizableselect/ I did a compat analysis and determined that the vast majority of sites which would see the effects of the parser changes would not have their behavior changed. More details here: https://github.com/whatwg/html/issues/10310 If there are major issues with this change, I will reassess and make adjustments to the parser as needed. #
This feature was specified in this Spec.
Adds tone mapping parameters to the WebGPU canvas configuration, and adds options of "standard" (the current behavior of restricting content to the SDR range of the display) as the default, and "extended" (not imposing this restriction) as a new behavior. This allows WebGPU content to use the full range of a display. #
This feature was specified in this Spec.
Docs: https://github.com/ccameron-chromium/webgpu-hdr/blob/main/EXPLAINER.md
Samples: https://ccameron-chromium.github.io/webgpu-hdr/example.html
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.