Chromium Blog
News and developments from the open source browser project
Reducing power consumption for background tabs
Tuesday, March 14, 2017
Efficient power usage is an important aspect of speed, one of
Chrome’s key pillars
. To prolong battery life, Chrome should minimize power impact from things users can’t see. This includes background tabs, which consume a third of Chrome's power usage on desktop. Starting in version 57, Chrome will throttle individual background tabs by limiting the timer fire rate for background tabs using excessive power.
Chrome has focused on improving the user experience by throttling tab performance
for many years
. Like many browsers, Chrome has limited timers in the background to only run once per second.
Via the new throttling policy
, Chrome 57 will delay timers to limit average CPU load to 1% of a core if an application uses too much CPU in background. Tabs playing audio or maintaining real-time connections like WebSockets or WebRTC won’t be affected.
We've found that this throttling mechanism leads to 25% fewer busy background tabs.
In the long-term
, the ideal is for background tabs to be fully suspended and instead rely on new APIs for service workers to do work in the background. Chrome will continue to take steps in this direction to prolong users' battery life, while still enabling all the same experiences developers can build today.
Posted by Alexander Timin, Software Engineer and Power Saver
Chrome 57 Beta: CSS Grid Layout, Improved Add to Home screen, Media Session API
Thursday, February 2, 2017
Unless otherwise noted, changes described below apply to the newest Chrome
Beta
channel release for Android, Chrome OS, Linux, Mac, and Windows.
CSS Grid Layout
Sites are increasingly being accessed on screens of all sizes, from large LCD TVs to tiny watch faces. Historically, supporting all of these screen sizes required complex combinations of markup and CSS, making code hard to maintain.
To give developers more granular control over how elements grow and shrink to fit the current screen size,
CSS Grid Layout
is
now available
.
CSS Grid supports a two-dimensional grid-based layout system, optimized for responsive user interface design. Elements within the grid can be specified to span multiple columns or rows. Elements positioned in a CSS grid can also be named, making layout code easier to understand.
CSS Grid allows developers to arbitrarily place elements on a grid with full control over element flow, sizing behavior and responsiveness.
Improved Add to Home screen
Update (2017/03/09): Improved Add to Home screen is now planned to launch in Chrome 58.
Since early versions of Chrome for Android, users have been able to add sites to their Home screen for fast and convenient access. This feature adds the icons using
Android shortcuts
, which means that web apps don’t show up throughout Android in the same way as installed native apps.
In this release, when a user adds a
Progressive Web App
to their Home screen, Chrome will integrate it into Android in a
much deeper way
. For example, Progressive Web Apps will now appear in the app drawer section of the launcher and in Android Settings, and will be able to receive incoming intents from other apps. Long presses on their notifications will also reveal the normal Android notification management controls rather than the notification management controls for Chrome.
Media Session API
Media consumption is one of the most common uses for the mobile web. In Chrome for Android, developers can customize the lock screen UI and notifications with media content using the new
Media Session API
. By providing metadata to the browser about the content being played, developers can create rich lock screen messaging that includes information such as title, artist, album name, and artwork. Additionally , the site is now able to respond to user actions taken on the notification itself, such as seeking or skipping.
Other features in this release
The
WebAssembly API
has been enabled by default, allowing developers to
run near-native code
in the browser without a plugin.
When a video enters fullscreen on an Android device, Chrome now automatically locks the screen orientation according to the aspect ratio of the video.
Sites using continuous
setTimeout()
will now be
throttled
when using loops to drive out-of-view frame animations, improving performance for users.
The
Fetch API
Response
class now supports the
.redirected
attribute to help web developers avoid untrustworthy responses and reduce the risk of
open redirectors
.
The new
padStart
and
padEnd
formatting tools enable
text padding
, facilitating tasks like aligning console output or printing numbers with a fixed number of digits.
Service Worker Navigation Preload
is now available as an Origin Trial, allowing developers to parallelize the network request for the main resource alongside service worker startup.
The Payment Request API can be made available inside an
iframe
by adding the
allowpaymentrequest
attribute.
PaymentMethodData
now supports
basic-card
, so developers can refer to all card types with a single method identifier, rather than individual data types.
To simplify the migration from HTTP to HTTPS, stored credentials for HTTP forms are now transferred to the HTTPS version of the site, and the Credential Management API now supports filling credentials from matching subdomains.
The
caret-color
property enables developers to specify the color of the text input cursor.
To preserve
consistency
with other
on<event>
attributes,
ongotpointercapture
and
onlostpointercapture
are now part of the
GlobalEventHandlers
mixin.
Support is now available for
text-decoration-skip: ink
to make underlines skip
descenders
, the portion of letters that extend below the text's baseline.
New
text-decoration
properties are now available, allowing developers to specify visual effects such as line color and style.
The
PresentationRequest
constructor has been modified to accept multiple URLs via a
sequence<
DOMString
>
, in addition to the existing constructor that takes a single URL.
The new
AudioContext.getOutputTimestamp()
method enables developers to synchronize
DOMHighResTimeStamp
and
AudioContext.currentTime
values.
AudioBufferSourceNode
,
OscillatorNode
, and
ConstantSourceNode
now inherit from
AudioScheduledSourceNode
, consolidating functionality.
The new
cancelAndHoldAtTime
function cancels future
AudioParam
events with times greater than or equal to
cancelTime
, allowing developers to preserve the value of the scheduled time in a direct way.
Developers can now construct WebAudio-specific events such as
OfflineAudioCompletionEvent
and
AudioProcessEvent
.
To increase user security, Chrome's
XSS Auditor
now blocks entire suspicious pages by default, rather than selectively filtering out the suspected reflected XSS on the page.
Deprecations and interoperability improvements
Support for the
<keygen>
element has been removed, causing it to no longer display any controls nor submit form element data
, to align with other browsers.
As
previously announced
, locally-trusted SHA-1 certificates will now result in a certificate error page unless the
EnableSha1ForLocalAnchors
enterprise policy has been set.
fieldset.elements
now returns an
HTMLCollection
instead of an
HTMLFormControlsCollection
to better align with
spec
.
The
<cursor>
element has been removed, but but cursor icons can still be set via the
cursor
CSS property.
A legacy caller has been removed from
HTMLEmbedElement
and
HTMLObjectElement
, so the interfaces will now throw exceptions rather than having their instances called as functions.
The
usemap
attribute now requires case-sensitive matching.
All
-webkit-
prefixed
IndexedDB
global aliases have been removed, after their deprecation in M38.
Custom message events and events created by
client.postMessage(message, transfer)
i
n
a
s
e
r
v
i
c
e
w
o
r
k
e
r
will now use
MessageEvent
instead of
ServiceWorkerMessageEvent
, following the HTML
MessageEvent
spec extension
.
Support for
webkitClearResourceTimings()
,
webkitSetResourceTimingBufferSize()
, and
onwebkitresourcetimingbufferfull
has been removed from the
Performance
interface, in favor of
clearResourceTimings()
,
setResourceTimingBufferSize()
, and
onresourcetimingbufferfull
.
The following
-internal
CSS selectors are being deprecated:
-internal-media-controls-cast-button
,
-internal-media-controls-overlay-cast-button
, and all of the
-internal-media-controls-text-track-list
selectors.
Support for the obsolete API
webkitCancelRequestAnimationFrame
has been removed in favor of
cancelAnimationFrame
.
On Android,
wordWrap: break-word
and
-webkit-line-break: after-white-space
will no longer be set on
contenteditable
containers by default, to preserve consistency between browsers.
The
webkit
prefix has been removed from
AudioContext
and
OfflineAudioContext
.
Posted by Xi Han, Home Screen Heroine
Integrating Progressive Web Apps deeply into Android
Thursday, February 2, 2017
In 2015, we
added a new feature
to Chrome for Android that allows developers to prompt users to add their site to the Home screen for fast and convenient access. That feature uses an
Android shortcut
, which means that web apps don’t show up throughout Android in the same way as installed native apps. For example, many developers have asked for their web app to show up in the app drawer section of the launcher. These differences can be confusing for users and prevent the experience from feeling as cohesive as it could.
In the next few weeks we’ll be rolling out a
new version of this experience
in Chrome beta. With this new version, once a user adds a
Progressive Web App
to their Home screen, Chrome will integrate it into Android in a much deeper way than before. For example, Progressive Web Apps will now appear in the app drawer section of the launcher and in Android Settings, and will be able to receive incoming intents from other apps. Long presses on their notifications will also reveal the normal Android notification management controls rather than the notification management controls for Chrome.
This new Add to Home screen feature is one more step in our journey to empower developers to build the best possible experience for their users, and we are committed to ensuring the same mechanisms for installing Progressive Web Apps are available to all browsers on Android.
Posted by
Yaron Friedman
, Add to Home screen aficionado
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
.