Chromium Blog
News and developments from the open source browser project
Chrome 45 Beta: New ES2015 features, service worker improvements, and media controls
Monday, July 27, 2015
The newest Chrome
Beta
channel release includes new JavaScript language features, an improved audio experience on Android, and a large number of minor API improvements and deprecations. Unless otherwise noted, changes described below apply to Chrome for Android, Windows, Mac, Linux, and Chrome OS.
New ES2015 features
Over the past year Chrome has shipped a number of new JavaScript features defined in the
ES2015
specification (formerly known as ES6), a major update to JavaScript that allows developers to write application logic that is easier to read, more powerful, and more memory efficient than ever before.
Chrome 45 includes a set of
new ES2015 features
including
arrow functions
,
new methods on
Array
,
new methods on
TypedArray
, and
Object.assign()
.
Service worker improvements
Chrome 40 introduced support for
service workers
, enabling developers to build high performance sites that work offline. This release includes a number of improvements:
Developers are now able to
measure their service worker’s performance
using the
User Timing
and
Resource Timing
APIs.
Service workers used exclusively to send
push notifications
are now kept up-to-date correctly and developers can also use the new
update
method to manually trigger an update check.
Sites can now use
getRegistrations()
to access all the service workers whose scope matches the current page.
Finally, in a breaking change, messages sent via
Client.postMessage()
now fire an event on
navigator.serviceWorker
instead of the
window
object.
Media controls in Android notifications
Playback controls for currently-playing audio are shown in the notification tray and on the lock screen
On Android, native apps can show media controls in a system notification when playing audio, making it easy for users to control audio while multitasking. Chrome 45 brings this capability to the web by showing a notification with media controls when audio is playing in web content. The
controls will automatically show up
when
<audio>
or
<video>
tags play audio longer than 5 seconds.
Other updates in this release
Sites
can now customize
the vibration triggered when showing a notification on Android.
Chrome’s implementation of the
Push API
has undergone
several minor breaking changes
to keep up to date with the evolving specification.
Sites using
promoted add to home screen
can now programmatically
control the timing
of the banner.
The
rotationAngle
attribute of
Touch
objects is no longer prefixed, making it easier for sites to
understand the geometry of the user's touch
with cross-browser code.
To improve scroll performance on pages with heavy mouse handlers or
:hover
styles, Chrome
no longer sends mouse position updates
when the user is scrolling with a trackpad or scrollwheel.
Chrome now immediately prefetches all
HTML imports
referenced by a page instead of waiting for scripts included higher in the document to finish executing, improving performance.
Sites can now include 3rd-party resources on their site with reduced security risk by
using a hash to ensure the integrity of 3rd-parties resources
.
To reduce the risk of certain types of attack, the
'self'
source defined by
Content Security Policy
now excludes
blob
and
filesystem
URLs.
The
logjam attack
is fixed in this release by deprecating the use of keys smaller than 1024 bits in Diffie-Hellman key exchanges, which may require developers to
update their server’s TLS configuration
.
To improve cross-browser compatibility and specification compliance,
CSSUnknownRule
and
CSSKeyframesRule.insertRule()
are now deprecated with the latter now replaced by
CSSKeyframesRule.appendRule()
.
Sites using
SMIL
will now trigger
deprecation
warnings in the console, encouraging them to migrate to
CSS Animations
and
Web Animations
.
This release deprecates both
multiple shadow roots
and
shadow-piercing deep selectors
following a unanimous decision by browser vendors at the
Web Components April 2015 meeting
.
The
MediaStream
attributes
label
and
ended
are
now deprecated
in favor of
id
and
active
, while the
stop()
method is deprecated in favor of
MediaStreamTrack.stop()
.
Update: The User Timing and Resource Timing APIs are unfortunately not exposed to service workers in this release, but should be available in Chrome 46.
As always, visit
chromestatus.com/features
for a complete overview of Chrome’s developer features, and circle
+Google Chrome Developers
for more frequent updates.
Posted by Andreas Rossberg, Software Engineer and ECMAScript Evangelizer
Exploring the Physical Web with Chrome for iOS
Wednesday, July 22, 2015
Today’s connected world is full of opportunities for people to digitally interact with their surroundings on the fly. For example, smart parking meters let users pay through the cloud. But for developers, it’s often difficult to build contextual experiences that people can easily access. Even with the prevalence of smartphones, users are reluctant to install an app or even type a URL while on the go.
The
Physical Web
is an open source approach to help you build contextual interactions that people can discover and use with less friction. A few months ago, Chrome for iOS added a
Today widget
to let users open a new tab or do a voice search right from the Notification Center. The new Chrome for iOS integrates the Physical Web into the Chrome Today widget, enabling users to access an on-demand list of web content that is relevant to their surroundings.
It’s easy to make your content discoverable via the Physical Web using Eddystone, an open Bluetooth Low Energy beacon format
announced
last week.
Eddystone
supports multiple frame types for different use cases. The Physical Web displays content that is broadcasted using
Eddystone-URL
, the beacon frame type designed to convey compressed URLs. You can add your content to the Physical Web by simply configuring a
beacon that supports Eddystone-URL
to transmit your URL of choice.
When users who have enabled the Physical Web open the Today view, the Chrome widget scans for broadcasted URLs and displays these results, using estimated proximity of the beacons to rank the content. You can learn more about the types of user experiences that the Physical Web enables by visiting our
cookbook
and joining the open source community on
GitHub
.
The new Chrome for iOS is an early exploration in enabling users to access the Physical Web in their day-to-day mobile experiences. As the ecosystem grows, we’ll continue to explore new ways to bring the Physical Web to users’ fingertips. We’re looking forward to seeing the new contextual experiences you’ll build.
Posted by Jake Leichtling, Physical Web Explorer
Revving up JavaScript performance with TurboFan
Tuesday, July 7, 2015
The JavaScript ecosystem is evolving in several promising ways. There have been mainstream standards advancements like the recent approval of
ECMAScript 2015
, as well as early-stage experiments like
Strong Mode
, to name a few. Balancing the needs of these new directions demands a flexible
just-in-time compiler
, and we've been hard at work on a brand new compiler for V8, codenamed "TurboFan." Since Chrome 41, TurboFan has been enabled for certain types of code, speeding up traditional content as well as improving performance for new language features.
TurboFan was built from the ground up with many unique capabilities in mind. It optimizes more code than the
previous optimizing compiler
, supports flexible and dynamic optimization modes, and enables easier contributions and maintenance. Thanks to these features and more, we've turned on TurboFan for some types of code that were challenging for our previous compiler to optimize, such as
asm.js
, class literals, with scopes, computed property names and for-of loops. TurboFan already shows promising performance results, including a 29% increase on the zlib score of the
Octane benchmark
.
Over the coming months, we expect to enable TurboFan for more and more types of JavaScript, with the eventual goal of entirely replacing our existing CrankShaft compiler. As it rolls out, developers' code will automatically get these free speedups with no changes needed. Stay tuned for future progress.
Posted by Ben L. Titzer, Software Engineer and TurboFan Mechanic
File System Provider API for easier file management
Thursday, June 11, 2015
On Chrome OS, users should be able to work with files in the cloud as easily as they work with local files.
Today, users often have their files spread all over the cloud -- with documents in one place, their photos in another, and videos somewhere else. Working across all of those systems can be a challenge, which is where the
File System Provider API
in Chrome OS can help. With the File System Provider API, users who install your Chrome App can have your Cloud service seamlessly integrated into the Chrome OS Files app. Working with multiple storage backends becomes as easy as dragging and dropping files locally.
As usual, users can install your Chrome app or extension from the Chrome Web Store. Or, they can add new services directly from the Files app. The new file system will then appear directly in the left navigation column. Users can browse this file system anywhere the Files app is shown, including Save as and Open dialogs.
Your extension just needs to call chrome.fileSystemProvider.mount and respond to the listed events. Developers have already created some great apps, including the
Box.com official client
, an
SMB client
, and even a way to browse
TED talks
locally. Check out the
documentation
or join the
mailing list
to stay informed about announcements and API changes.
Posted by Tomasz Mikolajewski, Filesystem Fiend
Chrome 44 Beta: Improvements to Notifications API and promoted add to homescreen
Tuesday, June 2, 2015
The newest Chrome
Beta
channel release includes new ES6 features and a number of updates to existing APIs. Unless otherwise noted, changes described below apply to Chrome for Android, Windows, Mac, Linux and Chrome OS.
Improved notification capabilities
Chrome 42 allowed users to opt in to receive
push notifications
from sites even after the page is closed. Sites may now use
getNotifications
to observe which of their notifications are still being displayed, and
Notification.data
to store a payload with a notification so they can determine which notification was clicked.
Promoted add to homescreen improvements
Since Chrome 42, users who frequently visited a high-quality web app on Android saw a banner allowing them to
add the site to their home screen in one tap
. In this release Chrome fires a
cancellable
beforeinstallprompt
event before the banner is shown, allowing developers to
measure user interaction
with the feature. Developers are also now able to
offer the banner for their native Android app
.
ES6 computed property names
Until now, developers defining a JavaScript
object literal
needed to know the names of all of its properties before runtime. This release increase the expressiveness of the object literal syntax by providing support for
ES6 computed property names
, allowing developers to put an expression in brackets [], to be computed as the property name at runtime.
let propertyName = "foo";
let obj = {
[propertyName + "IsTrue"]: true,
contains: 12
};
Other updates in this release
Chrome’s implementation of the
Push API
has undergone
several minor breaking changes
in order to keep up to date with the evolving specification.
ES6
extended Unicode escape sequences
allow developers to use the extended set of Unicode characters in JavaScript string literals, where previously characters whose escape sequences contain more than four hexadecimal values were unable to be denoted.
This release includes a new implementation of
multi-column layout
by Opera engineer Morten Stenshorne, solving historic issues with incorrect column balancing.
Developers should now use the scroll attributes of
document.scrollingElement
instead of
document.body
as the latter has several
well known issues
.
As always, visit
chromestatus.com/features
for a complete overview of Chrome’s developer features, and circle
+Google Chrome Developers
for more frequent updates.
Posted by Peter Beverloo, Software Engineer and Notification Newsmaker
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
Dec
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
.