Chromium Blog
News and developments from the open source browser project
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
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
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
2025
Oct
Jul
Jun
May
Jan
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
.