Chromium Blog
News and developments from the open source browser project
Chrome 59 Beta: Headless Chromium, native notifications on macOS, and service worker navigation preload
Tuesday, May 2, 2017
Unless otherwise noted, changes described below apply to the newest Chrome
Beta
channel release for Android, Chrome OS, Linux, Mac, and Windows.
Headless Chromium
Headless Chromium
allows running Chromium in an
automated environment
without a user interface or peripherals. This enables use cases such as automating unit tests with
Selenium
and converting a web page into a PDF.
Headless Chromium is powered by all the modern web platform features provided by Chromium and Blink. Support is now available on Mac and Linux, with a Windows implementation coming soon.
Native notifications on macOS
Chrome has historically included its own notification system for web and extension developers to send notifications to users. In response to macOS introducing its own rich notification system, many users have asked for the two systems to be integrated.
In Chrome 59, when developers send notifications via the
Notifications API
or
chrome.notifications
, they will be shown directly by the macOS native notification system. This change improves the user experience, but some low-usage API features are now discouraged since they result in a degraded experience on macOS, as documented in the
migration guide
.
Chrome notifications before and after integration with the native notification system.
Service worker navigation preload
The
Service Worker
navigation preload
API enables the browser to
preload navigation requests
while a service worker is starting up. These requests are started before executing the fetch event handler in the service worker intercepting the target URL. This gives the worker access to the
preload
response inside the fetch event handler, allowing the service worker to handle the navigation with minimal delay.
Other features in this release
Developers can now use
MediaError.message
to obtain greater detail about a
MediaError
produced by
<audio>
or
<video>
.
WritableStreams
are now available as part of the
Streams API
for processing streams of data, while providing a standard abstraction for writing streaming data to a sink with built-in
backpressure
and queuing.
The
Streams API
has been expanded with the ability to pipe between
ReadableStreams
and
WritableStreams
via the
pipeTo()
and
pipeThrough()
methods, allowing easier consumption of streaming data.
Developers can now use the
getInstalledRelatedApps
function to smartly consolidate push notifications between related web and native apps by suggesting when and on which platform to offer them.
The
Image Capture API
now allows
sites
to take higher resolution images than before, providing full control over camera settings such as zoom, ISO, and white balance.
To provide enhanced privacy, CSS stylesheets can now specify their own
referrer policy
via the HTTP header, rather than always inheriting the referrer policy of the document that originally referenced it.
To avoid over-prompting users, Chrome will now
temporarily
stop an origin from requesting a permission following the third dismissal of that permission request.
Touch events
are now aligned to
requestAnimationFrame
, ensuring that input is processed as part of the document lifecycle and creating a more efficient and adaptive input response.
The new
worker-src
Content Security Policy directive restricts which URLs may be loaded as a
Worker
,
SharedWorker
, or
ServiceWorker
.
The
Presentation Receiver API
is now available, enabling a web page to be
presented
and developers to interact with the presenting web page.
Deprecations and interoperability improvements
The
<dialog>
element has changed from
display: inline
to
block
by default to better align with the
spec
.
Following
removal
from the
Media Queries
spec, support for
hover: on-demand
and
any-hover: on-demand
media queries have been removed.
To better align with spec and help avoid race conditions,
decodeAudioData
now detaches the given
ArrayBuffer
before decoding, removing all content from the object and making it unable to be reused or examined.
To increase security, Chrome no longers supports requesting notification permission over HTTP.
The
-internal-media-controls-cast-button
CSS selector has been removed in favor of the
Remote Playback API
.
The
-internal-media-controls-text-track-list*
CSS selectors have been removed in favor of custom-built video controls.
The
SVGTests.requiredFeatures
attribute has been deprecated following its removal from the
spec
.
initDeviceMotionEvent()
and
initDeviceOrientationEvent()
were removed in favor of
DeviceOrientationEvent()
and
DeviceMotionEvent()
, following a spec trend of moving away from initialization functions and toward constructors.
To preserve consistency across browsers, the
sample
property will now be included in a
violation
report (and associated
SecurityPolicyViolationEvent
object) if a
report-sample
expression is present in the violated directive.
To increase security, Chrome will now block requests for subresources that contain embedded credentials, and instead handle them as network errors.
To increase security, Chrome will now block requests from HTTP/HTTPS documents to
ftp:
URLs.
To preserve consistency across browsers, injecting JavaScript via AppleScript is longer supported in Chrome for Mac.
The ability to call
Notification.requestPermission()
from non-main frames has been deprecated to align the requirements for notification permission with requirements for push notifications, and ease friction for developers.
Support for Shared Dictionary Compression (SDCH) has been
disabled
until a stable API has been standardized.
Posted by Sami Kyostila, Headless Honcho
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
.