Chromium Blog

Chromium Blog

News and developments from the open source browser project

Keeping Chrome Extensions Simple

Thursday, December 19, 2013

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
Share on Twitter Share on Facebook
Google
  

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 26
  • 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

Give us feedback in our Product Forums.
  • Google
  • Privacy
  • Terms