Download Google Chrome 60.0.3112.78
Google has released version 60 of its Chrome web browser. Google Chrome is available for Windows, Linux and macOS. There are also versions for Android and iOS, but they follow a slightly different release schedule. Since version 50, support for older versions of Windows and macOS has been dropped. Version 60 includes improvements to the credentials manager and there is a new api that can provide insight into how fast a page is rendered. The most important improvements in version 60 are listed for you below.
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.
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 propertyallowing 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
- the Payment Request API is now supported on desktop versions of Chrome.
- Sites can now collect payments through native Android payment apps using the Payment Request API.
- Object rest & spread properties are now supported, making it simpler to merge and shallow-clone objects and implement various immutable object patterns.
- The new Web Budget API enables sites with the Push Notification permission to send a limited number of push messages that trigger background work such as syncing data or dismissing notifications the user has handled on another device, without the need to show a user-visible notification.
- The new Web Push Encryption format is now supported and PushManager.supportedContentEncodings can be used to detect where it can be used.
- PushSubscription.expirationTime is now available, notifying sites when and if a subscription will expire.
- To improve performance and predictability, pointer move and mouse move events are now delivered once per AnimationFrame, matching the current functionality of scroll and TouchEvents.
- The :focus-within CSS pseudo-class is now available, affect any element the :focus pseudo-class affects, as well as any element with a descendant affected by :focus.
- the CSS frame timing function is now available, making it useful for animation loops where the animation should display all frames for exactly the same length, including its first and last frames.
- To provide an enriched way to capture editing actions, InputEvent now allows user input to be managed by script, enhancing the details provided to editable elements.
- To increase security, a BeforeUnload dialog triggered when the user leaves a site will now only be shown if the frame attempting to display it has ever received a user gesture or user interaction, though the BeforeUnloadEvent will still be dispatched regardless.
- VP9, an open and royalty-free video coding format, can now be used with the MP4 (ISO BMFF) container and requires the new VP9 string format mentioned below.
- A new VP9 string format is now available and accepted by various media related APIsenabling developers to describe the encoding properties that are common in video codecs, but are not yet exposed.
Deprecations and interoperability improvements
- getElementsByTagName() now accepts qualified names in response to an update to the DOM specification.
- /deep/ now behaves like the descendant combinerwhich is effectively a no-op.
- to improve user experiencecalls 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 specNodeIterator.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.