Chrome Release Summary

Chrome version: 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

Chrome 85

Enabled (27) | Origin Trial (0) | Behind a flag (1) | Deprecated (1) | Removed (0)

Enabled by default in 85

This release of Chrome had 27 new features.

@property

The @property rule is an alternative way to register a custom property without JavaScript. #

This feature was specified in this Spec.

AVIF Image Decode

AVIF is a next generation image format standardized by the Alliance for Open Media. This feature supports adding decode support for AVIF content natively into the browser via existing AV1 decoders. #

This feature was specified in this Spec.

Resources

Docs: https://groups.google.com/a/chromium.org/g/blink-dev/c/gPse70Ax-iEhttps://netflixtechblog.com/avif-for-next-generation-image-coding-b1d75675fe4https://groups.google.com/a/chromium.org/g/blink-dev/c/MlTJyKGGtks/m/rTfshC2SBAAJ

No linked samples

App shortcuts

Lets a web application register shortcuts for common tasks. These would typically be added to the app launcher icon (for a progressive web app) enabling the user to quickly run key tasks. #

This feature was specified in this Spec.

Resources

Docs: https://web.dev/app-shortcuts/https://docs.google.com/document/d/1KhHWikx1z-604LIjDKEdnL9MyezJklxM8kEYNnMLIQs/viewhttps://blogs.windows.com/windowsexperience/2019/04/29/windows-10-tip-see-your-top-sites-in-the-jump-list/

No linked samples

CORS: Strict ABNF based Checks on Access-Control-Allow-Headers and Access-Control-Allow-Methods headers

Chrome CORS checked Access-Control-Allow-Headers and Access-Control-Allow-Methods headers in a relaxed manner and didn't follow the ABNF that spec defined. After Chrome 85, CORS checks follow the standardized ABNF. #

This feature was specified in this Spec.

Resources

Docs: https://bugs.chromium.org/p/chromium/issues/detail?id=1060504

No linked samples

CSS Color Adjust: Remove 'only' and support used 'dark' for preferred 'light' for color-scheme

The color-scheme property from CSS Color Adjustment level 1 spec changed in two ways. 1. The 'only' keyword is no longer special and is treated as a <custom-ident> as any other unknown color-scheme. The 'only' keyword was previously only allowed in combination with 'light', but had otherwise no effect in Chrome. 2. 'color-scheme: dark' will have a used value of 'dark' even when preferred color-scheme is 'light'. 'color-scheme: light dark' still has a used values based on the preferred scheme. #

This feature was specified in this Spec.

CSS content-visibility property

Adds a CSS property called content-visibility, which allows automatic or script management of content visibility. When hidden, the element's contents (subtree or replaced element contents) are not drawn or hit-tested and have CSS containment applied, allowing for rendering optimizations. The 'auto' keyword allows for the user-agent to manage content visibility based on proximity to the viewport, whereas 'hidden' keyword allows full script control of content visibility. #

This feature was specified in this Spec.

Resources

Docs: https://github.com/WICG/display-locking/blob/master/explainers/content-visibility.mdhttps://drafts.csswg.org/css-contain-2/#content-visibility

No linked samples

CSS counter-set

CSS counter-set is an additional property introduced in css-lists-3 to control counters by setting an existing counter to a specified value. This builds upon other implemented counter control properties, specifically counter-reset (which creates a new counter with a specified value) and counter-increment (which increments an existing counter by a specified amount). #

This feature was specified in this Spec.

Resources

Docs: https://drafts.csswg.org/css-lists-3/#propdef-counter-set

No linked samples

Cookies default to SameSite=Lax

Treat cookies as SameSite=Lax by default if no SameSite attribute is specified. Developers are still able to opt-in to the status quo of unrestricted use by explicitly asserting SameSite=None. This feature is available as of Chrome 76 by enabling the same-site-by-default-cookies flag. This feature will be rolled out gradually to Stable users starting July 14, 2020. See https://www.chromium.org/updates/same-site for full timeline and more details. #

This feature was specified in this Spec.

Resources

Docs: https://web.dev/samesite-cookies-explained

No linked samples

Event Timing API

Monitoring event latency requires an event listener. This precludes measuring event latency early in page load, and adds unnecessary performance overhead. The Event Timing API will enable web developers to measure event latency both before and after the page load. #

This feature was specified in this Spec.

Resources

Docs: https://github.com/WICG/event-timing

No linked samples

Expose Picture-in-Picture Window in leavepictureinpicture event

Allow web developers to access pictureInPictureWindow in leavepictureinpicture event. #

This feature was specified in this Spec.

Resources

Docs: https://w3c.github.io/picture-in-picture/#example-update-video-on-window-size-changes

No linked samples

Feature Policy for Clipboard API

Adds a feature policy (aka permission policy) flags for the Clipboard API. The flag names will be ‘clipboard-read’ and ‘clipboard-write’, to be consistent with the Clipboard API permissions, as feature policy is now merged with permissions and renamed to permissions policy. #

This feature was specified in this Spec.

Get Installed Related Apps API

The Get Installed Related Apps API (navigator.getInstalledRelatedApps) provides sites access to if their corresponding related applications are installed. Sites are only allowed to use this API if the native application has an established association with the web origin. The API was launched in Chrome 80. You can find details here: https://web.dev/get-installed-related-apps/ #

This feature was specified in this Spec.

Resources

Docs: https://web.dev/get-installed-related-apps

Samples: https://get-installed-apps.glitch.me

Interoperable Element's scrollLeft and scrollTop in non-default writing modes

Change Chrome's behavior such that when a scrollable element has content overflowing to the left (or to the top) then its horizontal (or vertical) scroll position will be zero at its initial position and negative when scrolled leftward (or upward). This change only affects DOM API Element.scrollLeft(), Element.scrollTop(), Element.scroll(), Element.scrollTo() when the scrollable element has a non-default writing mode that may invert overflow directions (e.g right to left or vertical modes). #

This feature was specified in this Spec.

Resources

Docs: https://people.igalia.com/fwang/scrollable-elements-in-non-default-writing-modes/

No linked samples

JavaScript logical assignment operators

Adds the logical assignment operators ||=, &&=, and ??= to JavaScript. #

This feature was specified in this Spec.

Resources

Docs: https://github.com/tc39/proposal-logical-assignment/blob/master/README.md

No linked samples

Media Feeds

Adds an API to allow a user agent to discover a media feed provided by a website. When fetched by the user agent the site will return a feed of personalized media recommendations for the user. #

This feature was specified in this Spec.

Resources

Docs: https://docs.google.com/document/d/1j9mpceLDay6LwC2pPZ5I7lmPKAW7b30iRI4JjTnKgNc/edit (google internal)

Samples: https://beccahughes.github.io/media/media-feeds/

Named pages with page-orientation

Support the 'page' CSS property [1], along with named pages support (@page foobar {} selector). Also support the 'page-orientation' descriptor [2] for @page, with values 'upright' (initial value), 'rotate-left', or 'rotate-right'. [1] https://www.w3.org/TR/css-page-3/#using-named-pages [2] https://drafts.csswg.org/css-page-3/#page-orientation-prop #

This feature was specified in this Spec.

Resources

Docs: https://github.com/w3c/csswg-drafts/issues/4491#issuecomment-594967467

No linked samples

Promise.any and AggregateError

Promise.any() accepts an iterable of promises and returns a promise that is fulfilled by the first given promise to be fulfilled, or rejected with an AggregateError holding the rejection reasons if all of the given promises are rejected. AggregateError is a support class that aggregates one or more errors into a single object. #

This feature was specified in this Spec.

Resources

Docs: https://v8.dev/features/promise-combinators#promise.any

No linked samples

Referrer Policy: Default to strict-origin-when-cross-origin

Web developers may specify a referrer policy on their documents, which impacts the `Referer` header sent on outgoing requests and navigations. When no policy is specified, Chrome will now use strict-origin-when-cross-origin as the default policy, instead of no-referrer-when-downgrade. On cross-origin requests made from documents without a specified referrer policy, this reduces the `Referer` header to the initiating origin and retains its usefulness while mitigating the risk of leaking data. #

This feature was specified in this Spec.

Resources

Docs: https://bit.ly/chromium-referrers

No linked samples

Reject insecure SameSite=None cookies

Deprecate and remove the use of cookies with the SameSite=None attribute but without the Secure attribute. Any cookie that requests SameSite=None but is not marked Secure will be rejected. This feature is available as of Chrome 76 by enabling the cookies-without-same-site-must-be-secure flag. This feature will be rolled out gradually to Stable users starting July 14, 2020. See https://www.chromium.org/updates/same-site for full timeline and more details. #

This feature was specified in this Spec.

Resources

Docs: https://web.dev/samesite-cookies-explained

No linked samples

String.prototype.replaceAll

JavaScript now has first-class support for global substring replacement through the new `String.prototype.replaceAll()` method. #

This feature was specified in this Spec.

Resources

Docs: n/a

No linked samples

Subresource prefetching+loading via Signed HTTP Exchange

Adds support signed exchange subresource prefetching and loading by extending the HTTP link header. #

This feature was specified in this Spec.

Resources

Docs: https://docs.google.com/document/d/1wsK0pQYSrB_ETYPvdVr3_KjYpdAPf1le4S5LKSU9sQM/edit?usp=sharing

Samples: https://github.com/horo-t/sub-sxg

Update fallback content's behavior for ImageInputType and HTMLImageElement

Previously, there have been inconsistencies on the implementation of fallback content and its treatment as a replaced element for ImageInputType and HTMLImageElement. This led to interoperable issues between implementors. Examples: <input style="display: inline;" type=image alt="ALT"> <img title="foo"> <img src="foo" width=10 height=10 alt> Please see, https://github.com/yuzhe-han/images-fallback-content-1094763, for visual comparison. #

This feature was specified in this Spec.

Resources

Docs: N/A

No linked samples

Update the behavior of the "disabled" attribute for HTMLLinkElement

Previously, Chromium had intermittent behavior with respect to the "disabled" attribute: - <link id=foo rel="stylesheet" disabled> would not show up in document.styleSheets. - foo.disabled=false; foo.disabled=true; would cause it to appear (and remain) in document.styleSheets. - <link rel="alternate stylesheet"> cannot be enabled, except by disabling and re-enabling it. - When disabled, link.ownerNode was not null The above issues are being resolved. #

This feature was specified in this Spec.

Resources

Docs: https://github.com/whatwg/html/pull/4519

Samples: https://github.com/whatwg/html/issues/3840#issue-343413388

Web Bluetooth Write With/Without Response

Implements two APIs for writing to GATT characteristics that will allow an app to ignore a response from the device or to expect a response from the device. The currently implemented writeValue() method will remain for backwards compatibility, but is discouraged. #

This feature was specified in this Spec.

Resources

Docs: https://github.com/WebBluetoothCG/web-bluetooth/issues/238

No linked samples

WebAssembly BigInt Integration

Allow WebAssembly to import and export WebAssembly function parameters of type i64 using BigInt. #

This feature was specified in this Spec.

WebAuthn getPublicKey[Algorithm]() and getAuthenticatorData()

Adds two accessors from the Web Authentication Level 2 spec that save sites from parsing Concise Binary Object Representation (CBOR) and CBOR Object Signing and Encryption (COSE) in order to use security keys. #

This feature was specified in this Spec.

Resources

Docs: https://w3c.github.io/webauthn/#sctn-public-key-easy

No linked samples

disallow preventDefault() on TouchMoves during overscroll

Touch events sent to a page can be either blocking or non-blocking. A blocking touch event means that the page calls preventDefault() to prevent the browser from turning the touch into a scroll. TouchMove events start out blocking until the first event in a sequence isn’t preventDefaulted and causes scrolling. Chromium currently reverts the touchevent stream back to blocking so that pages can override browser default overscrolling behavior. This feature causes overscrolling to be non-blocking. #

This feature was specified in this Spec.

Resources

Docs: http://crbug.com/1072364

Samples: https://bokand.github.io/block-overscroll.html

Origin Trials in-progress in 85

This release of Chrome had 0 new origin trials.

Flagged features in 85

This release of Chrome had 1 are available behind a flag.

Web Bluetooth getDevices() and forget()

Chrome's implementation of Web Bluetooth does not have a way for websites to get a list of permitted devices. This feature adds the Bluetooth.getDevices() and BluetoothDevice.forget methods. getDevices() will return a list of BluetoothDevice objects that the current origin has been granted permission to use by the user. forget() will allow web developers to voluntarily revoke a permission to a BluetoothDevice that was granted by a user. #

This feature was specified in this Spec.

Resources

Docs: https://docs.google.com/document/d/1h3uAVXJARHrNWaNACUPiQhLt7XI-fFFQoARSs1WgMDM/edit#heading=h.jdnga4sjs82y

Samples: https://googlechrome.github.io/samples/web-bluetooth/get-devices.html

Deprecations and Removals

Deprecation policy

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.

Deprecated features in 85

This release of Chrome had 1 features deprecated.

-webkit-box quirks from -webkit-line-clamp

The following display properties will no longer work when -webkit-box and -webkit-box-clamp are combined: -webkit-box-flex, -webkit-box-ordinal-group, -webkit-box-align, -webkit-box-pack, -webkit-box-direction. #

This feature was specified in this Spec.

Resources

Docs: N/A

No linked samples

Removed features in 85

This release of Chrome had 0 features removed.