Chromium Blog
News and developments from the open source browser project
I/O 2015: The Mobile Web Roundup
Friday, May 29, 2015
We talked about the power of the mobile web during the Google I/O keynote yesterday.
The mobile web reaches far and wide and is great at connecting users with content, since it’s so easy to go from one page to the next. In fact, the average Chrome for Android user navigates to more than 100 domains per month.
The mobile web is an excellent way to build a successful business, and we want to help you do it in three ways; develop your content, engage new users, and monetize your work.
Develop
Mobile web development can be complicated, but we don’t think it should be. Yesterday, we announced
Polymer 1.0
,
a new way to build web applications. In addition to this first
production-ready release for the
web components
library, we released brand-new sets of elements built with Polymer that
range from toolbars and menus to offline caching and mobile-first checkout flows.
When you visit Polymer’s new
element catalog
, you can check out documentation, play with demos, and download elements. And i
f you're new to the platform, you can check out our
starter kit
. Packed with the latest features, the starter kit works out of the box so you can focus on adding features right away.
Engage
Having
many users discover your site is great, but you also want them to be able to build a meaningful relationship with it.
We're bringing some of the most compelling capabilities from native apps to sites in a way that maintains what's great about the web
with
push notifications and add-to-homescreen buttons
. This allows your users to interact more deeply with your content.
Push Notifications
Earn
Purchases today involve
a checkout form, and forms can be the deciding factor for whether someone makes a purchase on your site. Autofill helps users complete forms up to 30% faster, so we’re expanding our support with credit cards and addresses from Google Payments. This means that the same information that’s used to make purchases inside the Google Play store can now be applied to websites. By using the
standard autocomplete attributes
, you can make the checkout process easier by having Chrome autofill your forms with 100% accuracy.
Just tell us what the field is and we'll fill it in -- no guessing.
What’s Next
One of our next big hurdles is improving the
transition between mobile apps and the mobile web.
N
ative app developers often face a tough choice when a user taps a URL in their app: they can send users to a browser - interrupting the user experience, or they can build their own in-app browser with WebViews - resulting in a lot of work for only a basic browsing experience.
We talked about Pinterest being an early adopter during our keynote; another good example is an app like Twitter that helps users find and share great web content. Users frequentl
y move between native and web content in the app, so giving them a seamless experience is key. Users also want to easily take actions specific to Twitter, like retweeting or sending links in direct messages, which aren’t options in a typical browser.
In this week's
Chrome dev channel
we're introducing
Chrome custom tabs
, a new way for native apps to control their web experience without having to resort to a webview. You can change color schemes, animations, and add custom actions to the toolbar, while giving users a full browsing experience with their cookies, saved passwords, and features like Data Saver and Google Translate.
Chrome is committed to making sure that you can develop easily, engage with your users, and build a thriving business around the web.
For the latest news and upcoming developer events, subscribe to this blog and follow us on
Twitter
@ChromiumDev
.
Posted by Rahul Roy-chowdhury, Chief Web Fanboy and
Product Manager
Continuing to protect Chrome users from malicious extensions
Wednesday, May 13, 2015
We’re always working to improve Chrome extensions while keeping our users as safe as possible. In May 2014 we
announced
a new policy to protect Windows users by enforcing that extensions be hosted on the Chrome Web Store. The results were encouraging: we saw a 75% drop in customer support help requests for uninstalling unwanted extensions. Consequently, we will expand the reach of this protection to all Windows and Mac users in the coming months.
We originally did not enforce this policy on the Windows developer channel in order to allow developers to opt out. Unfortunately, we’ve since observed malicious software forcing users into the developer channel in order to install unwanted off-store extensions. Affected users are left with malicious extensions running on a Chrome channel they did not choose. As such, starting today we will begin enforcing this policy on all Windows channels. Mac will soon follow, with enforcement for all channels beginning in July 2015.
For developers, we’ll continue to support local extension installs during development as well as
installs via Enterprise policy
. To provide an integrated install flow from your own website, you can make use of the existing
inline installation
feature. If you run into problems or think an extension was disabled incorrectly, please reach out to us in our
support forums
. If you’ve developed an extension not yet in the Chrome Web Store, we encourage you to
submit it
today.
The extension platform unlocks powerful features that can help users get the most out of Chrome. However, it is crucial that our users stay safe from the reaches of malicious software developers. Extending this protection is one more step to ensure that users of Chrome can enjoy all the web has to offer without the need to worry as they browse.
Posted by Jake Leichtling, Extensions Platform Product Manager
Scheduling tasks intelligently for optimized performance
Thursday, April 30, 2015
Earlier this month, Chrome began utilizing
new techniques to get pages in front of users faster
. That's an important piece of the performance story, but it's just one - what about once the page has loaded fully? That's when users want pages to animate smoothly and react quickly to their scrolls and clicks. Chrome 41 included a task scheduler for Chrome's rendering engine that ensures those high-priority tasks are handled immediately, making Chrome feel snappier and run closer to a smooth 60 frames per second.
Given that ambitious goal, Chrome has just milliseconds to produce every frame. But painting graphics to the screen isn't all that Chrome does, and there can be several different tasks contending for a single processor core. Historically Chrome handled execution of tasks, such as animating an image, responding to a click, or doing some memory operations, the same way that a bank handles a queue of customers: the first one line in is the first one handled. While this is simple and straightforward, it's not always the best for optimal performance. An urgent task, such as painting the next frame to the screen, might be added to the end of a long queue of pending tasks. The 60 frames per second goal would be lost.
Starting in Chrome 41, we've created a task scheduler integrated into the Blink rendering engine. The scheduler is capable of evaluating pending tasks and reordering them so that the most urgent tasks, such as animating and responding to a user's action, are prioritized ahead of others. Lower priority tasks, such as clearing out unused memory, are delayed until the processor has available time. In practice, this results in up to a 40% higher responsiveness to user input when Chrome is working hard to draw frames.
However, even the most advanced scheduler can't properly queue up tasks without knowing what's coming in the future. To address this, the Blink scheduler is also integrated with Chrome's graphics engine, which has precise knowledge of when Chrome will need to deprioritize other tasks in order to paint graphics to the screen. This allows the scheduler to consider lower priority tasks and schedule only those tasks that fit nicely into the otherwise "idle" time before Chrome needs to draw another frame. These tasks are handled essentially for free, with no impact on the smooth, 60 frames-per-second animations.
The latest version of Chrome scrolling a particularly challenging website, with the scheduler enabled (left) and disabled (right).
These changes demonstrate that performance isn't just about doing things faster - it's also about doing things smarter, in the right order, and at the right time. Stay tuned for more updates about how we're using Chrome's scheduler to push the bounds of performance.
Posted by Sami Kyostila and Ross McIlroy, Senior Task Masters
Dev channel for Chrome on Android
Wednesday, April 29, 2015
Chrome's Dev channel allows you to test out your sites using an early version of Chrome to find bugs and try out cutting edge features before they're released to everyone. Historically the Dev channel was available for Windows, Mac, Linux, and ChromeOS, and starting today, the Dev channel is
available for Android
as well.
Just like the Dev channel on other platforms, it will be updated at least every week, and your
feedback
will help directly help us avoid regressions and improve features for Beta and Stable users. Life on the Dev channel can be rocky at times, so on Android it installs side-by-side with any other versions of Chrome you have on your device.
We hope you find this additional channel to be a useful early look into what’s coming for Chrome on Android.
Posted by Jason Kersey, Chrome Technical Program Manager and Update Button-pusher
Reaching and re-engaging users on the mobile web
Monday, April 20, 2015
One of the web’s superpowers is its low friction: a new site is always only a single tap away, allowing users to easily navigate through a rich diversity of experiences. The mobile web provides a great discovery experience for users and unparalleled reach for developers.
Unfortunately, once users discover an experience they love, it is hard for them to build a meaningful relationship since websites lack the engaging capabilities developers have come to expect from mobile such as push notifications and home screen icons. As a result, developers have needed to decide between the engagement potential of a native app and the reach potential of a mobile website.
Chrome 42
addresses this dilemma by allowing users to engage more deeply with the mobile web experiences that are important to them, by both opting in to receive push notifications directly from websites and easily adding regularly-visited high-quality sites to their home screen.
Push Notifications
Timely, personalized notifications save users the effort of manually checking for updates throughout the day and have enabled a host of new experiences from real time communication to live updates on breaking news.
This release of Chrome supports the new emerging
web standard
for push notifications on Android and desktop, enabling users to opt in to allow a specific website to
send them push notifications
just like an installed native app. Over the coming weeks, mobile web users will be able to opt in to receiving push notifications from early adopters including Beyond the Rack, eBay, Facebook, FanSided, Pinterest, Product Hunt, and VICE News. Roost and Mobify also provide services that make it easy for developers to integrate web-based push notifications into their site with minimal custom implementation work.
Promoting Add to Home Screen
Mobile users often open their phones to pass time while on the bus or waiting in line. Home screen icons help them easily jump back into their favorite experiences with just a single tap.
In this release of Chrome for Android, users who frequently visit a
modern, mobile-optimized website
such as Flipboard or Medium will be offered the option to easily add the site directly to their home screen in one tap, allowing them to keep in touch and engaged throughout the day.
Developers can now take advantage of these and other recent changes including
improved performance
,
full offline support
, and access to device capabilities such as the
camera
and
geolocation
to deliver more meaningful experiences on the web than ever before. These new features will continue to improve and evolve over time, diminishing the difficult choice for developers between the reach of the mobile web and the engagement of native apps.
Posted by Miguel Garcia, Push Maestro and Owen Campbell-Moore, Engagement Optimizer
A QUIC update on Google’s experimental transport
Friday, April 17, 2015
Last year we announced QUIC
, a UDP-based transport protocol for the modern Internet. Over the last quarter, we’ve been increasing the amount of traffic to Google services that is served over QUIC and analyzing QUIC performance at scale. Results so far are positive, with the data showing that QUIC provides a real performance improvement over TCP thanks to QUIC's lower-latency connection establishment, improved congestion control, and better loss recovery.
For latency-sensitive services like web search, the largest gains come from zero-round-trip connection establishment. The standard way to do secure web browsing involves communicating over TCP + TLS, which requires 2 to 3 round trips with a server to establish a secure connection before the browser can request the actual web page. QUIC is designed so that if a client has talked to a given server before, it can can start sending data without any round trips, which makes web pages load faster. The data shows that 75% percent of connections can take advantage of QUIC’s zero-round-trip feature. Even on a well-optimized site like Google Search, where connections are often pre-established, we still see a 3% improvement in mean page load time with QUIC.
Another substantial gain for QUIC is improved congestion control and loss recovery. Packet sequence numbers are never reused when retransmitting a packet. This avoids ambiguity about which packets have been received and avoids dreaded retransmission timeouts. As a result, QUIC outshines TCP under poor network conditions, shaving a full second off the Google Search page load time for the slowest 1% of connections. These benefits are even more apparent for video services like YouTube. Users report 30% fewer rebuffers when watching videos over QUIC. This means less time spent staring at the spinner and more time watching videos.
Where do we go from here? Today, roughly half of all requests from Chrome to Google servers are served over QUIC and we’re continuing to ramp up QUIC traffic, eventually making it the default transport from Google clients — both Chrome and mobile apps — to Google servers. We plan to formally propose QUIC to the IETF as an Internet standard but we have some housekeeping to do first, like changing the wire format and updating our reference implementation from SPDY-over-QUIC to HTTP2-over-QUIC. In the coming months, we also plan to work on lowering handshake overhead to allow better server-side scalability, improving forward error correction and congestion control, and adding support for multipath connections.
If you want to follow along or play around, feel free to check out the
code
and
experiment
with it, or join
proto-quic@chromium.org
as we continue to improve the Internet, one packet at a time.
Posted by SYN, SYN-ACK and ACK (also known as Alyssa Wilk, Ryan Hamilton and Ian Swett)
Chrome 43 Beta: Web MIDI and upgrading legacy sites to HTTPS
Thursday, April 16, 2015
The newest Chrome
Beta
channel release includes Web MIDI support, new features to improve security and compatibility and a number of small changes to enable developers to build more powerful web applications. Unless otherwise noted, changes described below apply to Chrome for Android, Windows, Mac, Linux and Chrome OS.
Connecting to MIDI devices from the web
MIDI is a well-established communication protocol used by music devices such as synthesizers, DJ decks, and drum machines. In Chrome 43, users are able to use MIDI hardware to create music without installing any specialized software, as the
Web MIDI API
allows websites to communicate with connected MIDI devices such as a USB-MIDI drum machine plugged into an Android tablet.
Permissions API
Until now, websites have been unable to determine the permission state of APIs such as
Geolocation
. Due to this, sites often attempt to use APIs immediately after page load without pre-existing permission, causing users to see confusing permission prompts with no context or explanation.
The new
Permissions API
allows developers to query and observe changes to their permission status for
Geolocation
,
Push
,
Notifications
and
Web MIDI
so they can ask for permission in context, improving the user experience.
Moving DOM attributes to the prototype chain
In Chrome 43, attributes defined on DOM objects have been
moved to the prototype chain
, as specified by
Web IDL
. This change allows developers to efficiently override or create methods on DOM Objects and improves compatibility with Firefox and Internet Explorer. As this subtle change may cause breakages in existing content, developers should use Chrome 43 to
test their website
to ensure their users don’t experience issues when this release rolls out to all users.
Upgrading legacy sites to HTTPS
Transitioning large collections of unmodifiable legacy web content to encrypted, authenticated HTTPS connections can be challenging as the content frequently includes links to insecure resources, triggering mixed content warnings. This release includes a new CSP directive,
upgrade-insecure-resources
, that causes Chrome to upgrade insecure resource requests to HTTPS before fetching them. This change allows developers to serve their hard-to-update legacy content via HTTPS more easily, improving security for their users.
Other updates in this release
The
Cache Storage API
, previously only available in
service workers
, now provides developers full
imperative control over their caching
in the page context.
The
autocapitalize
property is
now supported
on
input
and
textarea
elements, allowing sites to suggest default capitalization for text typed with on-screen keyboards.
Developers can now
programmatically trigger copy and cut actions
using
document.execCommand('copy')
and
document.execCommand('cut')
in response to a user gesture, eliminating the need to use Flash-based workarounds.
The
Fetch API
now allows developers to directly operate on and incrementally release the bytes of
streamed network responses
, in contrast to the equivalent
XMLHttpRequest
functionality that requires developers keep the entire in-progress stream response in memory.
showModalDialog
was
disabled by default in Chrome 37
and in accordance with the public deprecation timeline, this release removes the Enterprise Policy setting created to temporarily re-enable it.
Chrome OS now fires
devicemotion
events on pages at a regular interval, allowing developers to track the device’s acceleration in the same way they do on Chrome for Android, Windows, Mac, and Linux.
The
Web Audio API
now allows developers to
selectively disconnect
specific connections to an
AudioNode
or
AudioParam
, avoiding the audio artifacts caused by disconnecting all inputs and then manually re-connecting those that should have been retained.
Developers using the
Web Audio API
can now also
explicitly close
an
AudioContext
, releasing all allocated system audio resources instead of depending on unpredictable garbage collection.
The nonstandard WebSocket.URL and EventSource.URL were removed in favor of their standard counterparts WebSocket.url and EventSource.url.
CSS animations can now be used without the
-webkit
prefix.
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 Takashi Toyoshima, Software Engineer and MIDI Music Maker
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
.