<?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>Oxymoronical &#187; firefox</title>
	<atom:link href="http://stage.oxymoronical.com/blog/tag/firefox/feed" rel="self" type="application/rss+xml" />
	<link>http://stage.oxymoronical.com</link>
	<description>Spouting nonsense from the depths of my spare time</description>
	<lastBuildDate>Wed, 23 Nov 2011 20:15:52 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3</generator>
		<item>
		<title>How Crashplan breaks xpcshell tests on Windows</title>
		<link>http://stage.oxymoronical.com/blog/2011/11/How-Crashplan-breaks-xpcshell-tests-on-Windows</link>
		<comments>http://stage.oxymoronical.com/blog/2011/11/How-Crashplan-breaks-xpcshell-tests-on-Windows#comments</comments>
		<pubDate>Wed, 23 Nov 2011 20:15:52 +0000</pubDate>
		<dc:creator>Mossop</dc:creator>
				<category><![CDATA[general]]></category>
		<category><![CDATA[mozilla]]></category>
		<category><![CDATA[backup]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[testing]]></category>

		<guid isPermaLink="false">http://www.oxymoronical.com/?p=1173</guid>
		<description><![CDATA[I recently switched to a Windows laptop and have been going through the usual teething pains related. One thing that confused me though was that when I was running xpcshell tests on my new machine they would frequently fail with access denied errors. I&#8217;ve seen this sort of thing before so I know some service [...]]]></description>
			<content:encoded><![CDATA[<p>I recently switched to a Windows laptop and have been going through the usual teething pains related. One thing that confused me though was that when I was running xpcshell tests on my new machine they would frequently fail with access denied errors. I&#8217;ve seen this sort of thing before so I know some service was monitoring files and opening them after they had changed, when this happens they can&#8217;t be deleted or edited until the service closes them again and often tests open, close and delete files so fast that there isn&#8217;t time for that to happen.</p>
<p>It took me a little while to remember that I can just use <a href="http://technet.microsoft.com/en-us/sysinternals/bb896645">Process Monitor</a> to track down the offending service. Just fire it up, set a filter to only include results to a particular directory (the temp directory in this case) and go create a file there and see what shows up. I was quite surprised to see <a href="http://www.crashplan.com/">Crashplan</a>, the backup software I (and probably many people in Mozilla) use. Surprised because Crashplan isn&#8217;t set to backup my temp directory and really I shudder to think what the performance cost is of something continually accessing every file that changes in the temp directory.</p>
<p>Turns out you can turn it off though. Hidden in the depths of Crashplan&#8217;s advanced backup settings is an option to disable real-time filesystem watching. From what I can see online the downside to this is that files will only be backed up once a day, but that&#8217;s a pretty fine tradeoff to  having functioning xpcshell tests for me. There is also an option to put crashplan to sleep for an hour or so, that seems to work too but I don&#8217;t know exactly what that does.</p>
<p>It confuses me a little why Crashplan monitors files it never intends to backup (even when the backup server isn&#8217;t connected and backups aren&#8217;t in progress) and it is quite a lot of file accesses it does too. Seems likely to be a bug to me but at least I can workaround it for now.</p>
]]></content:encoded>
			<wfw:commentRss>http://stage.oxymoronical.com/blog/2011/11/How-Crashplan-breaks-xpcshell-tests-on-Windows/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Mossop Status Update: 2011-10-29</title>
		<link>http://stage.oxymoronical.com/blog/2011/10/Mossop-Status-Update-2011-10-29</link>
		<comments>http://stage.oxymoronical.com/blog/2011/10/Mossop-Status-Update-2011-10-29#comments</comments>
		<pubDate>Sat, 29 Oct 2011 09:50:23 +0000</pubDate>
		<dc:creator>Mossop</dc:creator>
				<category><![CDATA[mozilla]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[planning]]></category>
		<category><![CDATA[status]]></category>

		<guid isPermaLink="false">http://www.oxymoronical.com/?guid=e2f4f8c227014e46aac320cf1efb18cb</guid>
		<description><![CDATA[
      
          
            Done: 
Implemented a number of performance fixes for mobile (bug 696141 and dependents)
Reviewed more of the default to compatible work
Basic implementation for add-on hotfix (bug 694068)
Landed the final third-party add-...]]></description>
			<content:encoded><![CDATA[
      <div class="postdata">
          <div class="completed">
            <h4 class="posthead">Done:</h4> <ul>
<li>Implemented a number of performance fixes for mobile (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=696141">bug 696141</a> and dependents)</li>
<li>Reviewed more of the default to compatible work</li>
<li>Basic implementation for add-on hotfix (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=694068">bug 694068</a>)</li>
<li>Landed the final third-party add-on patches on aurora and beta</li>
<li>Product planning meeting for Firefoxes 8, 9 and 10</li>
</ul>
          </div>
          <div class="planned">
            <h4 class="posthead">Next:</h4> <ul>
<li>Finish the add-on hotfix work</li>
<li>Various HR stuff</li>
<li>Start planning Jetpack work week</li>
</ul>
          </div>
      </div>
    ]]></content:encoded>
			<wfw:commentRss>http://stage.oxymoronical.com/blog/2011/10/Mossop-Status-Update-2011-10-29/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mossop Status Update: 2011-10-14</title>
		<link>http://stage.oxymoronical.com/blog/2011/10/Mossop-Status-Update-2011-10-14</link>
		<comments>http://stage.oxymoronical.com/blog/2011/10/Mossop-Status-Update-2011-10-14#comments</comments>
		<pubDate>Fri, 14 Oct 2011 09:44:59 +0000</pubDate>
		<dc:creator>Mossop</dc:creator>
				<category><![CDATA[mozilla]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[planning]]></category>
		<category><![CDATA[status]]></category>

		<guid isPermaLink="false">http://www.oxymoronical.com/?guid=e5c76c4f0e881c2e081ce64dfa990152</guid>
		<description><![CDATA[
      
          
            Done: 
7.0.1 Post Mortem
Hotfix planning work
Understanding the new mobile architecture
Problems with third party add-ons in Firefox 8
Default to compatible planning
Final draft of Q4 goals

          
          
        ...]]></description>
			<content:encoded><![CDATA[
      <div class="postdata">
          <div class="completed">
            <h4 class="posthead">Done:</h4> <ul>
<li>7.0.1 Post Mortem</li>
<li>Hotfix planning work</li>
<li>Understanding the new mobile architecture</li>
<li>Problems with third party add-ons in Firefox 8</li>
<li>Default to compatible planning</li>
<li>Final draft of Q4 goals</li>
</ul>
          </div>
          <div class="planned">
            <h4 class="posthead">Next:</h4> <ul>
<li>Update module description for the Jetpack module</li>
<li>Fix third-party add-on detection problems</li>
</ul>
          </div>
      </div>
    ]]></content:encoded>
			<wfw:commentRss>http://stage.oxymoronical.com/blog/2011/10/Mossop-Status-Update-2011-10-14/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mossop Status Update: 2011-10-07</title>
		<link>http://stage.oxymoronical.com/blog/2011/10/Mossop-Status-Update-2011-10-07</link>
		<comments>http://stage.oxymoronical.com/blog/2011/10/Mossop-Status-Update-2011-10-07#comments</comments>
		<pubDate>Fri, 07 Oct 2011 12:10:56 +0000</pubDate>
		<dc:creator>Mossop</dc:creator>
				<category><![CDATA[mozilla]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[planning]]></category>
		<category><![CDATA[status]]></category>

		<guid isPermaLink="false">http://www.oxymoronical.com/?guid=b392ffcdb0ed0cd35bcf362b62a4a5d1</guid>
		<description><![CDATA[
      
          
            Done: 
Worked with the team to fix the version number problems with the last repacks
Security reviews for embedded add-on preferences and showing performance information to users
Working on Q4 goals for the team

        ...]]></description>
			<content:encoded><![CDATA[
      <div class="postdata">
          <div class="completed">
            <h4 class="posthead">Done:</h4> <ul>
<li>Worked with the team to fix the version number problems with the last repacks</li>
<li>Security reviews for embedded add-on preferences and showing performance information to users</li>
<li>Working on Q4 goals for the team</li>
</ul>
          </div>
          <div class="planned">
            <h4 class="posthead">Next:</h4> <ul>
<li>Finalize Q4 goals</li>
<li>Update module description for the Jetpack module</li>
</ul>
          </div>
      </div>
    ]]></content:encoded>
			<wfw:commentRss>http://stage.oxymoronical.com/blog/2011/10/Mossop-Status-Update-2011-10-07/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mossop Status Update: 2011-09-02</title>
		<link>http://stage.oxymoronical.com/blog/2011/09/Mossop-Status-Update-2011-09-02</link>
		<comments>http://stage.oxymoronical.com/blog/2011/09/Mossop-Status-Update-2011-09-02#comments</comments>
		<pubDate>Fri, 02 Sep 2011 09:02:42 +0000</pubDate>
		<dc:creator>Mossop</dc:creator>
				<category><![CDATA[mozilla]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[planning]]></category>
		<category><![CDATA[status]]></category>

		<guid isPermaLink="false">http://www.oxymoronical.com/?guid=616f35ee9e18e46c47f3750363c35ca0</guid>
		<description><![CDATA[
      
          
            Done: 
Worked with the Jetpack drivers to come up with a new way to prioritise bugs
Talked over issues with add-on compatibility and version upgrades
Helped prepare a test plan for SDK repacks
Killed most of my review que...]]></description>
			<content:encoded><![CDATA[
      <div class="postdata">
          <div class="completed">
            <h4 class="posthead">Done:</h4> <ul>
<li>Worked with the Jetpack drivers to come up with a new way to prioritise bugs</li>
<li>Talked over issues with add-on compatibility and version upgrades</li>
<li>Helped prepare a test plan for SDK repacks</li>
<li>Killed most of my review queue</li>
</ul>
          </div>
          <div class="planned">
            <h4 class="posthead">Next:</h4> <ul>
<li>Try to clear anything that is blocked on me before my vacation</li>
</ul>
          </div>
      </div>
    ]]></content:encoded>
			<wfw:commentRss>http://stage.oxymoronical.com/blog/2011/09/Mossop-Status-Update-2011-09-02/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Mossop Status Update: 2011-08-26</title>
		<link>http://stage.oxymoronical.com/blog/2011/08/Mossop-Status-Update-2011-08-26</link>
		<comments>http://stage.oxymoronical.com/blog/2011/08/Mossop-Status-Update-2011-08-26#comments</comments>
		<pubDate>Fri, 26 Aug 2011 10:39:18 +0000</pubDate>
		<dc:creator>Mossop</dc:creator>
				<category><![CDATA[mozilla]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[planning]]></category>
		<category><![CDATA[status]]></category>

		<guid isPermaLink="false">http://www.oxymoronical.com/?guid=9b1b4a68552922c1b852c6ded537a25b</guid>
		<description><![CDATA[
      
          
            Done: 
Regular bug triage (epic bug triage deferred)
Tinkering with the Bugzilla APIs
Cleared out my inbox and review queues

          
          
            Next: 
Formalise priorities for the Jetpack team

Next week I...]]></description>
			<content:encoded><![CDATA[
      <div class="postdata">
          <div class="completed">
            <h4 class="posthead">Done:</h4> <ul>
<li>Regular bug triage (epic bug triage deferred)</li>
<li>Tinkering with the Bugzilla APIs</li>
<li>Cleared out my inbox and review queues</li>
</ul>
          </div>
          <div class="planned">
            <h4 class="posthead">Next:</h4> <ul>
<li>Formalise priorities for the Jetpack team</li>
</ul>
<p>Next week I&#039;ll probably be in and out randomly as relatives and friends are going to be in town</p>
          </div>
      </div>
    ]]></content:encoded>
			<wfw:commentRss>http://stage.oxymoronical.com/blog/2011/08/Mossop-Status-Update-2011-08-26/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mossop Status Update: 2011-08-15</title>
		<link>http://stage.oxymoronical.com/blog/2011/08/Mossop-Status-Update-2011-08-15</link>
		<comments>http://stage.oxymoronical.com/blog/2011/08/Mossop-Status-Update-2011-08-15#comments</comments>
		<pubDate>Mon, 15 Aug 2011 12:50:15 +0000</pubDate>
		<dc:creator>Mossop</dc:creator>
				<category><![CDATA[mozilla]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[planning]]></category>
		<category><![CDATA[status]]></category>

		<guid isPermaLink="false">http://www.oxymoronical.com/?guid=9225a7c2ea17e925ce35624193a88bd3</guid>
		<description><![CDATA[
      
          
            Done: 
Landed UI to allow users to check they have the add-ons they want on next upgrade (bug 596343)
Landed UI to allow users to confirm that they want third-party add-ons before they are enabled (bug 476430)
E10S planni...]]></description>
			<content:encoded><![CDATA[
      <div class="postdata">
          <div class="completed">
            <h4 class="posthead">Done:</h4> <ul>
<li>Landed UI to allow users to check they have the add-ons they want on next upgrade (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=596343">bug 596343</a>)</li>
<li>Landed UI to allow users to confirm that they want third-party add-ons before they are enabled (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=476430">bug 476430</a>)</li>
<li>E10S planning</li>
</ul>
          </div>
          <div class="planned">
            <h4 class="posthead">Next:</h4> <ul>
<li>Fix test failures on aurora</li>
<li>Mobile planning</li>
</ul>
          </div>
      </div>
    ]]></content:encoded>
			<wfw:commentRss>http://stage.oxymoronical.com/blog/2011/08/Mossop-Status-Update-2011-08-15/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Adding add-on preferences to the Add-ons Manager</title>
		<link>http://stage.oxymoronical.com/blog/2011/07/Adding-add-on-preferences-to-the-Add-ons-Manager</link>
		<comments>http://stage.oxymoronical.com/blog/2011/07/Adding-add-on-preferences-to-the-Add-ons-Manager#comments</comments>
		<pubDate>Thu, 07 Jul 2011 18:06:32 +0000</pubDate>
		<dc:creator>Mossop</dc:creator>
				<category><![CDATA[mozilla]]></category>
		<category><![CDATA[addons]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[extension manager]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[restartless]]></category>

		<guid isPermaLink="false">http://www.oxymoronical.com/?p=1089</guid>
		<description><![CDATA[For some time now Firefox for mobile has had this nice feature where add-ons could embed their preferences right into the list of add-ons, no need to open a whole a new window like add-ons for desktop have to. During the development of Firefox 4 we were a little jealous of what the mobile team [...]]]></description>
			<content:encoded><![CDATA[<p>For some time now Firefox for mobile has had this nice feature where add-ons could embed their preferences right into the list of add-ons, no need to open a whole a new window like add-ons for desktop have to. During the development of Firefox 4 we were a little jealous of what the mobile team had done and so we drew up some ideas for how the same functionality would look on desktop. We didn&#8217;t get time to implement them then but I&#8217;m excited that someone from the community stepped up and implemented it for us. Not just that but he made the code shared between mobile and desktop, added some new option types and made it work fine for restartless add-ons which are unable to register their own chrome.</p>
<p>The basic idea is simple. Create a XUL file containing a list of <code>&lt;setting&gt;</code> elements. Different types of settings are possible, checkboxes, input boxes, menulists, buttons, etc. Each one shows up as a row in the details view for an add-on in the add-ons manager. The XUL file can either be just added to your XPI (call it <code>options.xul</code>) or referenced by the <code>optionsURL</code> option in your <code>install.rdf</code>.</p>
<p>Get it right and you&#8217;ll see something like this:</p>
<p style="text-align: center;"><a href="http://www.oxymoronical.com/wp/wp-content/uploads/2011/07/Screen-shot-2011-07-07-at-10.57.04.png"><img class="aligncenter size-full wp-image-1090" title="Inline preferences in the Add-ons Manager" src="http://www.oxymoronical.com/wp/wp-content/uploads/2011/07/Screen-shot-2011-07-07-at-10.57.04.png" alt="" width="739" height="631" /></a></p>
<p style="text-align: left;">I want to thank <a href="http://www.darktrojan.net">Geoff Lankow (darktrojan on IRC)</a> for his awesome work getting this done. This feature is now in the <a href="http://www.mozilla.com/firefox/channel/">Aurora</a> builds and it&#8217;d be great to get add-on developers playing with it. Geoff even wrote up some <a href="https://developer.mozilla.org/en/Extensions/Inline_Options">detailed docs</a> to help you out.</p>
<p>As a bonus Geoff also implemented support for in-tab preferences. This makes Firefox load an add-ons options UI in a new tab instead of a new window. Setting the <code><a href="https://developer.mozilla.org/en/Install_Manifests#optionsType">optionsType</a></code> property to 3 enables this.</p>
]]></content:encoded>
			<wfw:commentRss>http://stage.oxymoronical.com/blog/2011/07/Adding-add-on-preferences-to-the-Add-ons-Manager/feed</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>Making it easier to check that your plugins are up to date</title>
		<link>http://stage.oxymoronical.com/blog/2011/07/Making-it-easier-to-check-that-your-plugins-are-up-to-date</link>
		<comments>http://stage.oxymoronical.com/blog/2011/07/Making-it-easier-to-check-that-your-plugins-are-up-to-date#comments</comments>
		<pubDate>Thu, 07 Jul 2011 16:48:31 +0000</pubDate>
		<dc:creator>Mossop</dc:creator>
				<category><![CDATA[mozilla]]></category>
		<category><![CDATA[addons]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[plugins]]></category>

		<guid isPermaLink="false">http://www.oxymoronical.com/?p=1053</guid>
		<description><![CDATA[Keeping the software you use up to date is a crucial part of keeping yourself safe while browsing online. At Mozilla we work hard to help you get the most up to date version of Firefox and all the add-ons you have installed. For some time now security updates for Firefox have been installed without [...]]]></description>
			<content:encoded><![CDATA[<p>Keeping the software you use up to date is a crucial part of keeping yourself safe while browsing online. At Mozilla we work hard to help you get the most up to date version of Firefox and all the add-ons you have installed. For some time now security updates for Firefox have been installed without you needing to do anything. In Firefox 4 we made extension and theme updates behave similarly.</p>
<p>Plugins, like Flash, Quicktime and Java for example, are a little more difficult to update in this way though. They tend to require explicit permission to install new versions and so we haven&#8217;t quite gotten to the point of doing this completely automatically. Instead we developed the <a href="https://www.mozilla.com/plugincheck/">plugin check page</a> which can quickly and easily tell you which of the plugins you have installed are old and need updating. It will also tell you where to go to update them.</p>
<p>The latest version of Firefox currently in beta makes it easier to get to the plugin check page. Simply go to the Add-ons Manager, click on the Plugins section and there is a link at the top of the page to check if your plugins are up to date.</p>
]]></content:encoded>
			<wfw:commentRss>http://stage.oxymoronical.com/blog/2011/07/Making-it-easier-to-check-that-your-plugins-are-up-to-date/feed</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Why do Firefox updates break add-ons?</title>
		<link>http://stage.oxymoronical.com/blog/2011/06/Why-do-Firefox-updates-break-add-ons</link>
		<comments>http://stage.oxymoronical.com/blog/2011/06/Why-do-Firefox-updates-break-add-ons#comments</comments>
		<pubDate>Fri, 24 Jun 2011 23:25:22 +0000</pubDate>
		<dc:creator>Mossop</dc:creator>
				<category><![CDATA[mozilla]]></category>
		<category><![CDATA[addons]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[firefox]]></category>

		<guid isPermaLink="false">http://www.oxymoronical.com/?p=1064</guid>
		<description><![CDATA[Our success in switching to the new rapid release cycle for Firefox has stirred up lots of excitement in the community and I wouldn&#8217;t be surprised if that intensifies when we ship the next update to Firefox in 8 weeks time. People keep pointing out that everytime we update Firefox we break add-ons so surely [...]]]></description>
			<content:encoded><![CDATA[<p>Our success in switching to the new rapid release cycle for Firefox has stirred up lots of excitement in the community and I wouldn&#8217;t be surprised if that intensifies when we ship the next update to Firefox in 8 weeks time. People keep pointing out that everytime we update Firefox we break add-ons so surely faster releases means add-ons will get broken faster. Many people don&#8217;t really understand why Firefox updates should break add-ons anyway so here is my attempt at an explanation and how maybe rapid releases aren&#8217;t such a bad thing after all.</p>
<p>The crux of the matter is in how deeply we allow add-ons integrate with Firefox. Most browsers separate add-ons from their code using what can be called an add-on API. All the add-on can see and use is what the browser makes available through that API and this is normally a restricted set of functionality. Firefox has no such separation. Add-on code runs in exactly the same setting as the browser code, they can call any of the internal functionality that we write to make the browser work in the first place.</p>
<p>There are big advantages to the Firefox way:</p>
<ul>
<li>Add-ons can do basically anything, allowing really complicated add-ons like Firebug and NoScript to exist.</li>
<li>Authors don&#8217;t have to wait for features to be exposed through some API to be able to use it, as soon as the feature is in the application add-ons can use it.</li>
</ul>
<p>There are also some disadvantages:</p>
<ul>
<li>Add-ons can do basically anything so you should be wary about installing add-ons from people you don&#8217;t trust!</li>
<li>Because we aren&#8217;t forced to provide an API specifically for add-ons sometimes what is there can be cumbersome for add-ons to use.</li>
<li>Add-ons rely on internal functions, if we make a change to one then it breaks the add-on.</li>
</ul>
<p>It is that last point which explains why Firefox updates break add-ons. Any time we add, remove or change some code we run a risk that some add-on depends on it and so will break. Some bits of code are more important than others but we have such a vast library of add-ons now that it&#8217;s probably getting to the point where almost everything is in use. When people say that Firefox updates shouldn&#8217;t break add-ons what they don&#8217;t realise is that they&#8217;re asking us to stop making changes to Firefox: no new features, no bug fixes.</p>
<h2>How does the Add-ons SDK fit in?</h2>
<p>With the most recent update to Firefox we also made the first official release of the new <a title="Add-ons SDK and Builder" href="https://addons.mozilla.org/en-US/developers/builder">add-ons SDK</a> available. These are tools designed to make developing add-ons for Firefox easier and faster and they largely serve as an add-ons API sitting between the add-on and Firefox with one difference, the API is actually a part of the add-on so you can actually write your own additional APIs to supplement those in the core SDK.</p>
<p>Add-ons written with the SDK (and only using the core APIs) gain a lot of the benefits of add-ons for other browsers. The APIs in the SDK can be far more stable than those in the browser itself, as the browser code changes the internal SDK code can adapt to match allowing add-ons to work just by rebuilding with the newer SDK. This makes the problem of Firefox updates much smaller for those that can move their add-ons to the SDK.</p>
<p>I don&#8217;t foresee a future where the only add-ons are SDK based though. We&#8217;d lose too many really important add-ons that way so the SDK doesn&#8217;t completely solve the problem.</p>
<h2>How does rapid release affect the problem?</h2>
<p>As I&#8217;ve said, when Firefox updates it breaks add-ons. Ask any add-on author how much fun it was fixing their add-ons to work from Firefox 2 to Firefox 3 or 3.6 to 4 and you&#8217;ll probably get some pained expressions. Now think about how in the past we would do a Firefox update about once a year, now we are talking about it being more than eight times a year. Having given up maintaining my own add-ons I can hardly blame authors who are concerned that they won&#8217;t be able to keep up with the pace.</p>
<p>It actually isn&#8217;t all bad though. It&#8217;s not like we are making more changes than we were before, we&#8217;re just releasing them sooner in bite-sized chunks. Instead of one update a year that probably changes every piece of functionality an add-on might use we do 8 smaller updates, each one touching smaller parts of the code. This means it is more likely that an add-on can survive an update than before.</p>
<p>The stability of updates is a key change too. It used to be that add-on authors might choose to wait for the RC stage of an update before updating their add-ons. We&#8217;d make so many changes even during the beta cycle that sometimes it wasn&#8217;t worth trying to keep up. In our new cycle though there is a full 6 weeks in the beta cycle before release during which time almost nothing changes, no new features, extremely limited bugfixes, just things to solve any stability issues that have been found. Before that there is 6 weeks in the aurora cycle which again should be largely change free. Some new features might get removed at this point and there is the possibility of larger bugfixes, but based on the two aurora cycles we&#8217;ve had so far there are far fewer changes going in than there were in the final beta stages of Firefox 4.</p>
<p>I actually think that rapid releases can make it easier for add-on authors to keep up. Sure you have to check your add-on more often but most of the time it will probably just work, if not the scope of change is likely to be smaller and you have 12 weeks of pretty stable code to build against.</p>
<h2>Why not just mark add-ons as working when they are?</h2>
<p>A pretty common question asked is why we don&#8217;t just mark add-ons as working in the new update of Firefox when we know they are. The good news is that we actually are starting to do this. As we make changes to Firefox we plan to keep track of which changes have the potential to affect add-on compatibility and automatically scan add-ons on AMO to find ones that might break.</p>
<p>In the run up to the most recent update of Firefox we found <a href="http://blog.mozilla.com/addons/2011/05/21/firefox-5-compatibility-bump/">nearly 4,000</a> add-ons that were unlikely to be affected by the update and just marked them as compatible with no need for the add-on author to do anything. For the others we emailed the author to explain what problems we had found. You can read more about the <a href="http://blog.mozilla.com/addons/2011/04/19/add-on-compatibility-rapid-releases/">compatibility checking process</a> we&#8217;ll be using.</p>
<p>As well as automated tools the <a href="https://addons.mozilla.org/en-US/firefox/addon/add-on-compatibility-reporter/">add-on compatibility reporter</a> provides add-on authors valuable feedback on how their add-ons are performing in Firefox. Users can install this tool and then use normally incompatible add-ons and file reports on whether they are working or not.</p>
<h2>Faster releases are good for add-ons</h2>
<p>Rapid release is all about getting new features into users&#8217; hands faster. It has a side effect though, it gets new features and APIs into add-on authors&#8217; hands faster too. Back when I was still writing add-ons I would frequently do so in response to some fantastic new thing that had been added to the Firefox nightlies. It could then be up to a year before I&#8217;d be able to release an add-on that normal users could actually make use of, by which point I&#8217;d often have lost interest in it.</p>
<p>I think that on the whole faster releases will be a good thing for add-ons. Add-on developers can get exciting new features into users&#8217; hands faster and should only need to make smaller updates with each new Firefox. The new automated tools we are building to help authors understand when and why their add-ons are no longer compatible are going to be a massive improvement, especially as we get better at identifying the changes we make in Firefox that will affect add-ons.</p>
<p>Time will tell of course, but I do believe that the overall work an author has to do to keep an add-on up to date with Firefox is going to drop with the new rapid release cycle even though they may have to do something more often.</p>
]]></content:encoded>
			<wfw:commentRss>http://stage.oxymoronical.com/blog/2011/06/Why-do-Firefox-updates-break-add-ons/feed</wfw:commentRss>
		<slash:comments>17</slash:comments>
		</item>
	</channel>
</rss>

