<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Mozilla Web Development &#187; plugin</title>
	<atom:link href="http://blog.mozilla.com/webdev/tag/plugin/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.mozilla.com/webdev</link>
	<description>Everybody Likes Ninjas</description>
	<lastBuildDate>Wed, 01 Feb 2012 16:41:24 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Flash Updates in Firefox</title>
		<link>http://blog.mozilla.com/webdev/2010/06/25/flash-updates-in-firefox/</link>
		<comments>http://blog.mozilla.com/webdev/2010/06/25/flash-updates-in-firefox/#comments</comments>
		<pubDate>Fri, 25 Jun 2010 20:46:39 +0000</pubDate>
		<dc:creator>Mike Morgan</dc:creator>
				<category><![CDATA[Web Development]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[plugin]]></category>
		<category><![CDATA[plugins]]></category>
		<category><![CDATA[user experience]]></category>
		<category><![CDATA[ux]]></category>

		<guid isPermaLink="false">http://blog.mozilla.com/webdev/?p=1146</guid>
		<description><![CDATA[This week, Firefox 3.6.4 was released with out-of-process plugin support. This means that when plugins crash, it doesn&#8217;t take the browser with them. But please remember: it&#8217;s still important to keep your plugins up-to-date. Out-of-date plugins can be a security risk. In a previous blog, I talked about the blocklist service in Firefox and its [...]]]></description>
			<content:encoded><![CDATA[<p>This week, <a href="http://blog.mozilla.com/blog/2010/06/22/firefox-3-6-4-with-crash-protection-now-available/">Firefox 3.6.4 was released</a> with out-of-process plugin support.  This means that when plugins crash, it doesn&#8217;t take the browser with them.</p>
<p>But please remember: <strong>it&#8217;s still important to keep your plugins up-to-date</strong>.  Out-of-date plugins can be a security risk.</p>
<p>In a previous blog, I talked about <a href="http://blog.mozilla.com/webdev/2010/06/08/firefox-blocklisting-the-quest-for-safe-and-happy/">the blocklist service in Firefox</a> and its role in keeping users informed and up-to-date with regards to plugins.  It looks something like this:</p>
<p><a href="http://www.flickr.com/photos/morgamic/4686181665/" title="Step 1 by morgamic, on Flickr"><img src="http://farm5.static.flickr.com/4018/4686181665_6e0704f61b.jpg" width="500" height="361" alt="Step 1" /></a></p>
<p>As a follow-up to that post, I walked through the update process for Firefox.  Here were my testing steps:</p>
<ol>
<li><a href="https://wiki.mozilla.org/Extension_Blocklisting">Edit my blocklist.xml files and preferences</a> to blocklist the Flash filename on each platform.</li>
<li>Restart Firefox</li>
<li>Visit YouTube (or any page with Flash on it)</li>
<li>Follow the on-screen prompts until you reach our goal: a browser running an up-to-date version of Flash</li>
</ol>
<p>Adobe and Mozilla both need to make this process easier for users.  In summary, this is how it went:</p>
<ul>
<li><a href="http://www.flickr.com/photos/morgamic/sets/72157624117952339/">Windows</a>: 9 steps, <strong>2 unnecessary software downloads from Adobe</strong></li>
<li><a href="http://www.flickr.com/photos/morgamic/sets/72157624241445444/">Mac</a>: <strong>15 steps</strong></li>
<li><a href="http://www.flickr.com/photos/morgamic/sets/72157624115659663/">Linux</a>: 6 steps, <strong>high likelihood of failure or conflict</strong> with package manager</li>
</ul>
<p>Safe to say that there are many ways we can improve this process:</p>
<ul>
<li>Show specific warnings about which plugins are out of date</li>
<li>Don&#8217;t have an intermediate step on the plugin checker</li>
<li>Do not have the McAfee opt-out on the Flash download page
<li>Do not force people to download the XPI (Firefox could use an external installer + hash check like it does with PFS)</li>
<li>Eliminate any steps you can &#8212; get it down to a one-click experience if possible</li>
</ul>
<p>Protecting users from plugin crashes is a great thing, and I&#8217;m looking forward to seeing the plugin update experience becoming just as awesome.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mozilla.com/webdev/2010/06/25/flash-updates-in-firefox/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Behind the Scenes of the Plugin Check Page</title>
		<link>http://blog.mozilla.com/webdev/2010/05/14/behind-the-scenes-of-the-plugin-check-page/</link>
		<comments>http://blog.mozilla.com/webdev/2010/05/14/behind-the-scenes-of-the-plugin-check-page/#comments</comments>
		<pubDate>Fri, 14 May 2010 20:30:38 +0000</pubDate>
		<dc:creator>Austin King</dc:creator>
				<category><![CDATA[Web Development]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[plugin]]></category>
		<category><![CDATA[plugins]]></category>
		<category><![CDATA[security]]></category>

		<guid isPermaLink="false">http://blog.mozilla.com/webdev/?p=981</guid>
		<description><![CDATA[As noted on our security blog, we’ve just pushed out a major update to the plugin check page and service. The two core ideas are: Groundwork for a plugin directory Cross browser plugin checking The Backend Les Orchard has created a backend to the plugin finder service. We’ve added another input to the call named [...]]]></description>
			<content:encoded><![CDATA[<p>As noted on our <a href="http://blog.mozilla.com/security/2010/05/11/plugin-check-for-everyone/">security blog</a>, we’ve just pushed out a major update to the plugin check page and service.<br />
<a href="http://blog.mozilla.com/webdev/files/2010/05/CrossBrowserScreenshot.jpg"><img src="http://blog.mozilla.com/webdev/files/2010/05/CrossBrowserScreenshot-300x158.jpg" alt="" title="Cross Browser Support" width="300" height="158" class="alignright size-medium wp-image-1002" style="margin-right: 15px;" /></a><br />
The two core ideas are:</p>
<ul>
<li>Groundwork for a plugin directory</li>
<li>Cross browser plugin checking</li>
</ul>
<h3 style="clear:right">The Backend</h3>
<p>Les Orchard has <a href="http://blog.mozilla.com/webdev/2010/01/08/rebuilding-the-plugin-directory/"> created a backend</a> to the plugin finder service. We’ve added another input to the call named ‘detection’ which will allow us more flexibility in how we match known releases to OS / Product / Version / Plugin / Plugin Version combos. More news at 11, but he’s built the core pieces for a self-service plugin release application.</p>
<h3>The Frontend</h3>
<p>We updated the JavaScript client to support ‘<strong>modern browsers</strong>’ as well as IE. </p>
<h4>But IE 8 is a modern browser!</h4>
<p>Hmm, well it doesn’t have a <code>navigator.plugins object</code>. Other popular and recently released desktop browsers *do* have this feature. Heck, even some phone&#8217;s browsers have it.</p>
<p><em>Breaking News:</em> The platform preview of IE 9 has a working <code>navigator.plugins</code> object! So IE 9 fits the modern browser category&#8230; <strong>Congrats to the IE 9 team</strong>! We&#8217;ll make sure the page works by the time IE 9 ships, filed <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=566003">Bug#566003</a>.</p>
<h3>Cross Browser Flavors</h3>
<p>Our plugin detection uses one of three strategies:</p>
<ol>
<li>Strategy 1) <strong>Iterate</strong> the plugins objects and parse a version string out of the description or name</li>
<li>Strategy 2) <strong>Iterate</strong> the plugins objects and use the ‘version’ property</li>
<li>Strategy 3) Instantiate <strong>well-known</strong> plugins and test their version via the <a href="http://www.pinlady.net/PluginDetect/">pinlady.net</a> version detection library.</li>
</ol>
<p>If your goal is to protect as many users from as many known plugin vulnerabilities as possible&#8230; Strategy 3 doesn’t scale. Strategies 1 and 2 are dynamic and (in the best case) plugin agnostic. As new plugins come onto the market, the plugin finder service has to be updated, but no new code has to be written and shipped.</p>
<p>This is why IE plugin detection <a href="http://www.mozilla.com/en-US/plugincheck/more_info.html">is limited</a>.</p>
<p>Strategy 2 is the cleanest&#8230; and only supported by Firefox 3.6+. We would be pleased as punch if other browser vendors would create a version property. The Plugin Check page and other pieces of code that do plugin detection, will become more accurate.</p>
<p>We’re really excited about supporting all browsers and that is what Strategy 1 buys us. When a vendor has put a useful version number in the description or name, then it&#8217;s possible for our page to help Safari, Opera, or Chrome users understand their plugin versions better.</p>
<h4>Geeky Aside:</h4>
<p>Fly in the ointment, even for Firefox 3.6+ we currently will use methods #1 and #2 depending on what’s best for detecting the most accurate version for the most popular plugins. Why is nothing every simple?</p>
<h3>What can browser vendors do?</h3>
<p>Please implement the <code>navigator.plugins[x].version</code> property. This exposes an explicit plugin version number from the vendor.</p>
<h4>Why?</h4>
<p>It will keep your users safer. This and other security tools can detect vulnerable versions easier and more accurately.</p>
<h3>What can plugin vendors do?</h3>
<p>At a minimum, please put your full version number in the plugin description field.  Also make this as exact as possible, include the build number etc. 1.1.2.9282 is better than 1.1.2. Bonus points, expose your version numbers in the version property, even on Linux builds of your plugin.</p>
<h4>Why?</h4>
<ul>
<li>Keep your users safe</li>
<li>Improve your lastest version uptake</li>
<li>Keep users coming back to your distribution channel</li>
<li>Reduce your support costs</li>
</ul>
<h4>What&#8217;s next?</h4>
<p>We&#8217;ve built the plumbing and populated it with some popular plugins versions. Our next major release will be focused on building a self-service plugin release management app, so that vendors can populate the data for the backend API.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mozilla.com/webdev/2010/05/14/behind-the-scenes-of-the-plugin-check-page/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Plugin Checker Launched</title>
		<link>http://blog.mozilla.com/webdev/2009/10/13/plugin-checker-launched/</link>
		<comments>http://blog.mozilla.com/webdev/2009/10/13/plugin-checker-launched/#comments</comments>
		<pubDate>Tue, 13 Oct 2009 22:28:05 +0000</pubDate>
		<dc:creator>Mike Morgan</dc:creator>
				<category><![CDATA[Mozilla.com]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[plugin]]></category>
		<category><![CDATA[security]]></category>

		<guid isPermaLink="false">http://blog.mozilla.com/webdev/?p=731</guid>
		<description><![CDATA[Today we launched a Plugin Checker to help people find and update their plugins. Why is this important to you? Crashes are the number one concern for Firefox users, and we are listening. At least 30% of all Firefox crashes are caused by third-party plugins. Many major security vulnerabilities exploit out of date plugins. Why [...]]]></description>
			<content:encoded><![CDATA[<p>Today we launched a <a href="http://www.mozilla.com/en-US/plugincheck/">Plugin Checker</a> to help people find and update their plugins.</p>
<p><a href="http://blog.mozilla.com/webdev/files/2009/10/nurse.png"><img src="http://blog.mozilla.com/webdev/files/2009/10/nurse.png" alt="smiling nurse" width="226" height="215" class="alignright size-full wp-image-754" /></a></p>
<h2>Why is this important to you?</h2>
<ul>
<li>Crashes are the number one concern for Firefox users, and we are listening.</li>
<li>At least 30% of all Firefox crashes are caused by third-party plugins.</li>
<li>Many major security vulnerabilities exploit out of date plugins.</li>
</ul>
<h2>Why is this important to Mozilla?</h2>
<p>Increasing awareness about plugins makes the web better, and that&#8217;s <a href="http://www.mozilla.org/about/manifesto">our mission</a>.</p>
<ul>
<li>We want the web to be safer.</li>
<li>We want the web to be less crashy.</li>
<li>We want to help everyone &#8212; not just Firefox users &#8212; to address the plugin problem. (though admittedly it doesn&#8217;t fully work with all browsers yet, it will)</li>
</ul>
<h2>What did we do?</h2>
<p>The plugin checker has three components:</p>
<ul>
<li>The Server: <a href="https://wiki.mozilla.org/PFS2">Plugin Finder Service (PFS2)</a></li>
<li>The Javascript: <a href="http://github.com/ozten/Perfidies-of-the-Web/tree">Perfides</a></li>
<li>The Web Page: <a href="http://www.mozilla.com/en-US/plugincheck/">mozilla.com</a></li>
</ul>
<p> The end result is actually pretty simple &#8212; and that&#8217;s how it needs to be.  Here&#8217;s your plugins, and here&#8217;s their statuses:</p>
<p><a href="http://blog.mozilla.com/webdev/files/2009/10/flash_quicktime.png"><img src="http://blog.mozilla.com/webdev/files/2009/10/flash_quicktime.png" alt="flash_quicktime" title="Example showing Flash and Quicktime plugin statuses"  width="660" height="159" class="aligncenter size-full wp-image-732" /></a></p>
<p>Putting it all together, we reach a workflow similar to the graph below.  Our goal is to query a central database that contains plugin information and inform users about the status of their plugins.  This was built so it could be used to support Firefox directly in the future.</p>
<p><a href="http://blog.mozilla.com/webdev/files/2009/10/pfs-workflow.png"><img src="http://blog.mozilla.com/webdev/files/2009/10/pfs-workflow.png" alt="pfs-workflow" title="this shows that the web service can power both a web front-end or an integrated client service" width="537" height="574" class="aligncenter size-full wp-image-740" /></a></p>
<h2>What will happen next?</h2>
<p>The three components above are a good start, but together we can do more.</p>
<ul>
<li><a href="http://theunfocused.net/2009/10/06/firefox-3-6-knows-when-your-plugins-are-out-of-date/">Integrate this experience with the Firefox client</a>.  Firefox will identify vulnerable plugins and help you update them.</li>
<li>Create a self-service panel for vendors to update their plugin info as new releases come out.</li>
<li>Create an open directory for all plugin information (sort of like <a href="http://plugindoc.mozdev.org/">Plugindoc</a> but dynamic)</li>
<li>Evangelize plugin detection via an embeddable widget &#8212; get it out on WordPress, etc.</li>
<li>Integrate with our <a href="http://crash-stats.mozilla.com/">crash reporting system</a> so we have a report card/dashboard for which plugins are most crashy</li>
</ul>
<h2>How can you help?</h2>
<p>This entire project is open source.  You can work on any of these components to help contribute to the effort:</p>
<ul>
<li><a href="http://svn.mozilla.org/projects/pfs2/trunk/">View the server code for PFS2</a></li>
<li><a href="http://github.com/ozten/Perfidies-of-the-Web">View the client code for Perfides</a></li>
<li><a href="https://bugzilla.mozilla.org/enter_bug.cgi?product=Websites&#038;component=www.mozilla.com">File a bug if you find one</a></li>
<li><a href="http://spreadsheets.google.com/viewform?formkey=dGpKQkNuNkNQNjF4RW1FT08yRHRqMWc6MA..">Tell us about plugins we don&#8217;t know about</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.mozilla.com/webdev/2009/10/13/plugin-checker-launched/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
	</channel>
</rss>

