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 75

Enabled (21) | Origin Trial (1) | Behind a flag (2) | Deprecated (0) | Removed (3)

Enabled by default in 75

This release of Chrome had 21 new features.

Allow PaymentRequest.show() to take optional detailsPromise

Some merchant sites may not know the total or line items at the time of attempting to open the payment sheet with show(). This feature is a way to signal that the browser should show a spinner or equivalent and wait on allowing end user interaction until an update. #

This feature was specified in this Spec.

Resources

No linked docs

Samples: https://rsolomakhin.github.io/pr/wait/https://rsolomakhin.github.io/pr/mod-wait/https://rsolomakhin.github.io/pr/no-wait/https://rsolomakhin.github.io/pr/single-wait/https://rsolomakhin.github.io/pr/multi-wait/https://rsolomakhin.github.io/pr/us-wait/https://rsolomakhin.github.io/pr/wait-skip-ui/https://rsolomakhin.github.io/pr/ko/reject-show-promise/https://rsolomakhin.github.io/pr/ko/timeout-show-promise/https://rsolomakhin.github.io/pr/ko/show-promise-unsupported-method/

Animation constructor

Currently the Web Animations API allows developers to create animations using the Element.animate() method, which returns an Animation object that is internally constructed. The full Animation constructor gives the developer more control over the created Animation, including specifying the timeline (currently useless, but in the future enables other types of timelines) and the exact KeyframeEffect object (see https://www.chromestatus.com/feature/4868532347076608) #

This feature was specified in this Spec.

AnimationEffect and KeyframeEffect (excluding getKeyframes/setKeyframes & composite/iterationComposite)

AnimationEffect and KeyframeEffect are part of the Web Animations API. They allow a developer interactive control over the following parts of their Animation: * the Animation target (i.e. what element is being animated) * the Animation timing properties (duration, delay, etc) We do not intend to ship the composite and iterationComposite members or the getKeyframes/setKeyframes methods at this time. #

This feature was specified in this Spec.

AppCache: Cross-origin resource size padding

For quota accounting purposes, the size of cross-origin AppCache resources will be padded. Cross-origin resources are resources whose origin differs from the manifest's origin. The size padding will be a random number, uniformly distributed between 0 and about 14MB. Quota accounting purposes include the size reported by the Quota API and quota enforcement (an origin's storage API calls are blocked when the origin exceeds its quota). #

This feature was specified in this Spec.

Resources

Docs: https://tom.vg/papers/request_and_conquer_usenix2016.pdfhttps://tom.vg/2016/08/request-and-conquer/

No linked samples

CSP: `script-src-attr`, `script-src-elem`, `style-src-attr`, `style-src-elem` directives

These 4 new directives provide the functionality of the script/style directive but with more granularity, applying to elements or attributes. #

This feature was specified in this Spec.

Resources

Docs: https://w3c.github.io/webappsec-csp/#directive-script-src-attrhttps://w3c.github.io/webappsec-csp/#directive-script-src-elemhttps://w3c.github.io/webappsec-csp/#directive-style-src-attrhttps://w3c.github.io/webappsec-csp/#directive-style-src-elem

No linked samples

HTMLVideoElement.playsInline

This is a hint a website may provide to a user agent to display a video content within the element's playback area. #

This feature was specified in this Spec.

Resources

Docs: Discussion to add it to spec: https://github.com/whatwg/html/issues/1237

No linked samples

Low latency canvas contexts with desynchronized

The getContext() method now supports a desynchronized option, which provides a low-latency alternative to the now deprecated NaCl/PPAPI solution which used native OpenGL rendering. The new solution uses either 2d or webgl rendering. For example: `let context_type = '2d’; // Or 'webgl' canvas.getContext(context_type, {desynchronized: true});` #

This feature was specified in this Spec.

Resources

Docs: https://github.com/whatwg/html/issues/4087https://tinyurl.com/lowlatency-canvas-on-chromeos

Samples: https://codepen.io/miguelao/full/WKZaqdhttps://codepen.io/miguelao/full/ZjJNNwhttps://codepen.io/miguelao/full/mLLKLg

MediaStreamTrack.getCapabilities() support for audio device-related constrainable properties.

Returns the device-related capabilities (namely sample size, sample rate, latency, and channel count) of the source associated to a MediaStreamTrack. There is also a variant InputDeviceInfo.getCapabilities(), available in the results of MediaDevices.enumerateDevices().These devices are used as sources for MediaStreamTrack; in this case, getCapabilities() returns the same values as MediaStreamTrack.getCapabilities() for sampleSize, channelCount, and latency. #

This feature was specified in this Spec.

Resources

Docs: https://developer.mozilla.org/en-US/docs/Web/API/MediaStreamTrack/getCapabilities

No linked samples

Numeric separators

This feature enables developers to make their numeric literals more readable by creating a visual separation between groups of digits. Using underscores (_, U+005F) as separators helps improve readability for numeric literals, for ex: 1_000_000_000. #

This feature was specified in this Spec.

Resources

Docs: https://v8.dev/features/numeric-separators

Samples: https://v8.dev/features/numeric-separatorshttp://2ality.com/2018/02/numeric-separators.html

RTCDtlsTransport

Adds a component to provide information about active transports. Specifically, this interface allows an application access to information about the Datagram Transport Layer Security (DTLS) transport over which RTP and RTCP packets are sent and received by RTCRtpSender and RTCRtpReceiver objects, as well other data such as SCTP packets sent and received by data channels. #

This feature was specified in this Spec.

RTCIceTransport

Provides information about the state of the ICE transports used by RTCPeerConnection to send and receive media to another endpoint. #

This feature was specified in this Spec.

Scroll Snap Stop

Normally an inertial scroll operation (such as a swipe gesture) may skip several possible snap positions in favor of a snap position that is closer to its natural end point (which depends on platform and gesture characteristics such as velocity). scroll-snap-stop enables authors to designate a snap position such that it traps the inertial scrolling operations preventing the scroll from skipping it. #

This feature was specified in this Spec.

Resources

Docs: https://snap.glitch.me/carousel-with-snap-stop.html

No linked samples

Service workers appear in Chrome's Task Manager

Service workers now appear in Chrome's Task Manager. #

This feature was specified in this Spec.

Storage Quota Usage Details

This change adds a dictionary to the returned dictionary of storageManager.estimate() that contains details about usage for each storage backend. The goal is to aid in debugging issues around overuse of specific storage systems. #

This feature was specified in this Spec.

Resources

Docs: https://github.com/whatwg/storage/issues/63#issuecomment-441857897

No linked samples

Support noreferrer attribute for window.open()

Allows a web page to use window.open() without leaking referrer information by leaving the referrer header out of page navigations. #

This feature was specified in this Spec.

Web Authentication API: FIDO CTAP2 PIN support

The Web Authentication API (WebAuthn) lets web applications authenticate users via external authentication devices called security keys. This feature extends Chrome's implementation of WebAuthn to support local user authorization of security key operations via a user-defined PIN for keys that implement the FIDO CTAP2 protocol. Web sites using WebAuthn can request or require such authorization via the API's "user verification" mechanisms (https://www.w3.org/TR/webauthn/#user-verification). #

This feature was specified in this Spec.

Web notification inline replies

This feature adds support for text actions on web notifications. It allows web developers to let users quickly input text in response to a notification, within the notification itself. This is expected to be particularly useful for chat apps. #

This feature was specified in this Spec.

Resources

Docs: https://github.com/anitawoodruff/inline-notification-replieshttps://github.com/whatwg/notifications/issues/68

Samples: https://github.com/anitawoodruff/inline-notification-replies#example-code

WebAssembly Bulk Memory Operations

Adds a memmove type opcode to WebAssembly and enhances existing data sections to support importable base.This allows better optimization of large memcpy/memmove operations. Data section improvement will make shared libraries work better, especially with threads. #

This feature was specified in this Spec.

Resources

Docs: https://github.com/WebAssembly/bulk-memory-operations/blob/master/proposals/bulk-memory-operations/Overview.md

No linked samples

WebAssembly Non-trapping Conversion

Adds opcodes to WebAssembly to support non-trapping float-to-integer conversion to improve the ergonomics of the bytecode format. #

This feature was specified in this Spec.

Resources

Docs: https://github.com/WebAssembly/nontrapping-float-to-int-conversions/blob/master/proposals/nontrapping-float-to-int-conversion/Overview.md

No linked samples

stale-while-revalidate

The stale-while-revalidate attribute is used by the Cache-Control header and defines an extra window of time during which a cache (proxy, user agents) can use a stale asset while it revalidates it asynchronously. This improves subsequent page load latencies as stale assets are non longer in the critical path. #

This feature was specified in this Spec.

waitUntil/respondWith can be called inside a microtask during event dispatch.

To conform to the specification, ExtendableEvent.waitUntil() and FetchEvent.respondWith() can now be called during the microtask checkpoint at the end of event dispatch. Previously, this would throw an InvalidStateError. #

This feature was specified in this Spec.

Origin Trials in-progress in 75

This release of Chrome had 1 new origin trials.

WebRTC relative packet arrival delay statistic

Add new non-standard audio receiver metric to the WebRTC getStats() API called relativePacketArrivalDelay. The metric estimates the delay of incoming packets relative to the first packet received. #

This feature was specified in this Spec.

Resources

Docs: https://github.com/henbos/webrtc-provisional-stats/issues/13https://github.com/henbos/webrtc-provisional-stats/pull/14

No linked samples

Flagged features in 75

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

IFrame execution/freezing feature policy

Adds ability to pause execution of an iframe that is not rendered or scrolled out of view. #

This feature was specified in this Spec.

Resources

Docs: https://github.com/dtapuska/iframe-freeze

No linked samples

Overscroll and Scrollend DOM events

Similar to scroll event, Chrome will send overscroll and scrollend DOM events. #

This feature was specified in this Spec.

Resources

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

No linked samples

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 75

This release of Chrome had 0 features deprecated.

Removed features in 75

This release of Chrome had 3 features removed.

Remove cursors greater than 32x32 device-independent pixels intersecting native UI

Custom cursors with widths or heights greater than 32 DIP will be removed if they intersect native UX (i.e. are not fully contained in the visual viewport). Large cursors are being used abusively on the web, to confuse users (see https://crbug.com/880863). Specifically, large custom cursors can be used to cover important (sometimes security related) browser native UX with an arbitrary image to mislead users into thinking they are clicking outside the content area. #

This feature was specified in this Spec.

Remove unimplemented -webkit-appearance keywords

Remove the following -webkit-appearance keywords: button-bevel caret listitem media-controls-background media-controls-fullscreen-background media-current-time-display media-enter-fullscreen-button media-exit-fullscreen-button media-mute-button media-overlay-play-button media-play-button media-time-remaining-display media-toggle-closed-captions-button media-volume-slider-container menulist-textfield menulist-text progress-bar-value They are parsable keywords, but has no painting code. #

This feature was specified in this Spec.

overflow: -webkit-paged-x , overflow: -webkit-paged-y

These are old webkit-specific properties that allowed developers to fragment content over columns inside a scrollable region. See: https://bl.ocks.org/grorg/99eb053b432070b05d1e29759d81458f Practically speaking this isn't used. Most developers use it accidentally, and typically when it is used this property to forces a new formatting context similar to setting "overflow: hidden". #

This feature was specified in this Spec.