Chrome Release Summary

Chrome version: 151, 150, 149, 148, 147, 146, 145, 144, 143, 142, 141, 140, 139, 138, 137, 136, 135, 134, 133, 132, 131, 130, 129, 128, 127, 126, 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 84

Enabled (15) | Origin Trial (5) | Behind a flag (0) | Deprecated (1) | Removed (2)

Enabled by default in 84

This release of Chrome had 15 new features.

Content Indexing API

Allows websites to register offline enabled content in the browser. This allows the browser to improve the offline experience and allow content browsing when the user is offline. This data could also be used to improve on-device search and to augment browsing history. #

Resources

Docs: https://web.dev/content-indexing-api/

Samples: https://github.com/GoogleChrome/samples/tree/gh-pages/web-sharehttps://contentindex.dev/

Gutters in flexbox: row-gap and column-gap properties

This css property allows you to specify spacing between flex items and/or flex lines. #

This feature was specified in this Spec.

Resources

Docs: https://developer.mozilla.org/en-US/docs/Web/CSS/row-gap

Samples: https://jsbin.com/jibudiyene/edit?html,css,output

JavaScript weak references

Weak references enable JavaScript developers to create weak references to JavaScript objects. Weak references and finalizers help web developers define cleanup routines that don't keep the related objects alive but are (optionally) executed after the related object is garbage-collected. #

This feature was specified in this Spec.

Resources

Docs: https://v8.dev/features/weak-references

Samples: https://v8.dev/features/weak-references

Layout Instability Shifted Element Surfacing

Extends the layout instability API with information about specific DOM element(s) that experienced a shift. #

This feature was specified in this Spec.

Resources

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

No linked samples

Private methods and accessors

Keeping state and behavior private to a class lets library authors present a clear, stable interface, while changing their code over time behind the scenes. The class fields proposal provides private fields for classes and instances, and this proposal builds on that by adding private methods and accessors (getter/setters) to JavaScript. With this proposal, any class element can be private. #

This feature was specified in this Spec.

Resources

Docs: https://docs.google.com/document/d/1T-Ql6HOIH2U_8YjWkwK2rTfywwb7b3Qe8d3jkz72KwA/edit

No linked samples

ReportingObserver on workers

Expose ReportingObserver (https://www.chromestatus.com/feature/4691191559880704) to workers. This has already been specified, but it was exposed only to Window because we didn't need it on workers. As we are introducing new reports reported to workers we need to expose it to Worker too. #

This feature was specified in this Spec.

Resources

Docs: Not needed because the implementation is trivial.

No linked samples

Resize Observer Updates

ResizeObserver is a an existing DOM observer API intended to be used for observing the size of DOM elements. There have been three updates to the spec: * A new ResizeObserverSize type was added * New properties on ResizeObserverEntry, specifically contentBoxSize, borderBoxSize, and devicePixelContentBoxSize * Exposure of new properties as sequences #

This feature was specified in this Spec.

Resources

Docs: https://drafts.csswg.org/resize-observer/

No linked samples

Screen Wake Lock API

An API that allows web applications to request a screen wake lock. Under the right conditions, and if allowed, the screen wake lock prevents the system from turning off a device's screen. #

This feature was specified in this Spec.

Resources

Docs: https://web.dev/wake-lock

Samples: https://reillyeon.github.io/scraps/wakelock.html

Unprefixed 'appearance' CSS property

This feature introduces 'appearance' CSS property, which is the unprefixed version of '-webkit-appearance'. #

This feature was specified in this Spec.

Resources

Docs: https://docs.google.com/document/d/178JUQ6Nx0VnXPeDu_Y_rGDAF-6ZymvmQCa6xJa-13gk/edit?usp=sharing

No linked samples

Unprefixed ruby-position CSS property

The 'ruby-position' CSS property controls the position of ruby annotation. It's the unprefixed version of the '-webkit-ruby-position' property. This property has three possible keywords: 'over', 'under', and 'inter-character'. For now, only the first two are being implemented. This change creates feature parity with Firefox. #

This feature was specified in this Spec.

Resources

Docs: N/A

No linked samples

Web Animations API

Update the web animations JavaScript API to align with the specifications in https://drafts.csswg.org/web-animations-1/. The Animation interface is extended to include support for promises, replaceable animations, and read-only access to the animation timeline. The Animatable and DocumentOrShadowRoot interfaces are expanded to support getAnimations. The KeyframeEffect interface is expanded to support compositing modes, getKeyframes, setKeyframes, and pseudoElement. #

This feature was specified in this Spec.

Resources

Docs: https://drafts.csswg.org/web-animations-1/

Samples: https://birtles.github.io/mozdev2019/https://mozdevs.github.io/Animation-examples/

Web Authenticator API: cross-origin iframe support

Adds support for web authentication calls from cross-origin iframes if enabled by a feature policy. This brings Chrome in line with the Web Authentication level two specification (https://w3c.github.io/webauthn/#sctn-iframe-guidance). #

This feature was specified in this Spec.

Resources

Docs: None. WebAuthn actions will now be permitted when Feature Policy allows it.

No linked samples

WebOTP

The WebOTP API (formerly called the SMS Receiver API) notifies an application when a specially-crafted SMS message is delivered to the user’s phone. The message must be addressed to the application's origin. The application only receives an OTP code in the message. #

This feature was specified in this Spec.

Resources

Docs: https://web.dev/web-otp/

Samples: https://code.sgo.to/tmp/sms.html

fractionalSecondDigits option for Intl.DateTimeFormat

Enhances the Intl.DateTimeFormat API by adding a “ fractionalSecondDigits” option to control the format of fractions of a second. #

This feature was specified in this Spec.

Resources

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

Samples: https://docs.google.com/document/d/1KXbFOzTsfIHXhk0uw8p8WXIHZ1Bm1xMZXahtDOiK40Q/edit#

revert keyword

The 'revert' keyword allows authors to roll back the cascade to the previous cascade level for a given CSS property. For example, on a <div> element, specifying 'display:revert' will cause the computed value of 'display' to be 'block' (assuming no user styles). #

This feature was specified in this Spec.

Resources

Docs: N/A

No linked samples

Origin Trials in-progress in 84

This release of Chrome had 5 new origin trials.

Application Cache

AppCache was standardized in the Offline Web applications section of the HTML specification. The standard is formally referred to as application caches. New Web applications should be built around Service Workers. Existing applications that use AppCache should migrate to Service Workers. AppCache access was removed from insecure origins in M70. This intent addresses AppCache usage in secure origins. #

This feature was specified in this Spec.

Resources

Docs: https://web.dev/appcache-removal/

No linked samples

Origin-keyed agent clusters

Origin-keyed agent clusters allows developers to opt in to giving up certain cross-origin same-site access capabilities — namely synchronous scripting via document.domain, and postMessage()ing WebAssembly.Module instances. This gives the browser more flexibility in implementation technologies. In particular, in Chrome, we will use this as a hint to put the origin in its own process, subject to resource or platform limitations. #

This feature was specified in this Spec.

Resources

No linked docs

Samples: https://origin-agent-cluster-demo.dev/

Portals

This is a proposal for enabling seamless navigations between sites or pages. In particular, this proposal enables a page to show another page as an inset and perform a seamless transition between an inset state and a navigated state. #

This feature was specified in this Spec.

Resources

Docs: https://github.com/WICG/portals#readmehttps://wicg.github.io/portalshttps://docs.google.com/document/d/1ITizGVUmfFGktOOynHFhx87cnJ__7EXy-4uMpOE0OAg/edit?usp=sharing

No linked samples

Private State Token API

This is a new API for propagating user signals across sites, without using cross-site persistent identifiers like third party cookies for anti-fraud purposes. Anti-fraud methods that rely on third party cookies will not work once third party cookies are depreciated. The motivation of this API is to provide means to fight fraud in a world with no third party cookies.  Private State Token API does not generate or define anti-fraud signals. This is up to the corresponding first party and the token issuers. The API enforces limits on the information transferred in these signals for privacy concerns. Private State Token API is based on the Privacy Pass protocol from the IETF working group. It can be considered as a web-exposed form of the Privacy Pass protocols.  Private State Token API spec is to be updated for new versions and types of tokens. The API will be kept up to date with the Privacy Pass working group specs. Expected changes would be in the underlying cryptographic protocols and token issuance code. We do not expect changes in the developer facing fetch API. The Private State Token API was formerly known as the Trust Token API. It is renamed to more accurately capture the underlying semantics and to highlight the privacy benefits to users. #

This feature was specified in this Spec.

Resources

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

No linked samples

WebAssembly SIMD

WebAssembly SIMD will expose hardware SIMD instructions to WebAssembly applications in a platform-independent way. The SIMD proposal introduces a new 128-bit value type that can be used to represent different types of packed data, and several vector operations that operate on packed data. SIMD can boost performance by exploiting data level parallelism and is also useful when compiling native code to WebAssembly #

This feature was specified in this Spec.

Resources

Docs: https://github.com/WebAssembly/simd/tree/master/proposals/simd

No linked samples

Flagged features in 84

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

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 84

This release of Chrome had 1 features deprecated.

Blocking insecure downloads from secure (HTTPS) contexts

Chrome intends to block insecurely-delivered downloads initiated from secure contexts ("mixed content downloads"). Chrome will begin warning on, then blocking, progressively more mixed content downloads until all such downloads are silently blocked. #

Resources

Docs: https://blog.chromium.org/2020/02/protecting-users-from-insecure.htmlhttps://docs.google.com/document/d/1BRvhtleXB91bkTAq4Xde9vzDoLbcwIuaxaSko3eUQ14/edit?usp=sharing

No linked samples

Removed features in 84

This release of Chrome had 2 features removed.

@import rules in CSSStyleSheet.replace()

The original spec for constructable stylesheets allowed for calls to sheet.replace("@import('some.css');"). This use case is being removed - calls to replace() will throw an exception if @import rules are found in the replaced content. The CSS Working Group resolved to remove this feature on Feb 19, 2020: https://github.com/WICG/construct-stylesheets/issues/119#issuecomment-588352418. This feature was deprecated in M83, and will be removed in M84. #

This feature was specified in this Spec.

Resources

Docs: https://github.com/WICG/construct-stylesheets/blob/gh-pages/explainer.md

No linked samples

TLS 1.0 and TLS 1.1

This removal has been delayed in Stable until Chrome 84. TLS 1.0 and 1.1 were deprecated in Chrome 72 with a planned removal in Chrome 81 (in early 2020). Other browsers are also removing support for TLS 1.0 and 1.1 at this time. Previously, we showed a deprecation warning in DevTools. In M-79, Chrome marked affected sites as "Not Secure". In M-84, Chrome will show a full page interstitial warning on sites that do not support TLS 1.2 or higher. In M-98, the error will no longer be bypassable. #

This feature was specified in this Spec.

Resources

Docs: https://security.googleblog.com/2018/10/modernizing-transport-security.htmlhttps://blog.chromium.org/2019/10/chrome-ui-for-deprecating-legacy-tls.html

No linked samples