Unless otherwise noted, changes described below apply to the newest Chrome Beta channel release for Android, Chrome OS, Linux, Mac, and Windows.

Paint Timing API

While no generalized metric perfectly captures when a page is loaded in all cases, First Paint and First Contentful Paint are invaluable numbers to measure critical user moments during loading. To give developers better insight into their site’s loading performance, the new Paint Timing API exposes metrics that capture First Paint and First Contentful Paint.

Stills of a First Paint and First Contentful Paint for Google.com, from “Web Performance: Leveraging the Metrics that Most Affect User Experience” at Google I/O 2017





CSS font-display

Downloadable web fonts are often used to create more visually rich web experiences. Historically, Chrome has delayed rendering text until the specified font is available, to ensure visual correctness. However, downloading a font can take as long as several seconds on a poor connection, significantly delaying the time until a user sees content. Chrome now supports the CSS @font-face descriptor and corresponding font-display property , allowing developers to specify how and when Chrome displays text content while downloading fonts.

Credential Management API improvements

In response to developer feedback and to make the Credential Management API easier to use for all sites, the need for a custom fetch() to access the stored password is now deprecated. Starting in Chrome 60, the user’s password will now be returned directly as part of the PasswordCredential .





In addition, we've made a series of changes to better align with the work being done in the Web Authentication Working Group . This includes the deprecation of requireUserMediation , which has been renamed to preventSilentAccess .





Other features in this release

Deprecations and interoperability improvements

getElementsByTagName() now accepts qualified names in response to an update to the DOM specification .

/deep/ now behaves like the descendant combinator , which is effectively a no-op.

To improve user experience , calls to Navigator.vibrate() now immediately return false if the user hasn't explicitly tapped on the frame or any embedded frame, matching existing behavior for cross-origin iframes .

WEBKIT_KEYFRAME_RULE and WEBKIT_KEYFRAMES_RULE have been removed in favor of the unprefixed standardized APIs, KEYFRAME_RULE and KEYFRAMES_RULE .

Support for non-standard WebKitAnimationEvent and WebKitTransitionEvent has been removed from document.createEvent() .

To better align with spec , NodeIterator.filter and TreeWalker.filter no longer wrap JavaScript objects, and .prototype has been removed from window.NodeFilter .

RTCPeerConnection.getStreamById() is being removed, and a polyfill is recommended as a replacement.

SVGPathElement.getPathSegAtLength() has been deprecated as it has been removed from the SVGPathElement spec.

Headers.prototype.getAll() has been removed from the Fetch API in line with its removal from the spec.



