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 80

Enabled (25) | Origin Trial (2) | Behind a flag (1) | Deprecated (1) | Removed (6)

Enabled by default in 80

This release of Chrome had 25 new features.

"numberingSystem" option for Intl.NumberFormat / "calendar" and "numberingSystem" option for Intl.DateTimeFormat

Allows the calendar and numbering system to be specified in the options object of the DateTimeFormat() and NumberFormat() constructors. #

This feature was specified in this Spec.

Resources

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

No linked samples

AppCache: Resource override scope checking

Manifests previously allowed overriding any URL within a given origin. Scope checking is being introduced to ensure only URLs within a manifest's scope can be overridden. The default manifest scope will be the path to the manifest's enclosing directory. Sites that desire a manifest be given a broader scope can add a response header "X-AppCache-Allowed: /" to manifest responses to preserve the previous behavior. #

This feature was specified in this Spec.

Resources

Docs: This is a security issue with restricted visibility. More details will be available in https://crbug.com/999001 after that bug is disclosed.

No linked samples

Autoupgrade Audio/Video Mixed Content

This feature will autoupgrade optionally-blockable mixed content (HTTP content in HTTPS sites) by rewriting the URL to HTTPS, without a fallback to HTTP if the content is not available over HTTPS. In the first version (targeted for M80) only audio and video content will be upgraded. #

This feature was specified in this Spec.

Resources

Docs: https://docs.google.com/document/d/1dp-kuN25wnEbMPNWBxM8LvOjyeydWpXPklNnGcsWK1o/edit#

No linked samples

Compression Streams

Provides a means of performing gzip and deflate compression from JavaScript using streams. This covers two interfaces: CompressionStream and DecompressionStream. #

This feature was specified in this Spec.

Resources

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

Samples: https://googlechromelabs-unarchiver.glitch.me/

Contacts API

Provides a way for websites to request information about the user’s contact(s) and provides a UI for the user to share those details in a way that makes it clear what is being shared with the website. This could be used for bootstrapping a friends list on a social network or (in an email/messaging application) to select message recipients. #

This feature was specified in this Spec.

Resources

Docs: https://web.dev/contact-picker/

No linked samples

DOMMatrix setTransform/getTransform on OffscreenCanvas

Adds setTransform(DOMMatrix2DInit) and getTransform() to OffscreenCanvasRenderingContext2D. #

This feature was specified in this Spec.

Resources

Docs: N/A

No linked samples

Don't allow popups during page unload

Pages may no longer use the window.open() API to open a new page during its unload. The popup blocker already prohibits this, but now it is prohibited whether or not the popup blocker is enabled. Enterprises used to be able to use the AllowPopupsDuringPageUnload policy flag to allow popups during unload. We removed this flag in Chrome 88. #

This feature was specified in this Spec.

ES Modules for dedicated workers ('module' type option)

JavaScript will support modules in dedicated workers. Using a new value for the constructor's type attribute, worker scripts are loaded as ES modules and the import statement is available on worker contexts. With this feature, web developers can more easily write programs in a composable way and share them among a page and workers. #

This feature was specified in this Spec.

Resources

Docs: https://web.dev/module-workers/

No linked samples

Fetch Metadata Destination header

The `Sec-Fetch-Dest` HTTP request header exposes information about a request's `destination` to servers, which allows them to make better-informed decisions about the implications of serving a given response. https://w3c.github.io/webappsec-fetch-metadata/#intro lays out the motivation. #

This feature was specified in this Spec.

HTMLVideoElement.getVideoPlaybackQuality()

This simple API tells sites how a video playback is performing. When performance is poor, sites may use the information to reduce the video bitrate / framerate / resolution for a better user experience. #

This feature was specified in this Spec.

Resources

Docs: https://developer.mozilla.org/en-US/docs/Web/API/HTMLVideoElement/getVideoPlaybackQuality

No linked samples

JavaScript optional chaining

Provides safe access to descendent object members with parents that may or may not be null. This applies to objects as well as functions. For example, consider an object reference with three levels such as a.b.c. Testing for the existence of c would previously require nesting said test inside a test for b. This change allows you to test for c directly without an error being thrown when b is null. #

This feature was specified in this Spec.

Resources

Docs: https://v8.dev/features/optional-chaininghttps://docs.google.com/document/d/1k7WuOEU6Bi7WwL5sHFLthxS7_jkG3ao3NsbFJ5DNwtQ/edit

No linked samples

Media Capabilities: decoding encrypted media

Adds encrypted media support from the Decoding Information API. Chrome 66 introduced this API (https://www.chromestatus.com/feature/5869632707624960) to answer the question can this device decode this media? The API additionally notes whether the decoding will be smooth (performant) and/or power efficient. This new feature allows authors to ask the same question for encrypted media. #

This feature was specified in this Spec.

Resources

Docs: https://github.com/WICG/media-capabilities/blob/master/explainer.md#encryption

Samples: https://googlechrome.github.io/samples/media-capabilities/decoding-info-eme

New System Color Keywords

Give users the ability to customize their sites with the relevant system colors when in forced colors mode. The keywords being added are ActiveText, Field, and FieldText. ActiveText is for active links. Field is for input field backgrounds. FieldText is for input field text. #

This feature was specified in this Spec.

Resources

Docs: N/A

No linked samples

Nullish coalescing

Adds support for the 'nullish' operator to JS. #

This feature was specified in this Spec.

Periodic Background Sync

Periodic Background Sync is an extension of Background Sync that allows websites to register tasks to be run in a service worker at periodic intervals with network connectivity. #

This feature was specified in this Spec.

Resources

Docs: https://web.dev/periodic-background-sync/

Samples: https://github.com/beverloo/periodic-background-sync#example-codehttps://webplatformapis.com

RTCPeerConnection.setLocalDescription() that implicitly creates the offer or answer

Makes the RTCSessionDescription argument optional for setLocalDescription(). Previously, it required a value returned by createOffer() or createAnswer(). With this change Chromium generates the the offer or answer implicitly when no argument is provided. This avoids possible edge-case races. #

This feature was specified in this Spec.

Resources

Docs: N/A

No linked samples

RTCPeerConnection.setRemoteDescription() with "rollback"

Adds rollback, which is a way to cancel an on-going negotiation. This is needed if two WebRTC endpoints attempt to send an offer at the same time. In this case, one of the endpoints has to cancel its local offer by rolling back so that it can accept the incoming offer. This lets it complete the remote negotiation then create a follow-up offer after it becomes stable. Without it, negotiation cannot complete. #

This feature was specified in this Spec.

Resources

Docs: N/A

No linked samples

Remove 'no-preference' from prefers-color-scheme @media feature

The prefers-color-scheme feature in Media Queries Level 5 supported three values: 'no-preference', 'light', 'dark'. Remove the support for the 'no-preference' value because it has been removed from the specification. #

This feature was specified in this Spec.

Scroll to Text Fragment

This feature allows a user or author to link to a specific portion of a page, using a text snippet provided in the URL. When the page is loaded, the browser highlights the text and scrolls it into view. For example, the URL: [https://en.wikipedia.org/wiki/Cat#:~:text=On%20islands,%20birds%20can%20contribute%20as%20much%20as%2060%%20of%20a%20cat%27s%20diet] This loads the page for Cat, highlights the specified text, and scrolls directly to it. #

This feature was specified in this Spec.

Resources

Docs: https://web.dev/text-fragments/

No linked samples

ServiceWorkerContainer.onmessageerror

Notifies the receiver when a posted message could not be decoded. This is similar to https://www.chromestatus.com/features/5729005244252160 but applies to ServiceWorkerContainer. #

This feature was specified in this Spec.

Support for SVG in favicons

Allows using images in SVG format as favicons with <link rel="icon">. #

This feature was specified in this Spec.

Resources

No linked docs

Samples: http://dahlström.net/svg/favicon/favicon.html

WebAssembly Multi-Value

Add support for WebAssembly functions and blocks that return more than one value. #

This feature was specified in this Spec.

Resources

Docs: https://github.com/WebAssembly/multi-value/blob/master/proposals/multi-value/Overview.md

No linked samples

[Payments] shipping address and contact info delegation

Changes the Payment Handler API, to let the browser delegate handling of shipping address and payer's contact information to Payment Handlers. #

This feature was specified in this Spec.

Resources

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

No linked samples

line-break: anywhere

The 'line-break: anywhere' declaration allows soft wrapping around every typographic character unit, including around any punctuation character or preserved spaces, or in the middles of words. It disregards any prohibition against line breaks, even those introduced by characters with the GL, WJ, or ZWJ character class (see UAX 14) or mandated by the word-break property. #

This feature was specified in this Spec.

Resources

Docs: Not available yet.

No linked samples

overflow-wrap: anywhere

The new value 'anywhere' allows an otherwise unbreakable sequence of characters to be broken at an arbitrary point if there are no otherwise-acceptable break points in a line. Additionally, soft wrap opportunities introduced by 'anywhere' are considered when calculating min-content intrinsic sizes. #

This feature was specified in this Spec.

Resources

Docs: https://drafts.csswg.org/css-text-3/#valdef-overflow-wrap-anywhere

Samples: https://developer.mozilla.org/en-US/docs/Web/CSS/overflow-wraphttps://www.cjcid.com/articles/wrapping-long-words-css-html/

Origin Trials in-progress in 80

This release of Chrome had 2 new origin trials.

CacheStorage Code Cache Hint

This experiment will allow participating sites to provide hints to cache_storage that full code cache should not be generated in a service worker install event. The hint will be communicated as a header on the Response being stored. This is a change to an unspecified optimization in chrome. Full code cache generation during the install event was added in M64. It is only observable indirectly through changes in timing and disk quota usage. #

This feature was specified in this Spec.

Resources

Docs: https://docs.google.com/document/d/1egza-w5KA7-03T5zZtQTwBNWAg2zHxFFoOS2UgMdAh8/edit#

No linked samples

Contacts API Addresses/Icons

Extends the Contacts API (https://www.chromestatus.com/feature/6511327140904960) to support requesting addresses/icons as well. #

This feature was specified in this Spec.

Flagged features in 80

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

Split HTTP auth cache by NetworkIsolationKey

This feature will partition the server entries in the cache using top frame origin (and also possibly the subframe origin) to prevent sites from using this cache to track users across sites. #

This feature was specified in this Spec.

Resources

Docs: N/A

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 80

This release of Chrome had 1 features deprecated.

WebVR v1.1

Added support for virtual reality head mounted displays, such as the Oculus Rift and Google Cardboard. This API being replaced by the WebXR Device API (https://www.chromestatus.com/feature/5680169905815552), which is expected to ship in Chrome 79. The WebVR Origin Trial ended on July 24, 2018. Removal is expected in Chrome 80. #

This feature was specified in this Spec.

Resources

Docs: https://webvr.info/https://developers.google.com/web/fundamentals/vr/https://developers.google.com/web/fundamentals/vr/status/

Samples: https://webvr.info/samples/https://webvrexperiments.com

Removed features in 80

This release of Chrome had 6 features removed.

-webkit-appearance:button for arbitrary elements

Changes -webkit-appearance:button to work only with <button> and <input> buttons. If 'button' is specified for an unsupported element, the element has the default appearance. This is a follow-up of https://chromestatus.com/feature/5070237827334144 #

This feature was specified in this Spec.

Custom Elements V0

Custom Elements v0 is deprecated at M70, and will be removed in M80, by February, 2020. Please see this post for more information: https://developers.google.com/web/updates/2019/07/web-components-time-to-upgrade For the original Intent to Deprecate: https://groups.google.com/a/chromium.org/d/msg/blink-dev/h-JwMiPUnuU/sl79aLoLBQAJ Custom Elements v0 was an experimental technology, never implemented in any other browser. The spec is superseded by Custom Elements v1, which is widely supported. #

This feature was specified in this Spec.

Resources

Docs: https://developers.google.com/web/updates/2019/07/web-components-time-to-upgradehttp://www.html5rocks.com/en/tutorials/webcomponents/customelements/https://developer.mozilla.org/en-US/docs/Web/Web_Components/Custom_Elements

No linked samples

HTML Imports

HTML Imports are deprecated at M70, and will be removed in M80, by February, 2020. Please see this post for more information: https://developers.google.com/web/updates/2019/07/web-components-time-to-upgrade For the original Intent to Deprecate: https://groups.google.com/a/chromium.org/d/msg/blink-dev/h-JwMiPUnuU/sl79aLoLBQAJ HTML Imports was an experimental technology, never implemented in any other browser. The spec is superseded by ES modules, which is widely supported. #

This feature was specified in this Spec.

Resources

Docs: https://developers.google.com/web/updates/2019/07/web-components-time-to-upgradehttp://www.html5rocks.com/tutorials/webcomponents/imports/https://developer.mozilla.org/en-US/docs/Web/Web_Components/HTML_Imports

No linked samples

Non-origin-clean ImageBitmap serialization and transferring

This change raises errors when a script tries to serialize or transfer a non-origin-clean ImageBitmap. A non-origin-clean ImageBitmap is one that contains data from cross cross-origin images that is not verified by CORS logic. #

This feature was specified in this Spec.

Shadow DOM v0

Shadow DOM v0 is deprecated at M70, and removed in M80. All code has been deleted as of M89. Intent to Deprecate: https://groups.google.com/a/chromium.org/d/msg/blink-dev/h-JwMiPUnuU/sl79aLoLBQAJ Shadow DOM v0 was an experimental technology, never implemented in any other browser. The spec is superseded by Shadow DOM v1, which is widely supported. Note that the /deep/ combinator, which was changed to a no-op in M63, has been completely removed in M89. #

This feature was specified in this Spec.

Resources

Docs: https://developers.google.com/web/updates/2019/07/web-components-time-to-upgradehttp://www.html5rocks.com/en/tutorials/webcomponents/shadowdom/https://developer.mozilla.org/en-US/docs/Web/Web_Components/Shadow_DOM

No linked samples

registerProtocolHandler from non-secure contexts

HTML's registerProtocolHandler() gives a webpage a mechanism to register itself to handle a protocol after a user consents. For example, a web-based email application could register to handle the mailto: scheme. A corresponding unregisterProtocolHandler() API allows a site to abandon its protocol-handling registration. #

This feature was specified in this Spec.