Chromium Blog
News and developments from the open source browser project
Chrome 34 Beta: Responsive Images and Unprefixed Web Audio
Thursday, February 27, 2014
Today’s
Chrome Beta
channel release introduces a new HTML attribute for
responsive images
and the unprefixed version of the JavaScript Web Audio API. Unless otherwise noted, changes apply to desktop versions of Chrome and Chrome for Android.
The srcset attribute
Today the web is used on laptops, TVs, phones, tablets and
other
devices with heterogeneous screen sizes and
device pixel ratios
. Serving the same image resources to all devices can lead to slower page load times, wasted bandwidth and improperly formatted content.
srcset
will help resolve this problem by letting Web developers provide multiple resources in varying resolutions for a single image. The browser can then pick the resource that matches the device's capabilities. Here’s an example of the code:
<img alt="A rad wolf." src="pic1x.jpg" srcset="pic1x.jpg 1x, pic2x.jpg 2x, pic4x.jpg 4x">
Note that the src attribute is not needed for browsers that support
srcset
, but it’s good for backwards compatibility. Kudos to external Blink developer
Yoav Weiss
for implementing and driving consensus for this feature. Stay tuned for
the <picture> element
, which will also help web developers with responsive design.
Unprefixed Web Audio
The
Web Audio API
is a high-level JavaScript API for processing and synthesizing audio in web applications. We shipped the prefixed version of the API a few years ago. Starting with this release, the unprefixed API entry points
audioContext
and
offlineAudioContext
will be available in addition to their prefixed counterparts. Legacy methods such as
createGainNode
and
createDelayNode
are deprecated.
This brings Chrome’s implementation of Web Audio in alignment with the
W3C draft specification
and offers compatibility with the Web Audio support in Firefox. Please switch to the unprefixed versions soon, as the prefixed versions are now officially deprecated and will be removed in a future release.
UPDATE April, 9th: Unprefixed Web Audio will ship in Chrome 35, not Chrome 34.
Other web platform changes in this release
The
font-variant-ligatures CSS property
allows developers to control
ligatures
in text.
A variety of infrequently used web platform features have been deprecated or removed. For a complete list, see the list of
Blink “intents”
.
As we’ve
previously discussed
, Chrome will now offer to remember and fill password fields in the presence of
autocomplete=off
. This change does not affect non-password fields.
If you’ve ever been curious about the usage of HTML and JavaScript features, check out the updated
chromestatus.com/metrics
, which now shows the percentage of page loads that use certain web platform features.
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 Raymond Toy, Software Engineer and Audiofile [sic]
Make Sure to Get Your Extension in the Chrome Web Store
Wednesday, February 26, 2014
Extension developers, take note: if you are not yet hosting your extension in the Chrome Web Store, now is the time to
do so
. Back in November as part of our ongoing effort to protect Chrome users from malicious and unwanted software,
we announced
that we will require Chrome extensions to be hosted on the Chrome Web Store. Earlier this month we started enforcing this policy for the Chrome Beta channel on Windows, and have been gathering feedback from users and developers.
Some developers have requested more time to complete this transition, so we've decided to extend the window until May 1 before we start enforcing this policy for the Windows Stable channel. As a reminder this policy will only apply to Windows Beta and Stable channel users. You can continue to use off-store extensions on Windows Dev and Canary, as well as on Mac, Linux and Chrome OS. Developer and enterprise policy use cases are similarly unaffected.
To minimize potential disruption to your users, please be sure to register your extension in the Chrome Web Store before May 1. After this time extensions outside the Chrome Web Store will be automatically disabled. If you register after the deadline your users will need to manually re-enable or re-install your extension to regain functionality. Please take a look at our
FAQs
, and if you need any help or support through this transition, reach out to us on our
mailing list
.
Update May 16, 2014:
This will begin being enforced on Windows stable channel shortly after Chrome 35 is released, near the end of May.
Posted by Erik Kay, Engineering Director
Compiling in the background for a smoother user experience
Thursday, February 13, 2014
We aim to make Chrome the fastest browser possible. One way
V8
helps with this goal is by compiling JavaScript into native machine code to execute scripts quickly. Historically, Chrome compiled JavaScript on the main thread, where it could interfere with the performance of the JavaScript application. In the latest
Chrome Beta
we've enabled concurrent compilation, which offloads a large part of the optimizing compilation phase to a background thread. The result is that JavaScript applications remain responsive and performance gets a boost.
Let’s have a look under the hood of V8 to understand how this works. To reduce the overall time spent compiling, V8 defers compilation of JavaScript functions until immediately before they are executed the first time. This compilation phase is fast but doesn’t focus on optimizing the code, just on getting it done quickly. In V8, pieces of code that are executed very often are compiled a second time by a specialized
optimizing compiler
. This second compilation pass makes use of many advanced optimization techniques, meaning it takes more time than the first pass but delivers much faster code.
Until now, V8 took turns compiling optimized Javascript code and executing it. For large pieces of code this could become a nuisance, and in complex applications like games it could even lead to stuttering and dropped frames. Concurrent compilation tackles this issue.
The graphs below show excerpts of V8’s vital signs when running
Mandreel
, part of the
Octane benchmark suite
, on the Nexus 5 phone. The graphs have been created using our new
profiling visualization tool
. The black bar represents execution of JavaScript, and ideally would be solid.
The first graph shows V8 running without concurrent compilation. V8 is fully occupied with optimizing a large piece of code, causing an execution pause of more than 600ms.
By enabling concurrent compilation, V8 still optimizes a large piece of code, but does it in a background thread. Execution continues alongside compilation, providing for a smoother user experience. For instance, concurrent compilation improved the
Mandreel
score of
Octane 2.0
by 27% on a Nexus 5 and made graphic-intensive applications such as the
Epic Citadel Demo
run even smoother in Chrome.
Concurrent code compilation is another step towards
reducing latency
in Chrome and is part of various
ongoing
efforts
to deliver more responsive, smoother web applications.
Posted by Yang Guo, Multi-threaded V8 Engineer
Ready to cast: Chromecast now open to developers with the Google Cast SDK
Monday, February 3, 2014
[Cross posted from the
Google Developers Blog
]
By John Affaki, Engineering Manager
Updated Feb. 14 to say that the Google Cast SDK for Android is now available.
Back in
July
we announced the developer preview of the Google Cast Software Development Kit (SDK), the underlying Chromecast technology that enables multi-screen experiences across mobile devices (phones, tablet, laptops) and large-screen displays. Starting today, the
Google Cast SDK
is available for developing and publishing Google Cast-ready apps.
The Google Cast SDK is simple to integrate because there’s no need to write a new app. Just incorporate the SDK into your existing mobile and web apps to bring your content to the TV. You are in control of how and when you develop and publish your cast-ready apps through the
Google Cast developer console
. The SDK is available on Android and iOS as well as on Chrome through the Google Cast browser extension.
Receiver app support
You have many options for displaying content on Chromecast. For simple media applications, you can use the default media player that can play back HTML5 media content. You can also customize it with your own branding and style using CSS.
For non-media applications, or for more flexibility and design options, you can build your own custom receiver application using standard web technologies. With a custom receiver you can build virtually any application while including support for many streaming protocols, including
MPEG-DASH
,
HLS
, and
Microsoft Smooth Streaming
, all of which are available in the
Media Player Library
.
Sample apps
To make it easier for you to provide an optimized
user experience
on the TV screen, we have created
sample apps
for Android, iOS and Chrome. For Android, you’ll find a
Cast Companion library
to make your integration of Google Cast even easier.
Availability
All Chromecast devices have already been updated to the latest software with support for the Google Cast SDK. The
Google Cast extension for Chrome
supporting the latest SDK will start rolling out today. The Google Cast SDK for Android is now available on Android devices worldwide as part of the
Google Play services 4.2 update
. The Google Cast SDK for iOS is available starting today. You can find the details for each platform in our
documentation
.
Head over to the
Google Cast Developers
site to get started with the Google Cast SDK. We look forward to your
feedback
and seeing what you develop with the SDK.
Happy casting!
John Affaki manages the client software and services teams for Google Cast. He never grew out of childhood and spends his free time playing video games and reading comic books, but is glad to have some real kids now.
Run Chrome Apps on mobile using Apache Cordova
Tuesday, January 28, 2014
In September we introduced a
new breed of Chrome Apps
that work offline by default and act like native applications on the host operating system. These Chrome Apps are currently available on all desktop platforms. Today we're expanding their reach to mobile platforms with an early developer preview of a toolchain based on
Apache Cordova
, an open-source mobile development framework for building native mobile apps using HTML, CSS and JavaScript.
The toolchain wraps your Chrome App with a native application shell and enables you to distribute your app via Google Play and the Apple App Store. We provide a simple
developer workflow
for packaging a Chrome App natively for mobile platforms. You can run your Chrome App on a device or emulator using the command-line or an IDE. Alternatively, you can use the
Chrome Apps Developer Tool
to run your app on an Android device without the need to install an IDE or the mobile platform’s SDK.
We’ve made many of the core
Chrome APIs
available to Chrome Apps running natively on mobile, including:
identity
- sign-in users using OAuth2 without prompting for passwords
payments
- sell virtual goods within your mobile app
pushMessaging
- push messages to your app from your server
sockets
- send and receive data over the network using TCP and UDP
notifications
(currently Android only) - send rich notifications from your mobile app
storage
- store and retrieve key-value data locally
syncFileSystem
- store and retrieve files backed by Google Drive
alarms
- run tasks periodically
In addition to the above Chrome APIs, you have access to a
wide range of APIs
supported in the Cordova platform.
For web developers, this toolchain provides a simple workflow for extending the reach of Chrome Apps to users on mobile platforms. The toolchain is in developer preview mode, and we expect to continually improve it based on your feedback. To get started, take a look at our
dev workflow
and
sample apps
. As always, we welcome your feedback on
Stack Overflow
, our
G+ Developers page
, or our
developer forum
.
Andrew Grieve, Software Engineer and WebView Wrangler
Show off your security skills: announcing Pwnium 4 targeting Chrome OS
Thursday, January 23, 2014
Security is a
core tenet
of Chromium, which is why we hold
regular competitions
to learn from security researchers. Contests like Pwnium help us make Chromium even more secure. This year Pwnium 4 will once again set sights on Chrome OS, and will be hosted in March at the
CanSecWest
security conference in Vancouver.
With a total of $2.71828 million USD in the pot (
mathematical constant
e
for the geeks at heart), we’ll issue Pwnium rewards for eligible Chrome OS exploits at the following levels:
$110,000 USD: browser or system-level compromise in guest mode or as a logged-in user, delivered via a web page.
$150,000 USD: compromise with device persistence: guest to guest with interim reboot, delivered via a web page.
New this year, we will also consider significant bonuses for demonstrating a particularly impressive or surprising exploit. Potential examples include defeating
kASLR
, exploiting memory corruption in the 64-bit browser process or exploiting the kernel directly from a renderer process.
Past Pwnium competitions have focused on Intel-based Chrome OS devices, but this year researchers can choose between an ARM-based Chromebook, the
HP Chromebook 11
(WiFi), or the
Acer C720 Chromebook
(2GB WiFi) that is based on the Intel Haswell microarchitecture. The attack must be demonstrated against one of these devices running the then-current stable version of Chrome OS.
Any software included with the default installation may be used as part of the attack. For those without access to a physical device, the
Chromium OS developer’s guide
offers assistance on getting up and running inside a virtual machine, but note that a virtual environment might differ from the physical devices where the attack must be demonstrated.
To make sure everyone has enough time to demonstrate their exploit, we will require participants to register in advance for a timeslot. To register, e-mail
pwnium4@chromium.org
.
Registration will close at 5:00 p.m. PST Monday, March 10th, 2014
. Only exploits demonstrated on time in this specifically-arranged window will be eligible for a reward.
The
official rules
contain more details, but standard Pwnium rules apply: the deliverable is the full exploit, with explanations for all individual bugs used (which must be unknown); and exploits should be served from a password-authenticated and HTTPS-supported Google App Engine URL.
See you in Vancouver!
Signed by Jorge Lucángeli Obes, Security Engineer and Master of Ceremonies
Chrome 33 Beta: Custom Elements, Web Speech, and more
Thursday, January 16, 2014
Today’s Chrome
Beta
channel release kicks off the new year with a slew of new features for developers ranging from Custom Elements, to web speech synthesis and improved WebFont downloading. Unless otherwise noted, changes apply to desktop versions of Chrome and Chrome for Android.
Custom Elements
With
Custom Elements
, web developers can define new types of HTML elements to use in their web applications. The spec is one of several new API primitives landing under the
Web Components
umbrella. It brings abstraction and modularity to the web platform by allowing developers to:
Define new HTML/DOM elements
Create elements that extend from other elements
Logically bundle together custom functionality into a single tag
Extend the API of existing DOM elements
Custom Elements allows developers to architect their apps in much cleaner ways. For example, here's what the markup for
a demo chat app written with Custom Elements
looks like:
Web Speech API - Synthesis
The
Web Speech API
enables web developers to add
speech recognition
and synthesis to their web pages. We added the recognition part
last year
, and today’s release is the first to include
speech synthesis
. For example, your dictations could be
synthesized
to play back in a different language.
NPAPI deprecation update
As described in the original NPAPI deprecation
announcement
, Chrome has begun blocking webpage-instantiated NPAPI plug-ins by default on the Stable channel. Mac and Windows NPAPI support will be completely phased out by the end of the year, and on Linux Chromium will
no longer support NPAPI plug-ins
starting as early as April.
Other web platform changes in this release
The
requestAutocomplete API
for easy web payments is now available on Mac.
The
Page Visibility API
has been
unprefixed
.
WebFont downloading has
been optimized
so that fonts (at the median) are available before Blink layout is done, meaning that the net latency impact of using a webfont is usually zero.
The Blink CSS Animations and Transitions implementations are now powered by the new
Web Animations model
. This change should not affect developers or sites;
let us know
if it does.
Chrome now supports the latest version of the
Web Notification API
. We'll be deprecating support for the
legacy API
down the road, so please update your websites if they're using it.
Google Chrome Frame has been retired. Please read our June 2013 Chromium
blog post
for additional details and background.
Visit
chromestatus.com
for a complete overview of Chrome’s developer features.
Chrome Dev Summit recap
In late November we also held the
Chrome Dev Summit
, a two-day, single-track conference with over 300 web developers and Chrome engineers. The talks—which were recorded and livestreamed—covered a range of topics including
Polymer
,
new media APIs in Chrome for Android
,
Mobile DevTools
, and a
ton
of
performance
tips
. Check out the
full list
of recorded talks, including the
keynote
and
Q&A panel
.
Circle
+Google Chrome Developers
for more updates!
Posted by
<software-engineer title="Element Customizer">Dominic Cooney</software-engineer>
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
.