{"id":1050,"date":"2010-06-08T16:17:27","date_gmt":"2010-06-09T00:17:27","guid":{"rendered":"http:\/\/blog.mozilla.org\/webdev\/?p=1050"},"modified":"2010-06-08T19:28:02","modified_gmt":"2010-06-09T03:28:02","slug":"firefox-blocklisting-the-quest-for-safe-and-happy","status":"publish","type":"post","link":"https:\/\/blog.mozilla.org\/webdev\/2010\/06\/08\/firefox-blocklisting-the-quest-for-safe-and-happy\/","title":{"rendered":"Firefox Blocklisting: the quest for Safe and Happy"},"content":{"rendered":"<p><a href=\"http:\/\/blog.mozilla.org\/webdev\/files\/2010\/06\/blocklistchart.png\"><img decoding=\"async\" loading=\"lazy\" src=\"http:\/\/blog.mozilla.org\/webdev\/files\/2010\/06\/blocklistchart-300x175.png\" alt=\"\" title=\"blocklist requests have gone up dramatically in the last 6 months\" width=\"300\" height=\"175\" class=\"alignright size-medium wp-image-1055\" srcset=\"https:\/\/blog.mozilla.org\/webdev\/files\/2010\/06\/blocklistchart-300x175.png 300w, https:\/\/blog.mozilla.org\/webdev\/files\/2010\/06\/blocklistchart.png 600w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/a><\/a>Firefox has a <a href=\"http:\/\/morgamic.com\/2008\/06\/20\/firefox-keeps-you-safe-in-ways-other-browsers-dont\/\">blocklist service<\/a> that protects users from malicious or faulty plugins and extensions.  We&#8217;ve used this sparingly in the past but due to the <a href=\"http:\/\/blog.mozilla.org\/metrics\/2010\/01\/08\/40-firefox-growth-in-2009\/\">success and popularity of Firefox<\/a> we&#8217;ve seen more and more <a href=\"https:\/\/bugzilla.mozilla.org\/chart.cgi?category=addons.mozilla.org&#038;subcategory=Blocklisting&#038;name=1469&#038;label0=All+Closed&#038;line0=1469&#038;label1=All+Open&#038;line1=1468&#038;gt=1&#038;labelgt=Grand+Total&#038;datefrom=&#038;dateto=&#038;action-wrap=Chart+This+List\">activity on the blocklist<\/a> than ever before.<\/p>\n<h3>Why Blocklisting is Hard<\/h3>\n<p>The most difficult part of the blocklist service has been deciding when to actually use it.  <a href=\"https:\/\/wiki.mozilla.org\/Blocklisting#Blocklisting_Policy\">Our policy<\/a> outlines some general guidelines, but it&#8217;s not so simple when millions of users are involved because you also have to consider how you could potentially affect user experience.  We have to weigh security and stability with user happiness.<\/p>\n<p><a href=\"http:\/\/blog.mozilla.org\/webdev\/files\/2010\/06\/spiderman-lesson.png\"><img decoding=\"async\" loading=\"lazy\" src=\"http:\/\/blog.mozilla.org\/webdev\/files\/2010\/06\/spiderman-lesson-300x255.png\" alt=\"\" title=\"Uncle Ben with some wise words for a young Peter Parker\" width=\"300\" height=\"255\" class=\"alignleft size-medium wp-image-1073\" srcset=\"https:\/\/blog.mozilla.org\/webdev\/files\/2010\/06\/spiderman-lesson-300x255.png 300w, https:\/\/blog.mozilla.org\/webdev\/files\/2010\/06\/spiderman-lesson.png 371w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p>In the past, being proactive with the service has been tough.  Take, for example, the time we blocklisted a plugin and add-on <a href=\"http:\/\/shaver.off.net\/diary\/2009\/10\/19\/update-on-the-net-framework-assistant-and-windows-presentation-foundation-plugin-blocking-from-this-weekend\/\">as requested by Microsoft<\/a>.  Another example would be the blocking of a <a href=\"https:\/\/bugzilla.mozilla.org\/show_bug.cgi?id=558584\">relatively hidden Java plugin<\/a> or <a href=\"https:\/\/bugzilla.mozilla.org\/show_bug.cgi?id=430826\">ancient versions of QuickTime<\/a>.<\/p>\n<p>In most cases we prevented an expected user interaction from being used.  Whether it&#8217;s Flash on YouTube, QuickTime for movie previews or Java for applets &#8212; when users can&#8217;t do what they want to do, it&#8217;s a really negative experience.  We don&#8217;t want to prevent users from doing what they want to do on the web.  On the other hand, we don&#8217;t want users to be vulnerable to exploits caused by outdated plugins.<\/p>\n<p>So while we were upset to know that what we did ruined the browsing experience for some people, we also knew that what we were trying to do was right and helped considerably more people than it hurt.  I am proud of this &#8212; at least the idea that we are willing to do something unpopular because it&#8217;s the right thing to do.  I do believe, however, that we can manage to keep users safe and happy simultaneously.<\/p>\n<p>Keep people <strong>safe and happy<\/strong>?  What a wonderful challenge.<\/p>\n<p><a href=\"http:\/\/blog.mozilla.org\/webdev\/files\/2010\/06\/blocklist11.png\"><img decoding=\"async\" loading=\"lazy\" src=\"http:\/\/blog.mozilla.org\/webdev\/files\/2010\/06\/blocklist11-300x300.png\" alt=\"\" title=\"the blocklist.xml file tells Firefox what to blocklist\" width=\"300\" height=\"300\" class=\"alignright size-medium wp-image-1064\" srcset=\"https:\/\/blog.mozilla.org\/webdev\/files\/2010\/06\/blocklist11-300x300.png 300w, https:\/\/blog.mozilla.org\/webdev\/files\/2010\/06\/blocklist11-150x150.png 150w, https:\/\/blog.mozilla.org\/webdev\/files\/2010\/06\/blocklist11.png 386w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<h3>Things We&#8217;ve Learned<\/h3>\n<p>Working on the blocklist, we&#8217;ve learned:<\/p>\n<ul>\n<li>Many people are <strong>not aware of which plugins they have installed<\/strong> on their system.<\/li>\n<li>People <strong>don&#8217;t like<\/strong> having their <strong>software disabled<\/strong>.<\/li>\n<li>For many users, it <strong>wasn&#8217;t clear what to do<\/strong> once their plugin or add-on was blocklisted.<\/li>\n<li>Out-of-date plugins can be a <strong>real and serious threat<\/strong> to <strong>user experience and security<\/strong>.<\/li>\n<li>Plugins are indeed an <strong>integral part<\/strong> of our everyday <strong>web experience<\/strong>.<\/li>\n<\/ul>\n<h3>What Can We Do About It?<\/h3>\n<p>The threat plugins pose to users will not go away, and we will continue to fight to keep users safe.  We can <strong>fight smarter<\/strong>, though.  The blocklist service will always be here, and we&#8217;ll use it when we need to.  But increasing awareness about plugins and how to keep them up to date is a much more <strong>positive and proactive approach<\/strong>.<\/p>\n<p>A few projects cover this initiative:<\/p>\n<ul>\n<li><strong><a href=\"http:\/\/www.mozilla.com\/en-US\/plugincheck\/\">Plugin Check<\/a><\/strong> is a web-based tool with cross-browser compatibility any web user can use to check their plugins against our plugin database.  This helps users know <strong>what plugins they have installed<\/strong> and how to <strong>keep them up-to-date.<\/strong><\/li>\n<li><strong><a href=\"http:\/\/blog.mozilla.org\/webdev\/2010\/01\/08\/rebuilding-the-plugin-directory\/\">Plugin Directory<\/a><\/strong> is an online interface for our plugin database that will be used as a <strong>portal for vendors and users to keep plugin data up to date<\/strong>.  It&#8217;s currently in staging and about ready to launch.<\/li>\n<li>The <strong><a href=\"http:\/\/people.mozilla.org\/~morgamic\/keeping_plugins_updated_in_manager.png\">Plugin Update Service<\/a><\/strong> is a Firefox project which adds plugins to the add-ons manager.   Having an integrated experience consistent with add-on updates will <strong>make plugin updating easier for everyone<\/strong>.\n<li><strong><a href=\"https:\/\/wiki.mozilla.org\/Electrolysis\">Out of Process Plugins (electrolysis)<\/a><\/strong> reduces the impact plugins have on the stability of Firefox.  When your plugin crashes, Firefox won&#8217;t crash with it.<\/li>\n<\/ul>\n<p><a href=\"http:\/\/people.mozilla.org\/~morgamic\/plugins.png\"><img decoding=\"async\" loading=\"lazy\" src=\"http:\/\/blog.mozilla.org\/webdev\/files\/2010\/06\/pluginupdates.png\" alt=\"\" title=\"an integrated proactive approach is a much better experience\" width=\"600\" height=\"329\" class=\"aligncenter size-full wp-image-1091\" srcset=\"https:\/\/blog.mozilla.org\/webdev\/files\/2010\/06\/pluginupdates.png 600w, https:\/\/blog.mozilla.org\/webdev\/files\/2010\/06\/pluginupdates-300x164.png 300w\" sizes=\"(max-width: 600px) 100vw, 600px\" \/><\/a><\/p>\n<p>With these projects, I am confident we will offer a better experience for users; keeping the web happy and safe at the same time.<\/p>\n<h3>Get Involved<\/h3>\n<p>If you&#8217;d like to know more and get involved we&#8217;d love to hear from you:<\/p>\n<ul>\n<li>Read about <a href=\"https:\/\/wiki.mozilla.org\/Extension_Blocklisting:Code_Design\">how the blocklist works<\/a>.<\/li>\n<li>Read about <a href=\"https:\/\/wiki.mozilla.org\/PFS2\">PFS2 and how this all started<\/a>.<\/li>\n<li>See <a href=\"https:\/\/wiki.mozilla.org\/Firefox\/4\/Beta\">what&#8217;s in store for Firefox 4<\/a>.<\/li>\n<li><a href=\"http:\/\/irc.mozilla.org\/\">Join us in IRC<\/a>! We&#8217;re all in #webdev.<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Firefox has a blocklist service that protects users from malicious or faulty plugins and extensions. We&#8217;ve used this sparingly in the past but due to the success and popularity of Firefox we&#8217;ve seen more and more activity on the blocklist &hellip; <a class=\"go\" href=\"https:\/\/blog.mozilla.org\/webdev\/2010\/06\/08\/firefox-blocklisting-the-quest-for-safe-and-happy\/\">Continue reading<\/a><\/p>\n","protected":false},"author":24,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[288],"tags":[119,884,30,99],"coauthors":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v22.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Firefox Blocklisting: the quest for Safe and Happy - Mozilla Web Development<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/blog.mozilla.org\/webdev\/2010\/06\/08\/firefox-blocklisting-the-quest-for-safe-and-happy\/\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Mike Morgan\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/blog.mozilla.org\/webdev\/2010\/06\/08\/firefox-blocklisting-the-quest-for-safe-and-happy\/\",\"url\":\"https:\/\/blog.mozilla.org\/webdev\/2010\/06\/08\/firefox-blocklisting-the-quest-for-safe-and-happy\/\",\"name\":\"Firefox Blocklisting: the quest for Safe and Happy - Mozilla Web Development\",\"isPartOf\":{\"@id\":\"https:\/\/blog.mozilla.org\/webdev\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/blog.mozilla.org\/webdev\/2010\/06\/08\/firefox-blocklisting-the-quest-for-safe-and-happy\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/blog.mozilla.org\/webdev\/2010\/06\/08\/firefox-blocklisting-the-quest-for-safe-and-happy\/#primaryimage\"},\"thumbnailUrl\":\"http:\/\/blog.mozilla.org\/webdev\/files\/2010\/06\/blocklistchart-300x175.png\",\"datePublished\":\"2010-06-09T00:17:27+00:00\",\"dateModified\":\"2010-06-09T03:28:02+00:00\",\"author\":{\"@id\":\"https:\/\/blog.mozilla.org\/webdev\/#\/schema\/person\/373fd84922ef95d8d5171d1a72770d4f\"},\"breadcrumb\":{\"@id\":\"https:\/\/blog.mozilla.org\/webdev\/2010\/06\/08\/firefox-blocklisting-the-quest-for-safe-and-happy\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/blog.mozilla.org\/webdev\/2010\/06\/08\/firefox-blocklisting-the-quest-for-safe-and-happy\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/blog.mozilla.org\/webdev\/2010\/06\/08\/firefox-blocklisting-the-quest-for-safe-and-happy\/#primaryimage\",\"url\":\"http:\/\/blog.mozilla.org\/webdev\/files\/2010\/06\/blocklistchart-300x175.png\",\"contentUrl\":\"http:\/\/blog.mozilla.org\/webdev\/files\/2010\/06\/blocklistchart-300x175.png\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/blog.mozilla.org\/webdev\/2010\/06\/08\/firefox-blocklisting-the-quest-for-safe-and-happy\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/blog.mozilla.org\/webdev\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Firefox Blocklisting: the quest for Safe and Happy\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/blog.mozilla.org\/webdev\/#website\",\"url\":\"https:\/\/blog.mozilla.org\/webdev\/\",\"name\":\"Mozilla Web Development\",\"description\":\"For make benefit of glorious tubes\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/blog.mozilla.org\/webdev\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/blog.mozilla.org\/webdev\/#\/schema\/person\/373fd84922ef95d8d5171d1a72770d4f\",\"name\":\"Mike Morgan\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/blog.mozilla.org\/webdev\/#\/schema\/person\/image\/1d6151e93e27d281a7fc06534ee8eae0\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/ff5890a3252cd74f006ee33360e71c76?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/ff5890a3252cd74f006ee33360e71c76?s=96&d=mm&r=g\",\"caption\":\"Mike Morgan\"},\"description\":\"Mike Morgan is the former Director of Web Development for the Mozilla Corporation.\",\"url\":\"https:\/\/blog.mozilla.org\/webdev\/author\/morgamicmozillacom\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Firefox Blocklisting: the quest for Safe and Happy - Mozilla Web Development","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/blog.mozilla.org\/webdev\/2010\/06\/08\/firefox-blocklisting-the-quest-for-safe-and-happy\/","twitter_misc":{"Written by":"Mike Morgan","Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/blog.mozilla.org\/webdev\/2010\/06\/08\/firefox-blocklisting-the-quest-for-safe-and-happy\/","url":"https:\/\/blog.mozilla.org\/webdev\/2010\/06\/08\/firefox-blocklisting-the-quest-for-safe-and-happy\/","name":"Firefox Blocklisting: the quest for Safe and Happy - Mozilla Web Development","isPartOf":{"@id":"https:\/\/blog.mozilla.org\/webdev\/#website"},"primaryImageOfPage":{"@id":"https:\/\/blog.mozilla.org\/webdev\/2010\/06\/08\/firefox-blocklisting-the-quest-for-safe-and-happy\/#primaryimage"},"image":{"@id":"https:\/\/blog.mozilla.org\/webdev\/2010\/06\/08\/firefox-blocklisting-the-quest-for-safe-and-happy\/#primaryimage"},"thumbnailUrl":"http:\/\/blog.mozilla.org\/webdev\/files\/2010\/06\/blocklistchart-300x175.png","datePublished":"2010-06-09T00:17:27+00:00","dateModified":"2010-06-09T03:28:02+00:00","author":{"@id":"https:\/\/blog.mozilla.org\/webdev\/#\/schema\/person\/373fd84922ef95d8d5171d1a72770d4f"},"breadcrumb":{"@id":"https:\/\/blog.mozilla.org\/webdev\/2010\/06\/08\/firefox-blocklisting-the-quest-for-safe-and-happy\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/blog.mozilla.org\/webdev\/2010\/06\/08\/firefox-blocklisting-the-quest-for-safe-and-happy\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/blog.mozilla.org\/webdev\/2010\/06\/08\/firefox-blocklisting-the-quest-for-safe-and-happy\/#primaryimage","url":"http:\/\/blog.mozilla.org\/webdev\/files\/2010\/06\/blocklistchart-300x175.png","contentUrl":"http:\/\/blog.mozilla.org\/webdev\/files\/2010\/06\/blocklistchart-300x175.png"},{"@type":"BreadcrumbList","@id":"https:\/\/blog.mozilla.org\/webdev\/2010\/06\/08\/firefox-blocklisting-the-quest-for-safe-and-happy\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/blog.mozilla.org\/webdev\/"},{"@type":"ListItem","position":2,"name":"Firefox Blocklisting: the quest for Safe and Happy"}]},{"@type":"WebSite","@id":"https:\/\/blog.mozilla.org\/webdev\/#website","url":"https:\/\/blog.mozilla.org\/webdev\/","name":"Mozilla Web Development","description":"For make benefit of glorious tubes","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/blog.mozilla.org\/webdev\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/blog.mozilla.org\/webdev\/#\/schema\/person\/373fd84922ef95d8d5171d1a72770d4f","name":"Mike Morgan","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/blog.mozilla.org\/webdev\/#\/schema\/person\/image\/1d6151e93e27d281a7fc06534ee8eae0","url":"https:\/\/secure.gravatar.com\/avatar\/ff5890a3252cd74f006ee33360e71c76?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/ff5890a3252cd74f006ee33360e71c76?s=96&d=mm&r=g","caption":"Mike Morgan"},"description":"Mike Morgan is the former Director of Web Development for the Mozilla Corporation.","url":"https:\/\/blog.mozilla.org\/webdev\/author\/morgamicmozillacom\/"}]}},"jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/blog.mozilla.org\/webdev\/wp-json\/wp\/v2\/posts\/1050"}],"collection":[{"href":"https:\/\/blog.mozilla.org\/webdev\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.mozilla.org\/webdev\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.mozilla.org\/webdev\/wp-json\/wp\/v2\/users\/24"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.mozilla.org\/webdev\/wp-json\/wp\/v2\/comments?post=1050"}],"version-history":[{"count":0,"href":"https:\/\/blog.mozilla.org\/webdev\/wp-json\/wp\/v2\/posts\/1050\/revisions"}],"wp:attachment":[{"href":"https:\/\/blog.mozilla.org\/webdev\/wp-json\/wp\/v2\/media?parent=1050"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.mozilla.org\/webdev\/wp-json\/wp\/v2\/categories?post=1050"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.mozilla.org\/webdev\/wp-json\/wp\/v2\/tags?post=1050"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/blog.mozilla.org\/webdev\/wp-json\/wp\/v2\/coauthors?post=1050"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}