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 77

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

Enabled by default in 77

This release of Chrome had 35 new features.

'formdata' event

The 'formdata' event enables any objects to provide form data. It helps avoid creating <input type=hidden> representing application state, or making submittable custom elements. #

This feature was specified in this Spec.

Resources

Docs: https://docs.google.com/document/d/1JO8puctCSpW-ZYGU8lF-h4FWRIDQNDVexzHoOQ2iQmY/edit?usp=sharing

No linked samples

Alternative Text in CSS Generated Content

Currently there is no way to supply alternative text for CSS generated content. This change would allow alternative text to be supplied for elements that get their content from the content property. #

This feature was specified in this Spec.

Resources

Docs: n/a

No linked samples

Automatically lazily load below-the-fold iframes and images for Lite Mode users

Enables deferring the load of below-the-fold iframes and images pages until the user scrolls near them, without requiring actions by web developers. This helps to reduce network data and memory use, and may also increase site speed by prioritizing content that users are viewing. This feature is enabled for Chrome Lite Mode users only. #

This feature was specified in this Spec.

Resources

Docs: https://docs.google.com/document/d/1e8ZbVyUwgIkQMvJma3kKUDg8UUkLRRdANStqKuOIvHg/edit#

No linked samples

Deprecate insecure Web MIDI use

Stop exposing Web MIDI API to insecure origins from Chrome 77. #

This feature was specified in this Spec.

Do not apply hover when mouse does not move

To update the hover state when a page scrolls or changes layout, Blink currently dispatches fake mouse moves based on a timer because the mouse does not move. Unfortunately, every mouse move does a hit test which affects both performance and testing. This change applies the hover effect only when a mouse physically moves, improving performance and eliminating issues created by fake mouse events. #

This feature was specified in this Spec.

Resources

No linked docs

Samples: https://output.jsbin.com/cekolep/quiet/

ElementTiming for img

The ElementTiming API will allow developers to know when certain important image elements are first displayed on the screen. It will also enable analytics providers to measure the display time of images that take up a large fraction of the viewport when they first show up. #

This feature was specified in this Spec.

Resources

Docs: https://docs.google.com/document/d/1blFeMVdqxB0V3BAJh60ptOBFY7cJSXnf7VyW3wspbZ8/edit

No linked samples

ElementTiming for text

The ElementTiming API will allow developers to know when certain important text elements are first displayed on the screen. It will also enable analytics providers to measure the display time of text that takes up a large fraction of the viewport when they first show up. #

This feature was specified in this Spec.

Resources

Docs: https://docs.google.com/document/d/10Tx-NgEnmtDMXxrcWrKpIu6g0JwItiumrI8shC58qKw/edit#

No linked samples

Enter Key Hint

The enterkeyhint content attribute is an enumerated attribute that specifies what action label (or icon) to present for the enter key on virtual keyboards. This allows authors to customize the presentation of the enter key in order to make it more helpful for users. #

This feature was specified in this Spec.

Resources

Docs: https://html.spec.whatwg.org/multipage/interaction.html#input-modalities:-the-enterkeyhint-attribute

Samples: http://output.jsbin.com/mukira

Error serialization

Enables serialization of errors, specifically, DOMException, Error, EvalError, RangeError, ReferenceError, SyntaxError, TypeError, and URIError. An example of where this capability may be used is to pass an Error to a worker using PostMessage(). #

This feature was specified in this Spec.

Resources

Docs: https://github.com/whatwg/html/pull/4665https://github.com/heycam/webidl/pull/732

No linked samples

Feature Policy control over document.domain

The document-domain policy governs access to document.domain. It is enabled by default, and, if disabled, attempting to set document.domain will throw an error. #

This feature was specified in this Spec.

Resources

Docs: https://github.com/WICG/feature-policy/issues/241

No linked samples

First Input Timing

The PerformanceEventTiming interface provides timing information about the latency of the first discrete user interaction, specifically one of key down, mouse down, click, a pointer down followed by a pointer up. (Pointer down may be the start of scrolling, which is not tracked.) This is a subset of the EventTiming API, but will be exposed in advance because it provides key metrics to help measure and optimize responsiveness. #

This feature was specified in this Spec.

Form-associated custom elements

Form-associated custom elements enable web authors to define and create custom elements which participate in form submission. #

This feature was specified in this Spec.

Resources

Docs: https://docs.google.com/document/d/1JO8puctCSpW-ZYGU8lF-h4FWRIDQNDVexzHoOQ2iQmY/edit?pli=1#heading=h.2hgix04sc53t

No linked samples

Intervention: ignore input events targeting recently-moved iframes.

To prevent unintended clicks/taps, quietly discard input events that target cross-origin iframes that have recently resized or moved a non-trivial distance within the embedding page's viewport. The shipped version limits the intervention to cross-origin iframes that are using the V2 feature set of IntersectionObserver (https://github.com/w3c/IntersectionObserver/tree/v2). #

This feature was specified in this Spec.

Resources

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

No linked samples

Intl.NumberFormat Unified API Proposal

This feature improves Intl.NumberFormat by adding support for measurement units, currency and sign display policies, and scientific and compact notation. #

This feature was specified in this Spec.

Resources

Docs: https://goo.gl/ZAtL1f

Samples: https://github.com/tc39/proposal-unified-intl-numberformat

Largest contentful paint

Largest Contentful Paint (LCP) is a new page load metric available as a performance API, which describes page speed as the speed of delivering the largest contentful element to the screen. It is the high-level metric (where Element Timing is its low-level primitive) aiming to provide a meaningful result even for developers who don't annotate their sites. #

This feature was specified in this Spec.

Resources

Docs: https://github.com/WICG/LargestContentfulPaint

No linked samples

Layout Instability Monitoring

Adds the LayoutShift interface to the Performance API, allowing developers to monitor changes to a DOM element's on-screen position. #

This feature was specified in this Spec.

Resources

Docs: https://github.com/WICG/layout-instability/blob/master/README.md

No linked samples

Lazily load iframes and images via ‘loading’ attribute

Support the ‘loading’ attribute, which can be used to defer the load of below-the-fold iframes and images on the page until the user scrolls near them. This is to reduce data usage, memory usage, and to speed up above-the-fold content. Web developers can opt-in to lazy load by specifying loading=lazy on <iframe> and <img> elements. #

This feature was specified in this Spec.

Resources

Docs: https://docs.google.com/document/d/1e8ZbVyUwgIkQMvJma3kKUDg8UUkLRRdANStqKuOIvHg/edithttps://docs.google.com/document/d/1ITh7UqhmfirprVtjEtpfhga5Qyfoh78UkRmW8r3CntM/edithttps://docs.google.com/document/d/1jF1eSOhqTEt0L1WBCccGwH9chxLd9d1Ez0zo11obj14/edit

Samples: https://scalable-loading-contribs.firebaseapp.com/test.htmlhttps://mathiasbynens.be/demo/img-loading-lazy

Limit `Referer` header's length to 4k

Strips the Referer header down to an origin when it's size exceeds 4k. #

This feature was specified in this Spec.

Resources

Docs: https://github.com/whatwg/fetch/issues/903

No linked samples

Limit registerProtocolHandler() url argument to http/https

Limits registerProtocolHandler() to only accept URLs with http or https schemas. Because the intent of the API is to allow and endpoint to handle something like an SMS message, for example, it doesn't make much sense for handlers to be data URLs, blob URLs, or whatever. #

This feature was specified in this Spec.

Resources

Docs: https://developer.mozilla.org/en-US/docs/Web/API/Navigator/registerProtocolHandler

No linked samples

New TextMetrics object in canvas

The implementation of an extended API of text metrics started in 2014: https://groups.google.com/a/chromium.org/d/msg/blink-dev/SgofW_bQ3ps/jNYamQHplAMJ But was never shipped, and had multiple undefined values that were not addressed for years. The spec has now evolved and we intend to ship actualBoundingBoxLeft, actualBoundingBoxRight, actualBoundingBoxAscent and actualBoundingBoxDescent according to the current spec: https://html.spec.whatwg.org/multipage/canvas.html#textmetrics #

This feature was specified in this Spec.

Overscroll Behavior logical longhands

Adds CSS flow-relative properties for controlling overscroll behavior through logical dimensions. flow-relative properties are those that are interpreted relative to the flow of content. The new properties are overscroll-behavior-inline and overscroll-behavior-block. #

This feature was specified in this Spec.

Resources

Docs: https://drafts.csswg.org/css-overscroll-behavior-1/#overscroll-behavior-longhands-logical

No linked samples

Partition the HTTP Cache

Splits the HTTP cache using the top frame site and subframe site (where site = scheme://etld+1) to prevent documents from one site from knowing whether a resource from another site was cached. The HTTP cache is currently one per profile, with a single namespace for all resources and subresources regardless of origin or renderer process. Splitting the cache on top frame site helps the browser deflect side-channel attacks where one site can detect resources in another site’s cache. #

This feature was specified in this Spec.

Resources

Docs: https://docs.google.com/document/d/1U5zqfaJCFj_URrAmSxJ0C7z0AilLLJ30lgAqShVWnck/edit?usp=sharinghttps://docs.google.com/document/d/1XJMm89oyd4lJ-LDQuy0CudzBn1TaK0pE-acnfJ-A4vk/edit?usp=sharing

No linked samples

PerformanceObserverInit buffered flag

Adds a buffered flag to observer.observe() so that PerformanceObserver can receive entries created before the call is executed. #

This feature was specified in this Spec.

Resources

Docs: N/A

No linked samples

PointerEvent.getPredictedEvents()

Adds a method that returns a few predicted pointer move events. This enables apps such as drawing apps for example to draw a predicted line, reducing apparent latency for the user. #

This feature was specified in this Spec.

Resources

Docs: https://docs.google.com/document/d/15NKd4s5BSEPXQZ1IJnm9zNzz7hltIRw0YOMlN5WoOzA/

Samples: https://tests.eirage.com/Prediction/PredictionTest.htmlhttps://tests.eirage.com/Prediction/PredictionDemo.html

Pointerrawupdate

Send pointerrawupdate events for move events as soon as they happen as oppose to pointermove events which are being rAF-aligned and hence may add half a frame of latency on average from when they happened until they are delivered to the javascript. #

This feature was specified in this Spec.

Precise src: local() matching in CSS @font-faces by PostScript and Full Font Name

Precisely match locally installed fonts by PostScript name or full font name, when used in a local() value to a src: descriptor in a @font-face declaration. This means, you can precisely and uniquely select local fonts by specifying their PostScript name or full font name. Previously Blink had implemented this incorrectly and was using the specified font name to perform a family match. #

This feature was specified in this Spec.

Resources

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

No linked samples

Preserve request priorities through service worker

Preserves a request’s original priority when it passes through a service worker. Previously, all requests going through a service worker would get "High" priority. This means render-blocking style sheets would have their priority clamped, while less-important resources would get boosted. The priority of network requests can be seen in the DevTools network tab. Render-blocking resources such as style sheets have "Highest" priority, while resources like async scripts have "Low" priority. #

This feature was specified in this Spec.

RTCPeerConnection.onicecandidateerror

Adds the incecandidateerror event which provides detailed information about WebRTC ICE candidate gathering failures, including the ones defined by STUN (RFC5389) and TURN (RFC5766). #

This feature was specified in this Spec.

Resources

Docs: https://www.w3.org/TR/webrtc/#dom-rtcpeerconnectioniceerrorevent

No linked samples

RTCPeerConnection.restartIce()

Adds a method for triggering an ICE restart which causes a WebRTC connection to try to reconnect. This feature is already available in Chrome by passing the {iceRestart:true} argument to createOffer(). restartIce() is a version of this method that works regardless of signalingState. #

This feature was specified in this Spec.

Resources

Docs: N/A

No linked samples

Service workers support basic HTTP authentication

Displays HTTP authentication dialog boxes even if the request was from a service worker. This shows the native login dialog shown when an HTTP 401 response is received. Note: this requires the network service to be enabled, which is enabled by default on most platforms. #

This feature was specified in this Spec.

Stop action for Media Session

Adds support for the "stop" action to the MediaSession interface. An action is an event tied specifically to a common media function such as pause or play. The "stop" action handler is called when the site should stop the playback and clear the state if appropriate. #

This feature was specified in this Spec.

Resources

Docs: https://wicg.github.io/mediasession/#dom-mediasessionaction-stop

Samples: https://googlechrome.github.io/samples/media-session/video.htmlhttps://googlechrome.github.io/samples/media-session/audio.html

Support SRI verification on link preloads (script and style)

Add sub resource integrity verification to link preloads so that resources with an integrity attribute can be preloaded with causing a double download. This feature honors the integrity attribute on link preloads for the as=script and as=style destinations. #

This feature was specified in this Spec.

Resources

Docs: https://docs.google.com/document/d/1l8y_T3z-nb0smR9EVoZ3TeEI6rGzLw74vvzWzODsnDQhttps://docs.google.com/document/d/1Mv-Y18leB5kNc6GshVRx2NEZmLu7WGlnQ6OZ5Oj5vgA

No linked samples

Support step timing functions jump-start|end|both|none

The step timing functions jump-both, jump-none, jump-start and jump-end were introduced to the spec for easing functions in 2018. Two of these (jump-start and jump-end) are aliases for start and end. The remaining two provide increased flexibility for step transitions by enabling step functions in which both or neither endpoint has a discontinuous step. Previously, one and only one of the two endpoints could have a step discontinuity. #

This feature was specified in this Spec.

Resources

Docs: https://drafts.csswg.org/css-easing-1/#step-easing-functions

Samples: https://wpt.fyi/results/web-animations/timing-model/time-transformations/transformed-progress.htmlhttps://wpt.fyi/results/css/css-transitionshttps://wpt.fyi/results/css/css-easing

Throw on invalid "basic-card" data

PaymentRequest constructor throws a TypeError when invalid "supportedNetworks" or "supportedTypes" are specified for "basic-card" payment. #

This feature was specified in this Spec.

tab-size supports css value type

Adds support for <number> css value type to the CSS property tab-size, which determines the tab size used to render preserved tab characters. 'tab-size' accepts an <integer> or a <number> as its value type, and represents the measure as a real-number multiple of the space character’s advance width, in addition to its integer multiple. #

This feature was specified in this Spec.

Origin Trials in-progress in 77

This release of Chrome had 1 new origin trials.

WebXR Plane Detection API

The feature allows WebXR applications to retrieve data about planes (flat surfaces) present in the user’s environment. This enables AR applications to create a more immersive experiences through the obtained information. #

This feature was specified in this Spec.

Resources

Docs: https://github.com/immersive-web/real-world-geometry/blob/master/plane-detection-explainer.md

Samples: https://storage.googleapis.com/chromium-webxr-test/latest.html?target=proposals/phone-ar-plane-detection-anchors.html

Flagged features in 77

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

Add frozen or active lifecycleState to ServiceWorker Client

Exposes the client's PageLifecycle state on the ServiceWorker Client API. #

This feature was specified in this Spec.

Resources

Docs: https://github.com/w3c/ServiceWorker/pull/1442

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 77

This release of Chrome had 0 features deprecated.

Removed features in 77

This release of Chrome had 1 features removed.

Card issuer networks as payment method names

Support for calling PaymentRequest with card issuer networks (e.g., "visa", "amex", "mastercard") in the supportedMethods field. #

This feature was specified in this Spec.