Chromium Blog
News and developments from the open source browser project
Chrome Dev Summit 2015: That’s a wrap!
Wednesday, November 18, 2015
Posted by Darin Fisher, VP Engineering, Chrome
The last sessions of the Chrome Dev Summit 2015 are coming to a close, so it’s the perfect time to reflect on the event. We started our annual summit back in 2012, where we first introduced Chrome on Android. Today, there are more than 800 million monthly active users on Chrome for Android.
The greatest power of the Web is in its reach—not just across devices and operating systems, but in reaching users. Top mobile web properties are seeing
2.5 times the number
of monthly unique visitors compared to the top mobile apps, and mobile web reach is growing at more than twice the rate of mobile app reach. This reach offers a unique opportunity to engage with more users.
We believe this is a pivotal moment for the web platform, as early adopters of a set of key enabling technologies and tools are seeing success.
During the
keynote
, we covered the evolution of the mobile platform and the shift towards “
progressive web apps
,” which are fast, robust, app-like experiences built using modern web capabilities. The web has come a long way, and building immersive apps with web technology on mobile no longer requires giving up properties of the web you’ve come to love. Flipkart’s new mobile web experience is a great example of a progressive web app that uses the new capabilities to provide a next-generation user experience.
In practice, progressive web apps have three main aspects that separate them from traditional websites: reliability, performance, and engagement.
Reliability
Every web app should load quickly, regardless of whether a user is connected to fast Wi-Fi, a 2G cell network, or no connection at all. We envision
service workers
as the ideal way for developers to build web apps that are resilient despite changing and unreliable networks. We've released two
libraries
to help take the work out of writing your own service worker:
sw-precache
and
sw-toolbox
for your App Shell and dynamic content, respectively. Once your implementation is up and running, you can easily test it on different network connections using
Chrome DevTools
and
WebPageTest
. Service workers are already seeing great adoption by developers: there are currently 2.2 billion page loads a day using service workers, not counting its use in the New Tab page in Chrome.
Performance
The
RAIL
performance model helps you figure out what a user expects from each interaction with your site or app, breaking down performance into four key goals:
Responses (tap to response) should be less than 100ms
Animations (scrolling, gestures, and transitions) should run at 60 frames per second
Idle time should be used to opportunistically schedule non-essential work in 50ms chunks
Loading should be finished in under 1 second
In practice, we've found improving even just one area of RAIL performance can make a dramatic difference on the user experience. For example, a one second difference in loading time can have as much as an
11% impact on overall page views and a 16% impact on customer satisfaction
.
Engagement
Traditionally, users have had a hard time re-engaging with sites on the web.
Push notifications
enable you to build experiences that users can engage with "outside of the tab"--they don’t need to have the browser open, or even be actively using your web app, in order to engage with your experience. Best of all, these notifications appear just like other
app notifications
. Currently we’re seeing over 350 million push notifications sent every day in Chrome, and it’s growing quickly. Beyond the Rack
has found
that users arriving to their site by push notifications browse 72% longer than average users and spend 26% more.
Tools for Success
Finally, Google is committed to making web developers successful. As our generalized library for building components on the web,
Polymer
is also deeply focused on helping developers achieve RAIL. Since its 1.0 release at Google I/O earlier this year, it has grown to be used on over 1 million web pages, including more than 300 projects within Google. Polymer 1.0 was 3 to 4 times faster than the previous 0.5 version, and the latest 1.2 release is even 20% faster than that. To get started with this modern way of thinking about web development, take a
quick tour of Polymer
, watch the
Polymer Summit talks
, check out the
Polymer codelabs
,
or try the
Polymer Starter Kit
.
We already have great resources like
Web Fundamentals
that we continue to expand and improve. We’re also committed to documenting each new feature we ship on the
Mozilla Developer Network
. In the past year alone, we’ve made 2,800 individual edits to MDN and created 212 new pages. To further our commitment to educating web developers, we’ve partnered with Udacity to offer a
senior web nanodegree
, an education credential focused on modern web technologies and techniques like service workers, Promises, HTTP/2 and more.
For all the details on Chrome Dev Summit 2015, you can watch
full session videos
, which we will continue to upload as they’re ready. Thanks for coming, thanks for watching, and most of all, thank you for developing for the web!
Chrome 47 Beta: Idle time work, splash screens, and desktop notification management
Thursday, October 22, 2015
The newest Chrome
Beta
channel release includes support for cooperative multitasking, splash screens for sites added to home screen, flexible desktop notifications, security fixes, and more. Unless otherwise noted, changes described below apply to Chrome for Android, Chrome OS, Linux, Mac, and Windows.
Splash screens on Android
Mobile devices are typically less powerful than desktops, meaning apps can take a few seconds to load. Splash screens allow apps to show something meaningful to users as the app loads, improving perceived performance. The new version of Chrome for Android
brings splash screens to web apps
when a site is launched from the Android home screen. The splash screen is shown immediately, even while Chrome itself is loading. Developers can customize the splash screen by setting a name, icon, background color, and notification bar color in the
web app manifest
. The splash screen disappears once the web app begins to draw to the screen, providing a more polished loading experience.
Cooperative multitasking with requestIdleCallback()
To achieve a screen refresh rate of 60 frames per second, developers must guess when performance-critical tasks like rendering will finish and use timers to schedule around them. Unfortunately, developers can’t guarantee that low priority work won’t hurt performance because events like scrolling cannot be predicted. Now developers can explicitly
set work to run during idle time
using requestIdleCallback(). Functions registered with requestIdleCallback() are given a deadline and can return before that limit is reached to avoid jank. The function can register for another requestIdleCallback() to continue work during the next idle period.
Auto dismissing notifications
Push notifications have been enabled by
service workers
since
Chrome 42
. Sites such as social media or email can generate a large number of push notifications that take up screen space and aren’t particularly relevant unless viewed soon after posting. The new version of Chrome now allows developers to
configure automatic dismissal
of desktop notifications, improving the experience for these kinds of notifications. Sites can set
NotificationOptions.requireInteraction
to indicate the notification should remain onscreen until the user dismisses it.
Other updates in this release
Array.prototype.includes()
simplifies the
syntax for checking array membership
.
The
rest parameters syntax
allows functions with an indefinite number of arguments to be
called using arrays
.
Cache.matchAll()
simplifies
bulk searching
of the cache and removes the need for polyfills.
RequestInit.referrer
allows requests captured by service workers to match the original referrer.
The new
Navigator.MediaDevices
interface allows developers to
enumerate connected media devices
such as audio output.
Updated values
for request properties in navigation
FetchEvents
offer improved spec compliance.
MouseEvent.getModifierState()
makes input processing more powerful and consistent across
MouseEvent
and
KeyboardEvent
.
Developers can now more accurately
detect input device capabilities
using
UIEvent.sourceCapabilities
and
InputDeviceCapabilities.firesTouchEvents
.
Several SVG methods have been removed, including
pixel conversions
and
hasExtension()
methods on several elements.
Prefixed encrypted media extensions are now disabled
in favor of
unprefixed EMEs
, which have more capabilities and conform to the
spec
.
Chrome
no longer highlights the gaps between content
when painting selections.
The notification center has been
removed from Windows, Mac, and Linux
to keep Chrome simpler.
Posted by Ross McIlroy, Scheduling Samurai
Streamlining Notifications on Desktop
Wednesday, October 14, 2015
This past spring, Chrome began supporting
push notifications
for web pages via the emerging
web push standard
. However, notifications in Chrome aren’t new; Chrome apps and extensions have
supported push notifications on desktop
since 2010. In some cases, these desktop notifications would appear while users were gone, so in 2013 Chrome launched the
notification center
, a place for users to find notifications from Chrome apps and extensions that they’d missed.
However, in practice, few users visit the notification center. To keep Chrome simple, it will be removed from Windows, Mac, and Linux in the upcoming release. The notification center on Chrome OS will remain unchanged.
The new
notifications documentation
reflects changes that will affect Chrome app and extension developers who send notifications to the center. Notifications sent solely to the notification center will now result in an error, and API events tied to the center will no longer fire. All other notifications will continue to work without requiring any changes.
With the growth of web push, notifications are an increasingly important way for users to engage with web pages they care about. By streamlining the experience on desktop, Chrome can ensure a simple notification experience on every platform.
Posted by Justin DeWitt, Software Engineer
Replying to reviews in the Chrome Web Store
Thursday, October 1, 2015
When we launched the Chrome Web Store
Support Tab
in 2012, our goal was to provide a communication channel that would enable you to have an open discussion with the users of your apps and extensions. Developers like you have reported that the tool has helped identify bugs faster, obtain ideas for new features, and prioritize work based on user impact. But we’ve also seen that many users continue to leave their feedback in the form of comments under the Reviews tab. Until now, the Web Store has not provided an option to respond to these comments, which has had the effect of leaving many users’ bug reports and feature suggestions unanswered
,
even after the issues have been addressed.
Today, we’re providing both you and your users the ability to reply to comments in the Reviews tab, in order to ensure that you can openly and clearly communicate about
all
relevant feedback.
To strengthen relationships with your users and ensure that the Reviews tab provides accurate information about your product, we recommend that you begin closely monitoring user reviews for bug reports and feature suggestions. Be sure to reply constructively to both negative and positive reviews, notify users when you have addressed their feedback, and thank the users who are your biggest advocates.
Before replying to user reviews, please read the
commenting guidelines
to ensure that your use of this feature is compliant with Chrome Web Store policies. Also remember that when posting reviews, your name and Google account will be shown publicly so that prospective users can see that you consistently provide high quality customer support. Head over to your reviews tab and start connecting with users today!
Posted by James Wagner, Product Lead and Reviews Wrangle
r
Chrome 46 Beta: Flexible animations and improved loading performance
Wednesday, September 2, 2015
The newest Chrome
Beta
channel release includes new CSS animation features, improved performance controls, and a large number of API tweaks.
Unless otherwise noted, changes described below apply to Chrome for Android, Windows, Mac, Linux, and Chrome OS.
Animating objects along author specified paths
Previously, animating objects along an author-specified path required complex javascript code that could block important events like rendering and input. Developers can now
animate any graphical object along an arbitrary path
declaratively as a
CSS property
, allowing simpler code that doesn’t block rendering or input.
Complex animations using CSS
Optimized image loading and service worker instrumentation
Tools like srcset allow developers to serve an optimized image variant in a responsive way, but it can be cumbersome and inefficient to use in practice. Developers can now
negotiate with the server
to download the best image variant for a device using straightforward HTTP request headers. These headers communicate
DPR
,
Viewport-Width
, and the
intended display width
of the resource being fetched to the server.
In addition to improving image loading, developers can now instrument service workers to gather detailed
fetch
and
script
timing. Developers can also
measure
the
startup time
of service workers more accurately.
Other updates in this release
As part of Chrome’s ongoing efforts to ship features from the
ES2015 specification
, Chrome now supports the
spread operator
and
new.target
.
To prevent user annoyance and conserve power, Chrome will
now defer playback of autoplay videos
in background tabs until the first time the tab is foregrounded.
Developers can now
disable Chrome’s default scroll restoration behavior
on history navigation when it interferes with the app’s user experience.
Sites can
specify origins that Chrome should preconnect to
in order to improve performance.
Sites launched from the home screen can now modify the default color of Chrome’s UI by specifying a
theme color
in their
web manifest
instead of a meta tag.
Sites that have been added to the homescreen can now set a
background color
to show while resources load.
Developers can now
specify a URI
for Chrome to report
HTTP Public Key Pinning
violations to
, making man-in-the-middle attacks easier to find.
Events generated by user action can be differentiated from events generated by script using
Event.isTrusted()
, allowing developers to protect against fake clicks.
Developers can now use
CSS.escape()
, eliminating the need for complicated string escape code while handling user generated identifiers.
Modal dialogs are now
blocked by default in sandboxed iframes
, preventing embedded content from abusing APIs like alert.
Sites can now set an
iframe attribute
that allows sandboxed content to launch unrestricted windows.
As part of our continuing policy to
remove powerful APIs on insecure origins
, the Cache API is now
restricted to HTTPS
.
Cache.addAll()
is now supported, removing the need for polyfills enabling bulk interactions with the cache.
The Fetch API now supports
Request.redirect
, allowing more control over redirects.
DOMExceptions
can now be
constructed from scripts
, making polyfills easier to build for specs that require exceptions.
Timer-based polling is no longer necessary
to use WebRTC DataChannels, making them more efficient and convenient.
DevTools now has
better tool tips and custom network profiles
.
Resource Timing extensions
to the Performance interface are now available
without prefixes
.
The
CSS intrinsic sizing values
, which allow boxes to fit their contents, are no longer prefixed.
Request.context
has been
removed
until the
the spec has stabilized
.
Posted by Eric Willigers, Software Engineer and Animations Acrobat
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
.