Chromium Blog
News and developments from the open source browser project
Chrome 60 Beta: Paint Timing API, CSS font-display, and Credential Management API improvements
Tuesday, June 13, 2017
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
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,
pointermove
and
mousemove
events are now delivered once per
AnimationFrame
, matching the current functionality of
scroll
and
TouchEvents
.
The
:focus-within
CSS pseudo-class is now available,
affecting
any
element
the
:focus
pseudo-class affects, as well as any element with a descendant affected by
:focus
.
The
CSS frames 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 APIs
, enabling 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 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.
Posted by Shubhie Panicker, Paint Timing Promoter
Labels
$200K
1
10th birthday
4
abusive ads
1
abusive notifications
2
accessibility
3
ad blockers
1
ad blocking
2
advanced capabilities
1
android
2
anti abuse
1
anti-deception
1
background periodic sync
1
badging
1
benchmarks
1
beta
83
better ads standards
1
billing
1
birthday
4
blink
2
browser
2
browser interoperability
1
bundles
1
capabilities
6
capable web
1
cds
1
cds18
2
cds2018
1
chrome
35
chrome 81
1
chrome 83
2
chrome 84
2
chrome ads
1
chrome apps
5
Chrome dev
1
chrome dev summit
1
chrome dev summit 2018
1
chrome dev summit 2019
1
chrome developer
1
Chrome Developer Center
1
chrome developer summit
1
chrome devtools
1
Chrome extension
1
chrome extensions
3
Chrome Frame
1
Chrome lite
1
Chrome on Android
2
chrome on ios
1
Chrome on Mac
1
Chrome OS
1
chrome privacy
4
chrome releases
1
chrome security
10
chrome web store
32
chromedevtools
1
chromeframe
3
chromeos
4
chromeos.dev
1
chromium
9
cloud print
1
coalition
1
coalition for better ads
1
contact picker
1
content indexing
1
cookies
1
core web vitals
2
csrf
1
css
1
cumulative layout shift
1
custom tabs
1
dart
8
dashboard
1
Data Saver
3
Data saver desktop extension
1
day 2
1
deceptive installation
1
declarative net request api
1
design
2
developer dashboard
1
Developer Program Policy
2
developer website
1
devtools
13
digital event
1
discoverability
1
DNS-over-HTTPS
4
DoH
4
emoji
1
emscriptem
1
enterprise
1
extensions
27
Fast badging
1
faster web
1
features
1
feedback
2
field data
1
first input delay
1
Follow
1
fonts
1
form controls
1
frameworks
1
fugu
2
fund
1
funding
1
gdd
1
google earth
1
google event
1
google io 2019
1
google web developer
1
googlechrome
12
harmful ads
1
html5
11
HTTP/3
1
HTTPS
4
iframes
1
images
1
incognito
1
insecure forms
1
intent to explain
1
ios
1
ios Chrome
1
issue tracker
3
jank
1
javascript
5
lab data
1
labelling
1
largest contentful paint
1
launch
1
lazy-loading
1
lighthouse
2
linux
2
Lite Mode
2
Lite pages
1
loading interventions
1
loading optimizations
1
lock icon
1
long-tail
1
mac
1
manifest v3
2
metrics
2
microsoft edge
1
mixed forms
1
mobile
2
na
1
native client
8
native file system
1
New Features
5
notifications
1
octane
1
open web
4
origin trials
2
pagespeed insights
1
pagespeedinsights
1
passwords
1
payment handler
1
payment request
1
payments
2
performance
20
performance tools
1
permission UI
1
permissions
1
play store
1
portals
3
prefetching
1
privacy
2
privacy sandbox
4
private prefetch proxy
1
profile guided optimization
1
progressive web apps
2
Project Strobe
1
protection
1
pwa
1
QUIC
1
quieter permissions
1
releases
3
removals
1
rlz
1
root program
1
safe browsing
2
Secure DNS
2
security
36
site isolation
1
slow loading
1
sms receiver
1
spam policy
1
spdy
2
spectre
1
speed
4
ssl
2
store listing
1
strobe
2
subscription pages
1
suspicious site reporter extension
1
TCP
1
the fast and the curious
23
TLS
1
tools
1
tracing
1
transparency
1
trusted web activities
1
twa
2
user agent string
1
user data policy
1
v8
6
video
2
wasm
1
web
1
web apps
1
web assembly
2
web developers
1
web intents
1
web packaging
1
web payments
1
web platform
1
web request api
1
web vitals
1
web.dev
1
web.dev live
1
webapi
1
webassembly
1
webaudio
3
webgl
7
webkit
5
WebM
1
webmaster
1
webp
5
webrtc
6
websockets
5
webtiming
1
writable-files
1
yerba beuna center for the arts
1
Archive
2024
Aug
Jun
May
Apr
Mar
Feb
2023
Nov
Oct
Sep
Aug
Jun
May
Apr
Feb
2022
Dec
Sep
Aug
Jun
May
Apr
Mar
Feb
Jan
2021
Dec
Nov
Oct
Sep
Aug
Jul
Jun
May
Apr
Mar
Feb
Jan
2020
Dec
Nov
Oct
Sep
Aug
Jul
Jun
May
Apr
Mar
Feb
Jan
2019
Dec
Nov
Oct
Sep
Aug
Jul
Jun
May
Apr
Mar
Feb
Jan
2018
Dec
Nov
Oct
Sep
Aug
Jul
Jun
May
Apr
Mar
Feb
Jan
2017
Dec
Nov
Oct
Sep
Aug
Jul
Jun
May
Apr
Mar
Feb
Jan
2016
Dec
Nov
Oct
Sep
Aug
Jun
May
Apr
Mar
Feb
Jan
2015
Dec
Nov
Oct
Sep
Aug
Jul
Jun
May
Apr
Mar
Feb
Jan
2014
Dec
Nov
Oct
Sep
Aug
Jul
Jun
May
Apr
Mar
Feb
Jan
2013
Dec
Nov
Oct
Sep
Aug
Jul
Jun
May
Apr
Mar
Feb
Jan
2012
Dec
Nov
Oct
Sep
Aug
Jul
Jun
May
Apr
Mar
Feb
Jan
2011
Dec
Nov
Oct
Sep
Aug
Jul
Jun
May
Apr
Mar
Feb
Jan
2010
Dec
Nov
Oct
Sep
Aug
Jul
Jun
May
Apr
Mar
Feb
Jan
2009
Dec
Nov
Sep
Aug
Jul
Jun
May
Apr
Mar
Feb
Jan
2008
Dec
Nov
Oct
Sep
Feed
Follow @ChromiumDev
Give us feedback in our
Product Forums
.