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 76

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

Enabled by default in 76

This release of Chrome had 29 new features.

Add RTP timestamp to RTCRtpReceiver.RTCRtpContributingSource

Add RTP timestamp to RTCRtpReceiver.RTCRtpContributingSource. This is additional metadata to the existing RTP source. #

This feature was specified in this Spec.

Resources

Docs: https://w3c.github.io/webrtc-pc/#dom-rtcrtpcontributingsource

No linked samples

Animation.updatePlaybackRate

Animation.updatePlaybackRate() lets you seamlessly transition the playback rate of an animation such that there is no visible jump in the animation. Current time is preserved at the instance the new playback rate takes effect. #

This feature was specified in this Spec.

Resources

Docs: https://drafts.csswg.org/web-animations/#the-animation-interfacehttps://drafts.csswg.org/web-animations/#seamlessly-updating-the-playback-rate-of-an-animation

Samples: https://wpt.fyi/results/web-animations/interfaces/Animation/idlharness.window.html?label=masterhttps://wpt.fyi/results/web-animations/timing-model/animations/seamlessly-updating-the-playback-rate-of-an-animation.html?label=master

Async Clipboard: Read and Write Images

Implements programmatic copying and pasting of images for the Async Clipboard API. This change also updates navigator.clipboard.read() and navigator.clipboard.write() to comply with the specification. Programmatic copying and pasting of images is Chromium's top starred bug. #

This feature was specified in this Spec.

Resources

Docs: https://web.dev/async-clipboard/

No linked samples

CSS backdrop-filter property

The backdrop-filter CSS property applies one or more filters to the "backdrop" of an element. The "backdrop" basically means all of the painted content that lies behind the element. This allows designers to construct "frosted glass" dialog boxes, video overlays, translucent navigation headers, and more. #

This feature was specified in this Spec.

Resources

Docs: https://groups.google.com/a/chromium.org/g/blink-dev/c/GRl1_Qy97jM/m/h7v1qIDsBwAJ

Samples: https://codepen.io/robinrendle/full/LmzLELhttps://codepen.io/netsi1964/full/JqBLPKhttps://codepen.io/pepf/full/GqZkdjhttps://codepen.io/SitePoint/full/xRpvzX

Consume User Activation After Entering FullScreen Mode

To prevent a user activation from opening more than one fullscreen window, entering fullscreen will consume the user activation. #

This feature was specified in this Spec.

Resources

Docs: none

Samples: https://output.jsbin.com/dudakil/

DateTimeFormat dateStyle and timeStyle

Adds dateStyle and timeStyle options to functions on Intl.DateTimeFormat, specifically formatToParts() and resolveOptions(). These options provide a compact way to request the appropriate, locale-specific date and time of given length styles. #

This feature was specified in this Spec.

Resources

Docs: https://goo.gl/v7n7zV

No linked samples

Escape key is not a user activation

The Escape key is no longer treated as a user activation. #

This feature was specified in this Spec.

Resources

Docs: https://docs.google.com/spreadsheets/d/1DGXjhQ6D3yZXIePOMo0dsd2agz0t5W7rYH1NwJ-QGJo

Samples: https://codepen.io/mustaqahmed/full/yrXLxZ

Fetch Metadata

Introduces a new set of HTTP request headers, including `Sec-Fetch-Site`, `Sec-Fetch-Mode` and `Sec-Fetch-User`, that sends additional metadata about a request's provenance (is it cross-site, is it triggered from <img>, etc.) to the server to allow it to make security decisions which might mitigate some kinds of attacks based on timing the server's response (xsleaks and others). #

This feature was specified in this Spec.

ImageCapture support for focusDistance constraint

The Image Capture API provides a means to set the focusMode to manual which is not useful if you cannot set the focus distance. This change provides an interface for getting focus range values and setting focus distance value. #

This feature was specified in this Spec.

Resources

Docs: https://github.com/w3c/mediacapture-image/pull/175

Samples: Android : https://codepen.io/rijuB/pen/NzWpxGLinux/CrOS: https://codepen.io/rijuB/pen/BPyWzp

Implement Animation.pending

Adds the pending attribute to the Web Animations API. A pending animation is one that is waiting on an asynchronous operation that affects the play state. Adding support for this attribute does not affect the rendering or timing of animations, but simply exposes the signal. #

This feature was specified in this Spec.

Resources

Docs: https://chromium-review.googlesource.com/c/chromium/src/+/1588283

Samples: https://wpt.fyi/results/web-animations/interfaces/Animationhttps://wpt.fyi/results/web-animations/timing-model/animations

Implement IDBCursor `request` attribute

This exposes the underlying IDBRequest of IDBCursor objects. It is a minor addition, exposing previously spec'd behavior. #

This feature was specified in this Spec.

Resources

Docs: No design docs were created for the implementation of this feature

No linked samples

IndexedDB transaction explicit commit API call

Adds a commit() function to IDBTransaction objects, which explicitly marks a transaction as not accepting further requests. Currently, IndexedDB only commits a transaction after all associated requests have had their completion event handlers executed, and no new requests have been queued by the event handlers. Developers can use the explicit commit() function to shave a few event loop cycles off of the latency of their transactions. #

This feature was specified in this Spec.

Intl.DateTimeFormat.prototype.formatRange

Adds formatRange() and formatRangeToParts() methods to Intl.DateTimeFormat to format a range of times between two dates, such as 'Jan 10 – 20, 2007', or 'Jan 10 – Feb 20, 2007'. #

This feature was specified in this Spec.

Resources

Docs: https://goo.gl/PGUQ1d

Samples: https://github.com/fabalbon/proposal-intl-DateTimeFormat-formatRange

Locale sensitive BigInt.prototype.toLocaleString and allow Intl.NumberFormat format/formatToParts to take BigInt.

Changes BigInt.prototype.toLocaleString() to locale-sensitive number formatting and changes Intl.NumberFormat.prototype.format() and formatToParts() to accept BigInt as input. #

This feature was specified in this Spec.

Resources

Docs: https://github.com/tc39/ecma402/pull/236

No linked samples

Media Capabilities in Workers

Enables the Media Capabilities API in all types of workers to help websites pick the best media to stream from a worker. The information can then be used to create the MediaStream from a worker. #

This feature was specified in this Spec.

Media Queries: prefers-color-scheme feature

Adds the 'prefers-color-scheme' feature, which lets authors adapt web content to user-selected dark theme in the OS or browser. Valid options are 'light', 'dark', or 'no-preference'. #

This feature was specified in this Spec.

Resources

No linked docs

Samples: https://developer.mozilla.org/en-US/docs/Web/CSS/@media/prefers-color-scheme#Examples

PaymentMethodChangeEvent

Adds the PaymentMethodChangeEvent and the associated event handler PaymentRequest.onpaymentmethodchange. Handler invocation indicates that the user has changed payment methods. The event can be useful when a merchant re-calculates a total value with method details. For example, merchants can calculate tax by reading billing address information in the event. #

This feature was specified in this Spec.

PaymentRequestEvent.changePaymentMethod()

Enables payment handlers to get the updated total from the merchant in response to a change in payment instrument selected within the payment handler. This fires the PaymentMethodChangeEvent on the merchant website. #

This feature was specified in this Spec.

Resources

Docs: https://github.com/w3c/payment-handler/issues/314

Samples: https://rsolomakhin.github.io/pr/apps/pmc/

Promise.allSettled

Adds Promise.allSettled(), which returns a promise that is fulfilled with an array of promise state snapshots, but only after all the original promises have settled, in other words after it has either fulfilled or rejected. #

This feature was specified in this Spec.

Resources

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

No linked samples

Push API : Allow passing a base64url-encoded value to `applicationServerKey`

The applicationServerKey option is used by the user agent when establishing a push subscription with a push service. This is the key that the application server will use to authenticate itself when sending push messages to this push subscription. Currently, applicationServerKey only supports BufferSource in Chrome. After this change, it can also accept a base64url encoded value. #

This feature was specified in this Spec.

Resources

Docs: https://developer.mozilla.org/en-US/docs/Web/API/PushManager/subscribe

No linked samples

RTCRtpSender.setStreams

Allows changing the association between the track associated with an RTCRtpSender and streams. Stream association causes tracks in the same stream to be synchronized. This is useful, for example, if during a call a user switches from a front-facing camera to a back-facing camera and the application uses RTCRtpSender.replaceTrack(). On the receiving end the new track must be associated with the existing stream and synchronized with its auto track. #

This feature was specified in this Spec.

RTCRtpTransceiver.setCodecPreferences()

Adds the setCodecPreferences() method, which overrides the default codec preferences used by the user agent. This allows applications to disable the negotiation of specific codecs. It also allows an application to cause a remote peer to prefer the codec that appears first in the list for sending. #

This feature was specified in this Spec.

Simpler reading methods for Blob interface

Adds three new methods to the Blob interface to perform read operations: text(), arrayBuffer(), and stream(). #

This feature was specified in this Spec.

Resources

Docs: n/a

No linked samples

The ImageBitmap rendering context for

We are adding ImageBitmapRendererContext as a valid context for OffscreenCanvas. ImageBitmapRenderingContext allows direct transfer of an ImageBitmap to the canvas surface. This is particularly important as a way to render an ImageBitmap to a Canvas from a Worker (without transferring the ImageBitmap to the main thread). This is also currently the spec-defined way to render WebGPU content to the screen. #

This feature was specified in this Spec.

Resources

Docs: https://html.spec.whatwg.org/#the-imagebitmap-rendering-contexthttps://html.spec.whatwg.org/#the-offscreencanvas-interface

No linked samples

Web Authentication API: Resident Keys

Security keys are generally stateless save for a global signature counter. While it’s technically possible to implement a stateful security key, physical tokens generally encrypt their state in a credential ID that is stored on the server of the relying party. Resident keys allow the security key to keep state and thus allow a username-less login experience by just proving a local PIN to the device. Developers can exercise this via the existing Webauthn standard. #

This feature was specified in this Spec.

WebAudio: MediaStreamAudioDestinationNode has no outputs

According to the specification, the MediaStreamAudioDestinationNode in WebAudio should have no outputs. Chrome's implementation has a single output which will be removed. #

This feature was specified in this Spec.

Resources

Docs: https://webaudio.github.io/web-audio-api/#mediastreamaudiodestinationnode

No linked samples

WebRTC RTCSctpTransport

Exposes information about the SCTP transport that is used to carry WebRTC DataChannels such as max-message-size and max channels. #

This feature was specified in this Spec.

Resources

Docs: See spec.

No linked samples

form.requestSubmit()

Adds the form.requestSubmit() function, which requests form submission. It includes interactive constraint validation, dispatches a 'submit' event, and takes a reference to the submitter button. #

This feature was specified in this Spec.

Resources

Docs: https://html.spec.whatwg.org/C/forms.html#dom-form-requestsubmit-dev

No linked samples

white-space: break-spaces

Adds the break-spaces value for the white-space property which specifies that any sequence of preserved white space that would otherwise overflow a line and hang (as per the CSS Text Module spec's Trimming and Positioning rules) must be broken. #

This feature was specified in this Spec.

Resources

Docs: https://developer.mozilla.org/en-US/docs/Web/CSS/white-space

No linked samples

Origin Trials in-progress in 76

This release of Chrome had 1 new origin trials.

Portable Native Client (PNaCl)

Run C/C++ code compiled to bitcode on any web page. The code runs inside the Native Client sandbox and has access to the same capabilities as JavaScript via the Pepper APIs. #

This feature was specified in this Spec.

Flagged features in 76

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

Display alerts for SameSite cookie changes in the developer console

Show alerts in the developer console for “Cookies with SameSite by default” and “Reject insecure SameSite=None cookies” to warn developers of upcoming changes that may require their action. #

This feature was specified in this Spec.

Resources

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

No linked samples

Feature Policy: focus-without-user-activation

A feature policy to restrict the use of programmatic focus, when not triggered by a user activation. The proposed policy provides a way to control access to the focus API without user activation. The immediate use case would be restricting all sandboxed frames. Focus API, in this context refers to focus management API and autofocus. #

This feature was specified in this Spec.

Resources

Docs: Public explainer:https://github.com/w3c/webappsec-feature-policy/pull/304

No linked samples

Pause Worklets and Dedicated Workers Execution on document freeze

Dedicated workers and worklets continue to execute even though documents may be frozen due to the page lifecycle. #

This feature was specified in this Spec.

Resources

Docs: https://github.com/WICG/page-lifecycle/pull/35

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 76

This release of Chrome had 0 features deprecated.

Removed features in 76

This release of Chrome had 3 features removed.

Feature Policy: lazyload

The lazyload feature policy allows developers to selectively control the lazyload attribute on <iframe> and <img> using the Feature-Policy header or the <iframe> "allow" attribute. This provides more control over loading delay for embedded contents and images on a per origin basis. Use this policy to force loading to delayed or non-delayed for your entire website and all or parts of any embedded contents. Use of this policy benefits page load times. #

This feature was specified in this Spec.

Resources

Docs: https://github.com/w3c/webappsec-feature-policy/issues/193

No linked samples

Remove Insecure Usage of DeviceMotionEvent

Chromium has been showing deprecation warnings since 2015 whenever the API is used in a non-secure browsing context. We now conclude the deprecation by restricting the API to secure browsing contexts. This change brings Chromium’s implementations in line with the privacy and security recommendations in the specification, and is aligned with the overarching effort to deprecate powerful features on insecure origins. #

This feature was specified in this Spec.

Remove Insecure Usage of DeviceOrientationEvent

Chromium has been showing deprecation warnings since 2015 whenever the API is used in a non-secure browsing context. We now conclude the deprecation by restricting the API to secure browsing contexts. This change brings Chromium’s implementations in line with the privacy and security recommendations in the specification, and is aligned with the overarching effort to deprecate powerful features on insecure origins. #

This feature was specified in this Spec.