Chromium Blog
News and developments from the open source browser project
Keeping Chrome Extensions Simple
Thursday, December 19, 2013
Today we're announcing an update to the
Chrome Web Store policy
: extensions in the Chrome Web Store must have a single purpose that is narrow and easy-to-understand. While this has always been the intent of the Chrome extension system, not all extensions have lived up to this ideal. These multi-purpose extensions can crowd your browser UI and slow down your web browsing - sometimes significantly. We're making this policy change to fix these problems and give users more control over their browsing experience.
A simple and speedy browsing experience has been part of the
core principles
of Chrome since
the beginning
. Simplicity was important to us because browsers had become overly complex, with bulky user interfaces (commonly referred to in the industry as "chrome"). That detracted from the content of the page, which was the whole point of the browser. The name "Chrome" came from this principle as we wanted the browser to be about "content, not chrome."
One significant contributor to the excess of browser chrome at the time were extensions like the then-ubiquitous toolbar. When users installed more than one of these toolbars, the results could be overwhelming.
To keep with our principle of simplicity, we decided to take a different approach. Chrome extensions would be simple and single-purpose in nature, and each would only be allowed
a single visible UI "surface"
in Chrome, a single browser action or page action button. Toolbars wouldn't be supported by design, and users would have more control over which features they added to their browser.
Unfortunately, in some cases, we couldn't enforce these design goals technically. With content scripts, extension developers have full control over the page, so they can put up as much UI as they want, even going as far as to create toolbars in the page. Others used content scripts to create extensions with more subtle features bundled together that were harder to attribute to specific extensions. In many cases, the Chrome Web Store helped by showing poor reviews when users had noticed bad behavior from a particular extension, but in other cases the connection wasn't clear.
Even worse, when extensions were sideloaded locally on their computer (perhaps bundled as part of another piece of software they installed) the user wouldn't have the benefit of the information in the Chrome Web Store at all, so they might not realize they were agreeing to install an extension with unwanted functionality or poor reviews.
It is for these reasons that we've updated the Chrome Web Store policy to enforce our original single-purpose design goal for extensions. We realize that this will require significant changes for some existing extensions. Some may need to be split into multiple separate extensions. Developers may need to switch to a different approach to monetization, which we've recently made easier by adding
payment options to extensions
. Since these changes may take some time to implement, we're not going to start enforcing the policy for existing extensions in the Web Store until June 2014. For new extensions, the policy will go into effect immediately.
If you have any questions, please find us in our
G+ community
, on
Stack Overflow
, or our
mailing list
.
Update May 16, 2014:
This will begin being enforced for previously grandfathered extensions (those which were in the Web Store prior to Dec 19, 2013) on July 15, 2014.
Posted by Erik Kay, Engineering Director
Ecma forms TC52 for Dart Standardization
Thursday, December 12, 2013
This week
Ecma
created a new technical committee named
TC52
to publish a standard specification of the
Dart
language. We’re excited about this milestone in the evolution of Dart and the web.
Dart is ready for standardization. As of last month’s
1.0 SDK release
, Dart is now officially stable and mature enough for production use. We’ll be collaborating with the broader web community via TC52 to responsibly evolve the language going forward.
The new standardization process is an important step towards a future where Dart runs natively in web browsers. Dart apps can be fast when compiled to JavaScript, but an embedded Dart VM enables
even better performance
.
We're thrilled to have a dedicated technical committee working on Dart. We also feel confident that Ecma—the home of standards such as JavaScript, Eiffel, and C#—is the right place to help guide the evolution of the Dart language. If you’d like to get involved, please
join the committee
.
Posted by Anders Sandholm, Product Manager and Standard Guy
Chrome DevTools for Mobile: Emulate and Screencast
Tuesday, December 3, 2013
Modern web apps are expected to render and perform on mobile perfectly. That means considering responsive design, 60 fps and connectivity early in the development cycle. With the Beta channel of Chrome for
Android
and
desktop
, we’ve made it easier to develop and debug mobile web apps through an improved
viewport emulation
and zero-config, screencast-enabled
remote debugging
.
While designing your app, you want to make sure it looks great on multiple screens. DevTools now enables you to go through the popular device screens without leaving the development environment. Just select a device from the Console drawer’s Emulation tab
1
and all the relevant viewport properties will be set for you. We'll run the page through the same mobile viewporting code used in mobile Chrome to get you accurate results. You also have full control of the emulation parameters, such as screen resolution, touch emulation,
devicePixelRatio
, user agent, sensors and many more.
But what if you need to test the actual web app's performance on a real device?
Chrome Beta – including
ChromeOS
– now supports native USB discovery of connected devices. Find them under Tools → Inspect Devices menu item, or visit the about:inspect page. There’s no configuration necessary and no need for the
adb command line tool
or extensions to see all instances of Chrome and
WebView
on the devices connected to your computer
2
.
While connected over USB, you can screencast the full viewport content from the device to DevTools. The corresponding icon will be shown next to the Elements tab if the inspected device is able to screencast.
Keyboard and mouse events are also sent from DevTools to your device, so you don't even need to touch it while you're testing your apps.
Improved
mobile emulation
,
USB debugging
and screencast make it easier to develop, inspect and debug your mobile applications with DevTools. Have a look at
Paul Irish’s talk from the Chrome Dev Summit 2013 for a hands-on demo
of these features.
Posted by Pavel Feldman, Software Engineer and Viewport Teleporter
1 You need to check “Show 'Emulation' view in console drawer” in DevTool’s Settings→ Overrides to enable the emulation features
2 Windows users need to install the
USB device drivers
to enable device communication
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
.