Chromium Blog
News and developments from the open source browser project
Chrome 50 Beta: Push notification improvements and declarative preload
Thursday, March 17, 2016
Unless otherwise noted, changes described below apply to the newest Chrome
Beta
channel release for Android, Chrome OS, Linux, Mac, and Windows.
Push notification improvements
Push notifications allow a site to trigger system-level notifications in the same way that native applications do. The initial version of push notifications relied on service workers to proactively fetch the information for a notification from the server
. This led to problems when there were multiple messages in flight or when the device was on a flaky network connection. The latest version of Chrome allows sites to include notification data payloads with their push messages to eliminate the final server check. To protect user privacy, push notification payloads
must be encrypted
.
Push notification payloads
are part of the
Push API spec
and already supported in Firefox.
In addition to payloads, sites can now detect when a
notification is closed by the user
, enabling better analytics and allowing cross-device notification dismissal. Sites can also control the look of notifications more finely, setting custom timestamps and icons for notification actions. When updating a notification, sites can specify whether the device should alert the user with sound or vibration, or remain silent.
In Chrome 50, notification actions support custom icons.
Declarative preload
Sometimes there are
resources needed to fully display a page
that Chrome doesn’t know about until other resources are loaded. For example, a large JavaScript file may require a particular stylesheet, but Chrome doesn’t know to load the CSS until the JavaScript has run. Chrome
now supports
the
<link rel='preload'>
attribute, allowing developers to
specify resources that should be downloaded preemptively
and reducing the time to get meaningful content in front of users.
Chrome 50 (left) loading a page with preload vs. Chrome 49 (right) loading the page without.
Other features in this release
HTMLMediaElement.play()
now returns a promise, allowing
sites to react more easily if automatic playback fails
.
Sites can process the image stored in a
canvas
element
as a blob file
using
HTMLCanvasElement.toBlob()
.
Chrome supports the creation of
ImageBitmap
objects, which can be
quickly and asynchronously written to a
canvas
element
.
Absolute device orientation
can be accessed via
AbsoluteDeviceOrientation
while
DeviceOrientation
now
returns relative values
that don’t use the magnetometer, preventing drift caused by nearby metallic objects when tracking head motion in VR.
The
DOMTokenList
supported tokens
feature now
enables developers to detect sandbox options
or link relations on elements.
The
FormData
object, which allows programmatic creation of web form data, now
allows sites to inspect and modify data in addition to writing values
.
Developers can now use the ES2015
Unicode regex flag
u
, as well as the
regex well-known symbols
@@match
,
@@replace
,
@@search
, and
@@split
, for better control over regular expression matching.
Sites can now buffer audio and video streams without gaps
using the
SourceBuffer.mode
attribute and the
'sequence'
option.
Presentation connections can be
managed more robustly
with
PresentationConnectionCloseEvent
and
PresentationConnectionCloseReason
instead of the deprecated
PresentationConnection.onStateChange
.
Sites can now
control the first focus target
when the user presses tab or shift-tab while nothing is focused.
To improve
Web Animation
spec compliance,
Cancel
events
and
Animation.id
are now supported,
pause()
uses a pause state instead of idle, and dashed-names as keys in keyframes have been deprecated.
Parameter automation of
Web Audio
BiquadFilter
nodes
is now evaluated every sample frame, rather than once every 128 frames, making resonant filter sweeps smoother.
Chrome no longer supports TLS version fallbacks, which allowed attackers to
force all sites to use an older version of TLS
.
Chrome no longer supports geolocation services over non secure connections.
Minor changes
Chrome now supports the
X25519 curve
for TLS, allowing faster, simpler encryption.
-webkit-background-composite
has been removed since it was nonstandard and had low usage.
The
SVGZoomEvent
, which was a no-op in Chrome, has been deprecated to improve
spec
compliance.
The
RTCPeerConnection
methods
createOffer()
and
createAnswer()
have been deprecated to enable promise-based implementations.
<link rel='subresource'>
has been deprecated in favor of
<link rel='preload'>
, as described above.
XMLHTTPRequestProgressEvent
has been removed in favor of
ProgressEvent
to improve spec compliance.
The
Document.defaultCharset
attribute has been removed to improve spec compliance.
KeyboardEvent.prototype.keyLocation
has been removed in favor of
KeyboardEvent.prototype.location
, which is supported across more browsers.
The
SVGElement.offset*
methods have been removed from all elements except
HTMLElement
to improve
spec
compliance.
Posted by Peter Beverloo and Nico
lás Satragno
, Notification Knights
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
.