Chromium Blog
News and developments from the open source browser project
Smarter garbage collection for smoother browsing and less memory usage
Tuesday, December 8, 2015
Posted by Seth Thompson,
V8 Track Commentator
In order to ensure a smooth, snappy experience when browsing in Chrome, it’s essential to free unused memory. The
garbage collector
in the V8 JavaScript engine has been
optimized
to reclaim memory as quickly as possible to shorten pauses to the main thread of execution. But even small pauses can cause
jank
when they happen at inopportune moments and block important events like clicks, scrolls, or animation frames. To make garbage collection less noticeable, we’ve integrated
Blink’s task scheduler
into V8 (starting in M41), so that pauses can be not just short, but intelligently scheduled during moments when the browser is idle. New knowledge of completely inactive pages (such as background tabs), also allows V8 to free larger chunks of memory all at once. The result is reduced jank when browsing and lower memory usage overall.
Scheduling garbage collection tasks (red) in otherwise idle periods (blue).
Smarter garbage collection makes 3D animations and games play smoothly with reduced lag and stuttering. The new task scheduler integration into V8 provides higher frame-rates more consistently for gameplay and rendering. Between Chrome 41 and Chrome 46, our score for the 3D benchmark
OORT Online
, which measures smooth rendering of WebGL graphics, increased by up to 33%, just shy of the maximum 10,000 points on a modern desktop.
Memory reduction from the new system is particularly pronounced when the browser is idle for a few minutes or more. Leaving a Gmail tab unused for 2.5 minutes, for example, reduces memory consumption by
up to 45%
between Chrome 45 and previous versions!
In addition to providing a smoother, faster browsing experience for the user, these changes empower developers to push the limits of Chrome with more powerful applications and better graphics
. Stay tuned for more V8 optimizations and
check out our deep dive into garbage collection timing
on the new
V8 blog
for more details.
Chrome 48 Beta: Present to Cast, custom notification buttons, and network estimation
Thursday, December 3, 2015
Unless otherwise noted, changes described below apply to the newest Chrome
Beta
channel release for Android, Chrome OS, Linux, Mac, and Windows.
Presentation API
Historically, sites have been unable to present content to nearby devices, which made
it hard to build experiences like a slide “presenter mode”
for the mobile web. The latest release of Chrome on Android now allows mobile sites to
present to Google Cast devices
using the standards-based
Presentation API
and the
Cast Web SDK
.
Custom buttons on notifications
Chrome 42
introduced
the ability for users to receive push notifications from websites, allowing users to build deeper relationships with the sites they love. Usage of the feature has grown quickly, with Chrome now delivering more than
350 million push notifications every day
. In the latest Chrome release, sites can now add
custom buttons to notifications
, enabling users to complete tasks
entirely within the notification
.
Notification actions in Chrome 48 on Android
Detecting maximum connection speed
A user’s mobile phone connects to the internet over anything from high quality WiFi to 2G, which has made it difficult to design the right mobile experience. Developers can now use
NetworkInformation.downlinkMax
to
detect a device's maximum bandwidth
so they can send the optimal resources for the connection speed. Sites can also respond to changes in connection quality using the
NetworkInformation.onChange
event handler.
Other features in this release
The new DevTools security panel enables developers to understand the security state of a page to help them migrate their websites to HTTPS.
Sites can now use
FontFaceSet
more flexibly with several new
iteration methods
.
WebRTC
now supports the
VP9 video codec
, and can serve HD video at almost
half the bandwidth of VP8 or H264
.
Web Audio
JavaScript syntax can now be
shortened and simplified
with method chaining for
AudioNode.connect()
and
AudioParam.connect()
automation methods.
The
MediaStreamTrack.remote
attribute allows sites to detect if a media stream is from a remote source.
Sites can now detect key presses from a user without worrying about browser type or operating system using the
KeyboardEvent.code
attribute.
Developers can now leverage JavaScript language behaviors not previously exposed in ES5 or below using the
well-known symbols
@@isConcatSpreadable, @@toPrimitive.
min-width:auto
and
min-height:auto
now work for
flex items
without
flex-basis:auto
.
Several
getAll()
methods have been added to
IndexedDB
to simplify bulk interactions.
Minor changes
ServiceWorkerRegistration.update()
no longer bypasses the cache for update checks within 24 hours, improving spec compliance.
The error attribute on
IDBRequest
and
IDBTransaction
will now return
DOMException
instead of
DOMError
to improve Chrome's spec compliance.
The
RC4 cipher
is no longer supported over HTTPS connections due to
several vulnerabilities
.
The
MediaStreamTrack.getSources()
method has been deprecated in favor of
MediaDevices.enumerateDevices()
.
SVGGraphicsElement.getTransformToElement has been removed to match the SVG
spec
.
getSVGDocument() has been removed from HTMLFrameElement.prototype to match the
spec
.
SVG
glyph-orientation-horizontal
and
glyph-orientation-vertical
properties have been removed in favor of the CSS
text-orientation
property.
SVGElement.offset*
properties and
SVGPathSeg
interfaces have been removed to improve spec compliance.
The CSS
plus-darker composite operator
has been removed to increase
spec
compliance.
The item() method has been removed from
TextTrackList
and
TextTrackCueList
to improve spec compliance.
Developers can now build robust RTL text experiences using
CSS Writing Modes Level 3
without prefixes.
CSS
font-feature-settings
are no longer prefixed.
Posted by Anton Vayvod, Presentation MC
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
.