<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>mozilla on Oxymoronical</title>
    <link>https://www.oxymoronical.com/blog/category/technical/mozilla/</link>
    <description>Recent content in mozilla on Oxymoronical</description>
    <generator>Hugo</generator>
    <language>en-us</language>
    <lastBuildDate>Mon, 09 Feb 2026 18:00:00 +0000</lastBuildDate>
    <atom:link href="https://www.oxymoronical.com/blog/category/technical/mozilla/feed/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Can&#39;t you do this faster with AI?</title>
      <link>https://www.oxymoronical.com/blog/2026/01/cant-you-do-this-faster-with-ai/</link>
      <pubDate>Mon, 09 Feb 2026 18:00:00 +0000</pubDate>
      <guid>https://www.oxymoronical.com/blog/2026/01/cant-you-do-this-faster-with-ai/</guid>
      <description>&lt;p&gt;I&amp;rsquo;m hearing this question asked a lot lately. Both within Mozilla and from others in the industry. You come up with a plan for implementing some feature, put your best estimate on how long it will take to implement, and then you get push back from folks several levels removed from the project along the lines of &lt;em&gt;&amp;ldquo;Wouldn&amp;rsquo;t this be faster if you used AI?&amp;rdquo;&lt;/em&gt;, or &lt;em&gt;&amp;ldquo;Can&amp;rsquo;t Claude Code do most of this?&amp;rdquo;&lt;/em&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>What would you say you do here?</title>
      <link>https://www.oxymoronical.com/blog/2025/06/what-would-you-say-you-do-here/</link>
      <pubDate>Tue, 10 Jun 2025 11:12:00 +0100</pubDate>
      <guid>https://www.oxymoronical.com/blog/2025/06/what-would-you-say-you-do-here/</guid>
      <description>&lt;p&gt;I&amp;rsquo;m currently joining a couple of new projects and the inevitable first step is introductions over Zoom and the usual questions: who are you, where are you based, and what is your role on this project. I&amp;rsquo;m a Principal Engineer here at Mozilla, which might make you think that my role is going to be a lot of development. But this isn&amp;rsquo;t the case and I thought others might be interested in what it actually means. Somehow along the way it ended up turning into a post about how I see the different career levels for engineers at Mozilla, but hey maybe that is useful for others too?&lt;/p&gt;</description>
    </item>
    <item>
      <title>Some thoughts on coding with AI</title>
      <link>https://www.oxymoronical.com/blog/2025/05/thoughts-on-coding-with-ai/</link>
      <pubDate>Sat, 24 May 2025 20:17:00 +0100</pubDate>
      <guid>https://www.oxymoronical.com/blog/2025/05/thoughts-on-coding-with-ai/</guid>
      <description>&lt;p&gt;As you probably know AI tools are here and expectations range from &amp;ldquo;This is going to destroy the environment and make everyone unemployed&amp;rdquo; to &amp;ldquo;This is going to usher in a golden age freeing humanity from drudgery&amp;rdquo;. The reality is of course somewhere between the two and I don&amp;rsquo;t think we&amp;rsquo;re really going to know exactly where for many years.&lt;/p&gt;&#xA;&lt;p&gt;I believe strongly in learning and understanding the tools available to us so that we can make pragmatic choices about what tools to use when. So for quite a while I&amp;rsquo;ve made various attempts to try using AI for coding. Most of my attempts have involved going to ChatGPT and asking it to write some code for me or answer questions about API specs. And it&amp;rsquo;s never been a great experience. Generally the code it generated wouldn&amp;rsquo;t work and it would confidently lie about what specs required. Clearly some people find this useful but I&amp;rsquo;ve never quite found out why yet.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Tests don&#39;t replace Code Review</title>
      <link>https://www.oxymoronical.com/blog/2024/05/tests-dont-replace-code-review/</link>
      <pubDate>Wed, 01 May 2024 23:02:00 +0100</pubDate>
      <guid>https://www.oxymoronical.com/blog/2024/05/tests-dont-replace-code-review/</guid>
      <description>&lt;p&gt;I frequently see a bold claim come up in tech circles. That as a team you&amp;rsquo;re wasting time by doing code reviews. You should instead rely on automated tests to catch bugs. This surprises me because I can&amp;rsquo;t imagine anyone thinking that such a blanket statement is true. But then most of the time this is brought up in places like Twitter where nuance is impossible and engagement farming is rife. Still it got me thinking about why I think code review is important even if you have amazing tests.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Using VS Code for merges in Mercurial</title>
      <link>https://www.oxymoronical.com/blog/2022/09/using-vs-code-for-merges-in-mercurial/</link>
      <pubDate>Tue, 06 Sep 2022 17:33:53 +0000</pubDate>
      <guid>https://www.oxymoronical.com/blog/2022/09/using-vs-code-for-merges-in-mercurial/</guid>
      <description>&lt;p&gt;I’ve always struggled to find a graphical merge tool that I can actually understand and up until now I have just been using merge markers along with a handy Mercurial command to open all conflicted files in VS Code, my editor of preference.&lt;/p&gt;&#xA;&lt;p&gt;Well it turns out that since version 1.69 VS Code now has built in support for acting as a merge tool and after trying it out I actually found it to be useful! Given that they (and the rest of the world) tend to focus on Git I couldn’t find explicit instructions for setting it up for Mercurial so here is how you do it. Add the following to your &lt;code&gt;~/.hgrc&lt;/code&gt;:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Creating HTML content with a fixed aspect ratio without the padding trick</title>
      <link>https://www.oxymoronical.com/blog/2019/10/creating-html-content-with-a-fixed-aspect-ratio-without-the-padding-trick/</link>
      <pubDate>Wed, 30 Oct 2019 10:01:09 +0000</pubDate>
      <guid>https://www.oxymoronical.com/blog/2019/10/creating-html-content-with-a-fixed-aspect-ratio-without-the-padding-trick/</guid>
      <description>&lt;p&gt;It seems to be a common problem, you want to display some content on the web with a certain aspect ratio but you don’t know the size you will be displaying at. How do you do this? CSS doesn’t really have the tools to do the job well currently (there are &lt;a href=&#34;https://jonathankingston.github.io/logical-sizing-properties/&#34;&gt;proposals&lt;/a&gt;). In my case I want to display a video and associated controls as large as possible inside a space that I don’t know the size of. The size of the video also varies depending on the one being displayed.&lt;/p&gt;</description>
    </item>
    <item>
      <title>A simple command to open all files with merge conflicts</title>
      <link>https://www.oxymoronical.com/blog/2019/10/a-simple-command-to-open-all-files-with-merge-conflicts/</link>
      <pubDate>Wed, 09 Oct 2019 10:28:19 +0000</pubDate>
      <guid>https://www.oxymoronical.com/blog/2019/10/a-simple-command-to-open-all-files-with-merge-conflicts/</guid>
      <description>&lt;p&gt;When I get merge conflicts in a rebase I found it irritating to open up the problem files in my editor, I couldn’t find anything past copying and pasting the file path or locating it in the source tree. So I wrote a simple &lt;code&gt;hg&lt;/code&gt; command to open all the unresolved files into my editor. Maybe this is useful to you too?&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;[alias]&#xA;unresolved = !$HG resolve -l &amp;#34;set:unresolved()&amp;#34; -T &amp;#34;{reporoot}/{path}\0&amp;#34; | xargs -0 $EDITOR&#xA;&lt;/code&gt;&lt;/pre&gt;</description>
    </item>
    <item>
      <title>Please watch your character encodings</title>
      <link>https://www.oxymoronical.com/blog/2019/07/Please-watch-your-character-encodings/</link>
      <pubDate>Wed, 10 Jul 2019 13:38:01 +0000</pubDate>
      <guid>https://www.oxymoronical.com/blog/2019/07/Please-watch-your-character-encodings/</guid>
      <description>&lt;p&gt;I started writing this as a newsgroup post for one of Mozilla’s mailing lists, but it turned out to be too long and since this part was mainly aimed at folks who either didn’t know about or wanted a quick refresher on character encodings I decided to blog it instead. Please let me know if there are errors in here, I am by no means an expert on this stuff either and I do get caught out sometimes!&lt;/p&gt;</description>
    </item>
    <item>
      <title>Welcoming a new Firefox/Toolkit peer</title>
      <link>https://www.oxymoronical.com/blog/2019/02/Welcoming-a-new-FirefoxToolkit-peer/</link>
      <pubDate>Wed, 13 Feb 2019 12:49:39 +0000</pubDate>
      <guid>https://www.oxymoronical.com/blog/2019/02/Welcoming-a-new-FirefoxToolkit-peer/</guid>
      <description>&lt;p&gt;Please join me in welcoming Bianca Danforth to the set of peers blessed with reviewing patches to Firefox and Toolkit. She’s been doing great work making testing experiment extensions easy and so it’s time for her to level-up.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Taming Phabricator</title>
      <link>https://www.oxymoronical.com/blog/2018/06/Taming-Phabricator/</link>
      <pubDate>Tue, 19 Jun 2018 10:31:08 +0000</pubDate>
      <guid>https://www.oxymoronical.com/blog/2018/06/Taming-Phabricator/</guid>
      <description>&lt;p&gt;So Mozilla is going all-in on Phabricator and Differential as a code review tool. I have mixed feelings on this, not least because it’s support for patch series is more manual than I’d like. But since this is the choice Mozilla has made I might as well start to get used to it. One of the first things you see when you log into Phabricator is a default view full of information.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Searchfox in VS Code</title>
      <link>https://www.oxymoronical.com/blog/2018/06/Searchfox-in-VS-Code/</link>
      <pubDate>Thu, 07 Jun 2018 12:21:13 +0000</pubDate>
      <guid>https://www.oxymoronical.com/blog/2018/06/Searchfox-in-VS-Code/</guid>
      <description>&lt;p&gt;I spend most of my time developing flipping back and forth between &lt;a href=&#34;https://code.visualstudio.com/&#34;&gt;VS Code&lt;/a&gt; and &lt;a href=&#34;https://searchfox.org/&#34;&gt;Searchfox&lt;/a&gt;. VS Code is a great editor but it has nowhere near the speed needed to do searches over the entire tree, at least on my machine. Searchfox on the other hand is pretty fast. But there’s something missing. I usually want to search Searchfox for something I found in the code. Then I want to get the file I found in Searchfox open in my editor.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Even more new peers</title>
      <link>https://www.oxymoronical.com/blog/2017/09/Even-more-new-peers/</link>
      <pubDate>Wed, 20 Sep 2017 10:33:08 +0000</pubDate>
      <guid>https://www.oxymoronical.com/blog/2017/09/Even-more-new-peers/</guid>
      <description>&lt;p&gt;Please welcome the latest new peers to Firefox and Toolkit:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Johann Hofmann&lt;/li&gt;&#xA;&lt;li&gt;Nihanth Subramanya&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;As you might gather I’ve been updating the peer list a lot lately trying to catch up with reality. If there is anyone I’m missing then please let me know!&lt;/p&gt;</description>
    </item>
    <item>
      <title>How do you become a Firefox peer? The answer may surprise you!</title>
      <link>https://www.oxymoronical.com/blog/2017/09/How-do-you-become-a-Firefox-peer-The-answer-may-surprise-you/</link>
      <pubDate>Wed, 13 Sep 2017 11:02:42 +0000</pubDate>
      <guid>https://www.oxymoronical.com/blog/2017/09/How-do-you-become-a-Firefox-peer-The-answer-may-surprise-you/</guid>
      <description>&lt;p&gt;So you want to know how someone becomes a peer? Surprisingly the answer is pretty unclear. There is no formal process for peer status, at least for Firefox and Toolkit. I haven’t spotted one for other modules either. What has generally happened in the past is that from time to time someone will come along and say, “Oh hey, shouldn’t X be a peer by now?” to which I will say “Uhhh maybe! Let me go talk to some of the other peers that they have worked with”. After that magic happens and I go and update the stupid wiki pages, write a blog post and mail the new peers to congratulate them.&lt;/p&gt;</description>
    </item>
    <item>
      <title>New Firefox and Toolkit module peers</title>
      <link>https://www.oxymoronical.com/blog/2017/09/New-Firefox-and-Toolkit-module-peers/</link>
      <pubDate>Tue, 12 Sep 2017 14:44:03 +0000</pubDate>
      <guid>https://www.oxymoronical.com/blog/2017/09/New-Firefox-and-Toolkit-module-peers/</guid>
      <description>&lt;p&gt;Please join me in welcoming another set of brave souls willing to help shepherd new code into Firefox and Toolkit:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Luke Chang&lt;/li&gt;&#xA;&lt;li&gt;Ricky Chien&lt;/li&gt;&#xA;&lt;li&gt;Luca Greco&lt;/li&gt;&#xA;&lt;li&gt;Kate Hudson&lt;/li&gt;&#xA;&lt;li&gt;Tomislav Jovanovic&lt;/li&gt;&#xA;&lt;li&gt;Ray Lin&lt;/li&gt;&#xA;&lt;li&gt;Fischer Liu&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;While going through this round of peer updates I’ve realised that it isn’t terribly clear how people become peers. I intend to rectify that in a coming &lt;a href=&#34;https://www.oxymoronical.com/blog/2017/09/How-do-you-become-a-Firefox-peer-The-answer-may-surprise-you&#34;&gt;blog post&lt;/a&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>New Firefox and Toolkit module peers in Taipei!</title>
      <link>https://www.oxymoronical.com/blog/2017/08/New-Firefox-and-Toolkit-module-peers-in-Taipei/</link>
      <pubDate>Wed, 09 Aug 2017 16:05:13 +0000</pubDate>
      <guid>https://www.oxymoronical.com/blog/2017/08/New-Firefox-and-Toolkit-module-peers-in-Taipei/</guid>
      <description>&lt;p&gt;Please join me in welcoming three new peers to the Firefox and Toolkit modules. All of them are based in Taipei and I believe that they are our first such peers which is very exciting as it means we now have more global coverage.&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Tim Guan-tin Chien&lt;/li&gt;&#xA;&lt;li&gt;KM Lee Rex&lt;/li&gt;&#xA;&lt;li&gt;Fred Lin&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;I’ve &lt;a href=&#34;https://www.oxymoronical.com/blog/2016/06/New-Firefox-reviewers&#34;&gt;blogged before about the things I expect&lt;/a&gt; from the peers and while I try to keep the lists up to date myself please feel free to point out folks you think may have been passed over.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Thoughts on the module system</title>
      <link>https://www.oxymoronical.com/blog/2017/07/Thoughts-on-the-module-system/</link>
      <pubDate>Thu, 13 Jul 2017 15:06:04 +0000</pubDate>
      <guid>https://www.oxymoronical.com/blog/2017/07/Thoughts-on-the-module-system/</guid>
      <description>&lt;p&gt;For a long long time Mozilla has governed its code (and a few other things) as a series of modules. Each module covers an area of code in the source and has an owner and a list of peers, folks that are knowledgeable about that module. The &lt;a href=&#34;https://wiki.mozilla.org/Modules&#34;&gt;full list of modules&lt;/a&gt; is public. In the early days the module system was everything. Module owners had almost complete freedom to evolve their module as they saw fit including choosing what features to implement and what bugs to fix. The folks who served as owners and peers came from diverse areas too. They weren’t just Mozilla employees, many were outside contributors.&lt;/p&gt;</description>
    </item>
    <item>
      <title>More new Firefox/Toolkit peers</title>
      <link>https://www.oxymoronical.com/blog/2017/02/More-new-FirefoxToolkit-peers/</link>
      <pubDate>Thu, 23 Feb 2017 09:51:28 +0000</pubDate>
      <guid>https://www.oxymoronical.com/blog/2017/02/More-new-FirefoxToolkit-peers/</guid>
      <description>&lt;p&gt;A few things are happening which means there are a bunch of new Firefox/Toolkit peers to announce.&lt;/p&gt;&#xA;&lt;p&gt;First since I’m now owner of both Firefox and Toolkit I’ve decided it doesn’t make much sense to have separate lists of peers. Either I trust people to review or I don’t so I’m merging the lists of peers for these modules. Practically since Toolkit already included all of the Firefox peers this just means that the following folks are now Firefox peers in addition to already being Toolkit peers:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Welcome to a new Firefox/Toolkit peer, Shane Caraveo</title>
      <link>https://www.oxymoronical.com/blog/2017/02/Welcome-to-a-new-FirefoxToolkit-peer-Shane-Caraveo/</link>
      <pubDate>Tue, 21 Feb 2017 09:49:38 +0000</pubDate>
      <guid>https://www.oxymoronical.com/blog/2017/02/Welcome-to-a-new-FirefoxToolkit-peer-Shane-Caraveo/</guid>
      <description>&lt;p&gt;It’s that time again when I get to announce a new Firefox/Toolkit peer. Shane has been involved with Mozilla for longer than I can remember and recently he has been doing fine work on webextensions including the new sidebar API. As usual we probably should have made Shane a peer sooner so this is a case of better late than never.&lt;/p&gt;&#xA;&lt;p&gt;I took a moment to tell Shane what I expect of all my peers:&lt;/p&gt;</description>
    </item>
    <item>
      <title>hgchanges is down, probably for good</title>
      <link>https://www.oxymoronical.com/blog/2017/02/hgchanges-is-down-probably-for-good/</link>
      <pubDate>Mon, 06 Feb 2017 14:01:35 +0000</pubDate>
      <guid>https://www.oxymoronical.com/blog/2017/02/hgchanges-is-down-probably-for-good/</guid>
      <description>&lt;p&gt;My little tool to help folks track when changes are made to files or directories in Mozilla’s mercurial repositories has gone down again. This time an influx of some 8000 changesets from the servo project are causing the script that does the updating to fail so I’ve turned off updating. I no longer have any time to work on this tool so I’ve also taken it offline and don’t really have any intention to bring it back up again. Sorry to the few people that this inconveniences. Please go lobby the engineering productivity folks if you still need a tool like this.&lt;/p&gt;</description>
    </item>
    <item>
      <title>On Firefox module ownership</title>
      <link>https://www.oxymoronical.com/blog/2016/12/On-Firefox-module-ownership/</link>
      <pubDate>Wed, 14 Dec 2016 16:15:24 +0000</pubDate>
      <guid>https://www.oxymoronical.com/blog/2016/12/On-Firefox-module-ownership/</guid>
      <description>&lt;p&gt;It has been over eleven years since I first wrote a patch for Firefox. It was reviewed by the then-Firefox module owner, Mike Connor. If you had told me then that at some point in the future &lt;em&gt;I&lt;/em&gt; was going to be the module owner I probably would have laughed at you. I didn’t know at the time how much Mozilla would shape my life. Yet yesterday Dave Camp handed over the reigns to me and here we are.&lt;/p&gt;</description>
    </item>
    <item>
      <title>A new owner for the add-ons manager</title>
      <link>https://www.oxymoronical.com/blog/2016/08/A-new-owner-for-the-add-ons-manager/</link>
      <pubDate>Mon, 15 Aug 2016 16:29:33 +0000</pubDate>
      <guid>https://www.oxymoronical.com/blog/2016/08/A-new-owner-for-the-add-ons-manager/</guid>
      <description>&lt;p&gt;I’ve been acting as the owner for the add-ons manager for the past little while and while I have always cared a lot about the add-ons space it is time to formerly pass over the torch. So I was pleased that &lt;a href=&#34;http://rhelmer.org/blog/&#34;&gt;Rob Helmer&lt;/a&gt; was willing to take it over from me.&lt;/p&gt;&#xA;&lt;p&gt;Rob has been doing some exceptional work on making system add-ons (used as part of the go faster project) more robust and easier for Mozilla to use. He’s also been thinking lot about improvements we can make to the add-ons manager code to make it more friendly to approach.&lt;/p&gt;</description>
    </item>
    <item>
      <title>New Firefox reviewers</title>
      <link>https://www.oxymoronical.com/blog/2016/06/New-Firefox-reviewers/</link>
      <pubDate>Wed, 08 Jun 2016 09:34:36 +0000</pubDate>
      <guid>https://www.oxymoronical.com/blog/2016/06/New-Firefox-reviewers/</guid>
      <description>&lt;p&gt;I’m delighted to announce that I’ve just made Andrew Swan (aswan on IRC) a reviewer for Firefox code. That also reminds me that I failed to announce when I did the same for Rob Helmer (rhelmer). Please inundate them with patches.&lt;/p&gt;&#xA;&lt;p&gt;There are a few key things I look for when promoting folks to reviewers, surprisingly none of them are an understanding of the full breadth of code in Firefox or Toolkit:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Improving the performance of the add-ons manager with asynchronous file I/O</title>
      <link>https://www.oxymoronical.com/blog/2016/01/Improving-the-performance-of-the-add-ons-manager-with-asynchronous-file-IO/</link>
      <pubDate>Wed, 27 Jan 2016 12:35:25 +0000</pubDate>
      <guid>https://www.oxymoronical.com/blog/2016/01/Improving-the-performance-of-the-add-ons-manager-with-asynchronous-file-IO/</guid>
      <description>&lt;p&gt;The add-ons manager has a dirty secret. It uses an awful lot of synchronous file I/O. This is the kind of I/O that blocks the main thread and can cause Firefox to be janky. I’m told that that is a technical term. Asynchronous file I/O is much nicer, it means you can let the rest of the app continue to function while you wait for the I/O operation to complete. I rewrote much of the current code from scratch for Firefox 4.0 and even back then we were trying to switch to asynchronous file I/O wherever possible. But still I used mostly synchronous file I/O.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Linting for Mozilla JavaScript code</title>
      <link>https://www.oxymoronical.com/blog/2015/12/Linting-for-Mozilla-JavaScript-code/</link>
      <pubDate>Fri, 18 Dec 2015 11:27:07 +0000</pubDate>
      <guid>https://www.oxymoronical.com/blog/2015/12/Linting-for-Mozilla-JavaScript-code/</guid>
      <description>&lt;p&gt;One of the projects I’ve been really excited about recently is getting ESLint working for a lot of our JavaScript code. If you haven’t come across ESLint or linters in general before they are automated tools that scan your code and warn you about syntax errors. They can usually also be set up with a set of rules to enforce code styles and warn about potential bad practices. The devtools and Hello folks have been using eslint for a while already and Gijs asked why we weren’t doing this more generally. This struck a chord with me and a few others and so we’ve been spending some time over the past few weeks getting our in-tree support for ESLint to work more generally and fixing issues with browser and toolkit JavaScript code in particular to make them lintable.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Running ESLint on commit</title>
      <link>https://www.oxymoronical.com/blog/2015/12/Running-ESLint-on-commit/</link>
      <pubDate>Fri, 18 Dec 2015 11:24:23 +0000</pubDate>
      <guid>https://www.oxymoronical.com/blog/2015/12/Running-ESLint-on-commit/</guid>
      <description>&lt;p&gt;ESLint becomes the most useful when you get warnings before even trying to land or get your code reviewed. You can add support to your code editor but not all editors support this so I’ve written a mercurial extension which gives you warnings any time you commit code that fails lint checks. It uses the same rules we run elsewhere. It doesn’t abort the commit, that would be annoying if you’re working on a feature branch but gives you a heads up about what needs to be fixed and where.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Delivering Firefox features faster</title>
      <link>https://www.oxymoronical.com/blog/2015/10/Delivering-Firefox-features-faster/</link>
      <pubDate>Mon, 05 Oct 2015 11:20:28 +0000</pubDate>
      <guid>https://www.oxymoronical.com/blog/2015/10/Delivering-Firefox-features-faster/</guid>
      <description>&lt;p&gt;Over time Mozilla has been trying to reduce the amount of time between developing a feature and getting it into a user’s hands. Some time ago we would do around one feature release of Firefox every year, more recently we’ve moved to doing one feature release every six weeks. But it still takes at least 12 weeks for a feature to get to users. In some cases we can speed that up by landing new things directly on the beta/aurora branches but the more we do this the harder it is for release managers to track the risk of shipping a given release.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Making communicating with chrome from in-content pages easy</title>
      <link>https://www.oxymoronical.com/blog/2015/03/Making-communicating-with-chrome-from-in-content-pages-easy/</link>
      <pubDate>Mon, 23 Mar 2015 08:34:24 +0000</pubDate>
      <guid>https://www.oxymoronical.com/blog/2015/03/Making-communicating-with-chrome-from-in-content-pages-easy/</guid>
      <description>&lt;p&gt;As Firefox increasingly switches to support running in multiple processes we’ve been finding common problems. Where we can we are designing nice APIs to make solving them easy. One problem is that we often want to run in-content pages like about:newtab and about:home in the child process without privileges making it safer and less likely to bring down Firefox in the event of a crash. These pages still need to get information from and pass information to the main process though, so we have had to come up with ways to handle that. Often we use custom code in a frame script acting as a middle-man, using things like DOM events to listen for requests from the in-content page and then messaging to the main process.&lt;/p&gt;</description>
    </item>
    <item>
      <title>hgchanges is back up</title>
      <link>https://www.oxymoronical.com/blog/2015/01/hgchanges-is-be-back-up/</link>
      <pubDate>Thu, 29 Jan 2015 10:33:05 +0000</pubDate>
      <guid>https://www.oxymoronical.com/blog/2015/01/hgchanges-is-be-back-up/</guid>
      <description>&lt;p&gt;The offending changeset that broke &lt;a href=&#34;https://www.oxymoronical.com/blog/2015/01/hgchanges-is-down-for-now&#34;&gt;hgchanges yesterday &lt;/a&gt;turns out to be a merge from an ancient branch to current tip. That makes the diff insanely huge which is why things like hgweb were tripping over it. Kwierso point out that just ignoring those changesets would solve the problem. It’s not ideal but since in this case they aren’t useful changesets I’ve gone ahead and done that and so hgchanges is now updating again.&lt;/p&gt;</description>
    </item>
    <item>
      <title>hgchanges is down for now</title>
      <link>https://www.oxymoronical.com/blog/2015/01/hgchanges-is-down-for-now/</link>
      <pubDate>Wed, 28 Jan 2015 21:23:31 +0000</pubDate>
      <guid>https://www.oxymoronical.com/blog/2015/01/hgchanges-is-down-for-now/</guid>
      <description>&lt;p&gt;My &lt;a href=&#34;http://hgchanges.fractalbrew.com/&#34;&gt;handy tool&lt;/a&gt; for tracking changes to directories in the mozilla mercurial repositories is going to be broken for a little while. Unfortunately a &lt;a href=&#34;https://hg.mozilla.org/mozilla-central/rev/8991b10184de994b6ba38edd81a73856c8c3d595&#34;&gt;particular changeset&lt;/a&gt; seems to be breaking things in ways I don’t have the time to fix right now. Specifically trying to download the &lt;a href=&#34;https://hg.mozilla.org/mozilla-central/raw-rev/4f2a8114211d:8991b10184de&#34;&gt;raw patch&lt;/a&gt; for the changeset is causing hgweb to timeout. Short of finding time to debug and fix the problem my only solution is to wait until that patch is old enough that it no longer attempts to index it. That could take a week or so.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Welcome the new Toolkit peers</title>
      <link>https://www.oxymoronical.com/blog/2015/01/Welcome-the-new-Toolkit-peers/</link>
      <pubDate>Fri, 16 Jan 2015 11:23:06 +0000</pubDate>
      <guid>https://www.oxymoronical.com/blog/2015/01/Welcome-the-new-Toolkit-peers/</guid>
      <description>&lt;p&gt;I have been a little lax in my duty of keeping the list of peers for Toolkit up to date and there have been a few notable exceptions. Thankfully we’re good about disregarding rules when it makes sense to and so many people who should be peers have already been doing reviews. Of course that’s no use to new contributors trying to figure out who should review what so I am grateful to someone who prodded me into updating the list.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Welcome to the new Toolkit peers - Paolo, Matt, Jared and Irving</title>
      <link>https://www.oxymoronical.com/blog/2014/04/Welcome-to-the-new-Toolkit-peers-Paolo-Matt-Jared-and-Irving/</link>
      <pubDate>Tue, 15 Apr 2014 13:38:01 +0000</pubDate>
      <guid>https://www.oxymoronical.com/blog/2014/04/Welcome-to-the-new-Toolkit-peers-Paolo-Matt-Jared-and-Irving/</guid>
      <description>&lt;p&gt;Slightly belated in some cases but I’d like to formally welcome four new &lt;a href=&#34;https://wiki.mozilla.org/Modules/Toolkit&#34;&gt;toolkit peers&lt;/a&gt;. Paolo Amadini, Matthew Noorenberghe, Jared Wein and Irving Reid have all shown themselves to be well capable of reviewing patches in any of the toolkit code. Paolo, Matt and Jared actually got added a few months ago but apparently I failed to make an announcement at the time. Irving was added just last week. Please congratulate them all and don’t go too hard on their review queues!&lt;/p&gt;</description>
    </item>
    <item>
      <title>An update for hgchanges</title>
      <link>https://www.oxymoronical.com/blog/2014/03/An-update-for-hgchanges/</link>
      <pubDate>Thu, 13 Mar 2014 15:47:18 +0000</pubDate>
      <guid>https://www.oxymoronical.com/blog/2014/03/An-update-for-hgchanges/</guid>
      <description>&lt;p&gt;Nearly a year ago I showed off the first version of my webapp for displaying &lt;a href=&#34;https://www.oxymoronical.com/blog/2013/04/Get-notifications-about-changes-to-any-directory-in-mercurial&#34;&gt;recent changes in mercurial repositories&lt;/a&gt;. I’ve heard directly from a number of people that use it but it’s had a few problems that I’ve spent some of my spare time trying to solve. I’m now pleased to say that a new version is up and running. I’m not sure it’s accurate to call this a rewrite since it was entirely incremental but when I look back over of the code changes there really isn’t much that wasn’t touched in some way or other. So what’s new? For you, a person using the site absolutely nothing! So what on earth have I been doing rewriting the code?&lt;/p&gt;</description>
    </item>
    <item>
      <title>Developer Tools meet-up in Portland</title>
      <link>https://www.oxymoronical.com/blog/2014/03/Developer-Tools-meet-up-in-Portland/</link>
      <pubDate>Wed, 05 Mar 2014 14:33:06 +0000</pubDate>
      <guid>https://www.oxymoronical.com/blog/2014/03/Developer-Tools-meet-up-in-Portland/</guid>
      <description>&lt;p&gt;Two weeks ago the developer tools teams and a few others met in the Portland office for a very successful week of discussions and hacking. The first day was about setting the stage for the week and working out what everyone was going to work on. Dave Camp kicked us off with a review of the last six months in developer tools and talked about what is going to be important for us to focus on in 2014. We then had a little more in-depth information from each of the teams. After lunch a set of lightning talks went over some projects and ideas that people had been working on recently.&lt;/p&gt;</description>
    </item>
    <item>
      <title>An editable box model view in the devtools</title>
      <link>https://www.oxymoronical.com/blog/2014/02/An-editable-box-model-view-in-the-devtools/</link>
      <pubDate>Fri, 21 Feb 2014 15:07:24 +0000</pubDate>
      <guid>https://www.oxymoronical.com/blog/2014/02/An-editable-box-model-view-in-the-devtools/</guid>
      <description>&lt;p&gt;This week the whole devtools group has been sequestered in Mozilla’s Portland office having one of our regular meet-ups. As always it’s been a fantastically productive week with lots of demos to show for it. I’ll be writing a longer write-up later but I wanted to post about what I played with over the week.&lt;/p&gt;&#xA;&lt;p&gt;My wife does the odd bit of web development on the side. For a long time she was a loyal Firebug user and a while ago I asked her what she thought of Firefox’s built in devtools. She quickly pointed out a couple of features that Firebug had that Firefox did not. As I was leaving for this week I mentioned I’d be with the devtools group and she asked whether her features had been fixed yet. It turns out that &lt;a href=&#34;https://bugzilla.mozilla.org/show_bug.cgi?id=918716&#34;&gt;colour swatches&lt;/a&gt; had been but the box model &lt;a href=&#34;https://bugzilla.mozilla.org/show_bug.cgi?id=850336&#34;&gt;still wasn’t editable&lt;/a&gt;. So I figured I could earn myself some brownie points by hacking on that this week.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Six years revisited</title>
      <link>https://www.oxymoronical.com/blog/2013/05/Six-years-revisited/</link>
      <pubDate>Tue, 21 May 2013 09:00:09 +0000</pubDate>
      <guid>https://www.oxymoronical.com/blog/2013/05/Six-years-revisited/</guid>
      <description>&lt;p&gt;Two years ago &lt;a href=&#34;https://www.oxymoronical.com/blog/2011/04/6-years-ago&#34;&gt;I blogged&lt;/a&gt; about how it had been six years since I wrote my first patch for Firefox. Today I get to say that it’s been six years since I started getting paid to do what I love, working for Mozilla. In that time I’ve moved to a new continent, found a wife (through Mozilla no less!), progressed from coder to module owner to manager, seen good friends leave for other opportunities and others join and watched (dare I say helped?) Mozilla, and the Firefox team in particular, grow from the small group that I joined in 2007 to the large company that will soon surpass 1000 employees.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Firefox now ships with the add-on SDK</title>
      <link>https://www.oxymoronical.com/blog/2013/05/Firefox-now-ships-with-the-add-on-SDK/</link>
      <pubDate>Wed, 15 May 2013 15:31:59 +0000</pubDate>
      <guid>https://www.oxymoronical.com/blog/2013/05/Firefox-now-ships-with-the-add-on-SDK/</guid>
      <description>&lt;p&gt;It’s been a long ride but we can finally say it. This week Firefox 21 shipped and it includes the add-on SDK modules.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;shipped.jpg&#34;&gt;&lt;img src=&#34;https://www.oxymoronical.com/blog/2013/05/Firefox-now-ships-with-the-add-on-SDK/shipped.jpg&#34; style=&#34;width: 343px&#34; alt=&#34;We took all the Jetpack APIs and we shipped them in Firefox!&#34; title=&#34;We took all the Jetpack APIs and we shipped them in Firefox!&#34;&gt;&#xA;  &lt;/a&gt;What does this mean? Well for users it means two important things:&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Smaller add-ons. Since they no longer need to ship the APIs themselves add-ons only have to include the unique code that makes them special. That’s something like a 65% file-size saving for the most popular SDK based add-ons, probably more for simpler add-ons.&lt;/li&gt;&#xA;&lt;li&gt;Add-ons will stay compatible with Firefox for longer. We can evolve the modules in Firefox that add-ons use so that most of the time when changes happen to Firefox the modules seamlessly shift to keep working. There are still some cases where that might be impossible (when a core feature is dropped from Firefox for example) but hopefully those should be rare.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;To take advantage of these benefits add-ons have to be repacked with a recent version of the SDK. We’re &lt;a href=&#34;https://groups.google.com/d/msg/mozilla-labs-jetpack/-nxopO-_gVI/MxZHoOv0ddIJ&#34;&gt;working on a plan&lt;/a&gt; to do that automatically for existing add-ons where possible but developers who want to get the benefits right now can just repack their add-ons themselves using SDK 1.14 and using &lt;code&gt;cfx xpi --strip-sdk&lt;/code&gt;, or using the next release of the SDK, 1.15 which will do that by default.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Get notifications about changes to any directory in mercurial</title>
      <link>https://www.oxymoronical.com/blog/2013/04/Get-notifications-about-changes-to-any-directory-in-mercurial/</link>
      <pubDate>Fri, 05 Apr 2013 14:36:32 +0000</pubDate>
      <guid>https://www.oxymoronical.com/blog/2013/04/Get-notifications-about-changes-to-any-directory-in-mercurial/</guid>
      <description>&lt;p&gt;Back in the old days when we used CVS of all things for our version control we had a wonderful tool called &lt;a href=&#34;http://bonsai.mozilla.org/&#34;&gt;bonsai&lt;/a&gt; to help query the repository for changes. You could list changes on a per directory basis if you needed which was great for keeping an eye on certain chunks of code. I recall there being a way of getting an RSS feed from it and I used it when I was the module owner of the extension manager to see what changes were landed that I hadn’t noticed in bugs.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Hacking on Tilt</title>
      <link>https://www.oxymoronical.com/blog/2013/03/hacking-on-tilt/</link>
      <pubDate>Mon, 18 Mar 2013 18:38:42 +0000</pubDate>
      <guid>https://www.oxymoronical.com/blog/2013/03/hacking-on-tilt/</guid>
      <description>&lt;p&gt;Tilt, or 3D view as it is known in Firefox, is an awesome visual tool that really lets you see the structure of a webpage. It shows you just how deep your tag hierarchy goes which might give signs of your page being too complex or even help you spot errors in your markup that you wouldn’t otherwise notice. But what if it could do more? What if there were different ways to visualise the same page? What if even web developers could create their own visualisations?&lt;/p&gt;</description>
    </item>
    <item>
      <title>The Add-on SDK is now in Firefox</title>
      <link>https://www.oxymoronical.com/blog/2013/02/The-Add-on-SDK-is-now-in-Firefox/</link>
      <pubDate>Fri, 01 Feb 2013 22:06:43 +0000</pubDate>
      <guid>https://www.oxymoronical.com/blog/2013/02/The-Add-on-SDK-is-now-in-Firefox/</guid>
      <description>&lt;p&gt;We’re now a big step closer to shipping the SDK APIs with Firefox and other apps, we’ve uplifted the SDK code from our git repository to &lt;code&gt;mozilla-inbound&lt;/code&gt; and assuming it sticks we will be on the trains for releasing. We’ll be doing weekly uplifts to keep the code in &lt;code&gt;mozilla-central&lt;/code&gt; current.&lt;/p&gt;&#xA;&lt;h2 id=&#34;whats-changed&#34;&gt;What’s changed?&lt;/h2&gt;&#xA;&lt;p&gt;Not a lot yet. Existing add-ons and add-ons built with the current version of the SDK still use their own versions of the APIs from their XPIs. Add-ons built with the next version of the SDK may start to try to use the APIs in Firefox in preference to those shipped with the XPI and then a future version will only use those in Firefox. We’re also talking about the possibility of making Firefox override the APIs in any SDK based add-on and use the shipped ones automatically so the add-on author wouldn’t need to do anything.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Making Git play nice on Windows</title>
      <link>https://www.oxymoronical.com/blog/2012/12/Making-Git-play-nice-on-Windows/</link>
      <pubDate>Fri, 28 Dec 2012 17:57:13 +0000</pubDate>
      <guid>https://www.oxymoronical.com/blog/2012/12/Making-Git-play-nice-on-Windows/</guid>
      <description>&lt;p&gt;A while ago now I switched to Windows on my primary development machine. It’s pretty frustrating particularly when it comes to command line support but &lt;a href=&#34;https://wiki.mozilla.org/MozillaBuild&#34;&gt;MozillaBuild&lt;/a&gt; goes a long way to giving me a more comfortable environment. One thing that took a long time to get working right though was full colour support from both mercurial and git. Git in particular is a problem because it uses a custom version of MSYS which seems to conflict with the stock MSYS in MozillaBuild leaving things broken if you don’t set it up just right. Since I just switched to a new machine I thought it would be useful to record how I got it working, perhaps more for my benefit than anything else, but perhaps others will find it useful too.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Let&#39;s just put it in Toolkit!</title>
      <link>https://www.oxymoronical.com/blog/2012/11/Lets-just-put-it-in-Toolkit/</link>
      <pubDate>Fri, 23 Nov 2012 23:41:56 +0000</pubDate>
      <guid>https://www.oxymoronical.com/blog/2012/11/Lets-just-put-it-in-Toolkit/</guid>
      <description>&lt;p&gt;Toolkit is fast turning into the dumping ground of mozilla-central. Once upon a time the idea was simple. Any code that could be usefully shared across multiple applications (and in particular code that wasn’t large enough to deserve a module of its own) would end up in Toolkit. The rules were pretty simple, any code in there should work for any application that wants to use it. This didn’t always work exactly according to plan but we did our best to fix Seamonkey and Thunderbird incompatibilities as they came along.&lt;/p&gt;</description>
    </item>
    <item>
      <title>What is an API?</title>
      <link>https://www.oxymoronical.com/blog/2012/11/What-is-an-API/</link>
      <pubDate>Fri, 23 Nov 2012 19:27:02 +0000</pubDate>
      <guid>https://www.oxymoronical.com/blog/2012/11/What-is-an-API/</guid>
      <description>&lt;p&gt;I recently posted in the newsgroups about a &lt;a href=&#34;https://groups.google.com/d/topic/mozilla.dev.platform/fZV-DYnqQEc/discussion&#34;&gt;concern over super-review&lt;/a&gt;. In some cases patches that seem to meet the policy aren’t getting super-reviewed. Part of the problem here is that the policy is a little ambiguous. It says that any API or pseudo-API requires super-review but depending on how you read that section it could mean any patch that changes the signature of a JS function is classed as an API. We need to be smarter than that. Here is a straw-man proposal for defining what is an API:&lt;/p&gt;</description>
    </item>
    <item>
      <title>What is Jetpack here for?</title>
      <link>https://www.oxymoronical.com/blog/2012/10/What-is-Jetpack-here-for/</link>
      <pubDate>Fri, 26 Oct 2012 18:27:17 +0000</pubDate>
      <guid>https://www.oxymoronical.com/blog/2012/10/What-is-Jetpack-here-for/</guid>
      <description>&lt;p&gt;Who are the &lt;a href=&#34;https://wiki.mozilla.org/Labs/Jetpack&#34;&gt;Jetpack&lt;/a&gt; team? What are they here for? A lot of people in Mozilla don’t know that Jetpack still exists (or never knew it existed). Others still think of it as the original prototype which we dropped in early 2010. Our goals have changed a lot since then. Even people who think they know what we’re about might be surprised at what our current work involves.&lt;/p&gt;&#xA;&lt;p&gt;Let’s start with this basic statement:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Simple image filters with getUserMedia</title>
      <link>https://www.oxymoronical.com/blog/2012/10/Simple-image-filters-with-getUserMedia/</link>
      <pubDate>Mon, 22 Oct 2012 17:44:37 +0000</pubDate>
      <guid>https://www.oxymoronical.com/blog/2012/10/Simple-image-filters-with-getUserMedia/</guid>
      <description>&lt;p&gt;I forgot to blog about this last week, but &lt;a href=&#34;https://blog.mozilla.org/dolske/2012/10/21/image-enhancement-gum/&#34;&gt;Justin&lt;/a&gt; made me remember. The WebRTC getUserMedia API is available on the Nightly and Aurora channels of Firefox right now and Tim has done a couple of &lt;a href=&#34;http://timtaubert.de/blog/2012/10/building-a-live-green-screen-with-getusermedia-and-mediastreams/&#34;&gt;great&lt;/a&gt; &lt;a href=&#34;http://timtaubert.de/blog/2012/10/getusermedia-part-2-building-an-eyetoy-like-mini-game/&#34;&gt;demos&lt;/a&gt; of using JavaScript to process the media stream. That got me interested and after a little playing around I remembered learning the basics of convolution image filters so I thought I’d give it a try. The &lt;a href=&#34;https://www.oxymoronical.com/experiments/convolution/&#34;&gt;result is a sorta ugly-looking UI&lt;/a&gt; that lets you build your own image filters to apply to the video coming off your webcam. There are a few pre-defined filter matrices there to get you started and it’s interesting to see what effects you can get. Remember that you need to enable &lt;em&gt;media.navigator.enabled&lt;/em&gt; in about:config to make it work.&lt;/p&gt;</description>
    </item>
    <item>
      <title>After an awesome Jetpack work week</title>
      <link>https://www.oxymoronical.com/blog/2012/09/After-an-awesome-Jetpack-work-week/</link>
      <pubDate>Tue, 04 Sep 2012 19:54:40 +0000</pubDate>
      <guid>https://www.oxymoronical.com/blog/2012/09/After-an-awesome-Jetpack-work-week/</guid>
      <description>&lt;p&gt;It’s the first day back at work after spending a great work week in London with the Jetpack team last week. I was going to write a summary of everything that went on but it turns out that Jeff &lt;a href=&#34;http://canuckistani.ca/blog/2012/09/01/jetpack-work-week/&#34;&gt;beat me to it&lt;/a&gt;. That’s probably a good thing as he’s a better writer than I so go there and read up on all the fun stuff that we got done.&lt;/p&gt;&#xA;&lt;p&gt;All I’ll add is that it was fantastic getting the whole team into a room to talk about what we’re working on and get a load of stuff done. I ran a discussion on what the goals of the Jetpack project are (I’ll follow up on this in another blog post to come later this week) and was delighted that everyone on the team is on the same page. Employing people from all around the world is one of Mozilla’s great strengths but also a potential risk. It’s vital for us to keep doing work weeks and all hands like this to make sure everyone gets to know everyone and is working together towards the same goals.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Where are we all now?</title>
      <link>https://www.oxymoronical.com/blog/2012/08/Where-are-we-all-now/</link>
      <pubDate>Fri, 31 Aug 2012 10:43:38 +0000</pubDate>
      <guid>https://www.oxymoronical.com/blog/2012/08/Where-are-we-all-now/</guid>
      <description>&lt;p&gt;Quite a while ago now I generated a map showing &lt;a href=&#34;https://www.oxymoronical.com/blog/2009/05/Where-are-we-all&#34;&gt;where all the Mozilla employees are in the world&lt;/a&gt;. A few of the new folks on my team reminded me of it and when I showed it to them they wanted to know when I was going to get around to updating it. Challenge accepted! Back then the Mozilla phone book was available as a static html page so scraping it for the locations was easy. Now the phonebook is a prettier webapp so the same technique doesn’t quite work. Instead I ended up writing a simple add-on to pull the main phonebook tree then do requests for the json data for each employee, dumping them to a file on disk. Then some manipulation of the original scripts led to great success. Click through for a full zoomable map.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Managing changes is the key to a project&#39;s success</title>
      <link>https://www.oxymoronical.com/blog/2012/05/Managing-changes-is-the-key-to-a-projects-success/</link>
      <pubDate>Wed, 30 May 2012 07:43:15 +0000</pubDate>
      <guid>https://www.oxymoronical.com/blog/2012/05/Managing-changes-is-the-key-to-a-projects-success/</guid>
      <description>&lt;p&gt;TomTom made an &lt;a href=&#34;http://www.tomtom.com/en_gb/licensing/newsletter/201205/didyouknow/&#34;&gt;interesting claim recently&lt;/a&gt;. Their summary is “&lt;em&gt;when it comes to automotive-grade mapping, open source has some quite serious limitations, falling short on the levels of accuracy and reliability required for safe navigation&lt;/em&gt;”&lt;/p&gt;&#xA;&lt;p&gt;This is a bold claim and they talk about recent studies that back them up. Unfortunately none of them are referenced but it’s pretty clear from the text of the article that all they are doing is comparing the accuracy of TomTom maps with existing open source maps. So they’re just generalising, this doesn’t prove a limitation with the open source process itself of course, just perhaps of a particular instance of it.&lt;/p&gt;</description>
    </item>
    <item>
      <title>The add-ons manager is about to get more Unfocused</title>
      <link>https://www.oxymoronical.com/blog/2011/12/The-add-ons-manager-is-about-to-get-more-Unfocused/</link>
      <pubDate>Wed, 21 Dec 2011 23:09:21 +0000</pubDate>
      <guid>https://www.oxymoronical.com/blog/2011/12/The-add-ons-manager-is-about-to-get-more-Unfocused/</guid>
      <description>&lt;p&gt;About three and a half years ago (I recall it happening at the 2008 summit in Whistler), &lt;a href=&#34;http://blog.mozilla.com/rstrong/&#34;&gt;Rob Strong&lt;/a&gt; handed ownership of the add-ons manager over to me. I had already been very involved in working on the module so I was really excited to have something to call my own and be responsible for. It’s been a great few years with many fun bugs and new features culminating with the complete redesign that we did for Firefox 4 and the third party blocking features in Firefox 8, but times have changed. I now have more responsibilities on my plate (like managing the awesome Add-ons SDK engineers) and to be honest I think it’s probably a bad idea to have such a fundamental feature of Firefox to be under the control of just one person for so long. So I’m delighted to say that &lt;a href=&#34;http://theunfocused.net/&#34;&gt;Blair McBride&lt;/a&gt; has agreed to take over as module owner.&lt;/p&gt;</description>
    </item>
    <item>
      <title>How Crashplan breaks xpcshell tests on Windows</title>
      <link>https://www.oxymoronical.com/blog/2011/11/how-crashplan-breaks-xpcshell-tests-on-windows/</link>
      <pubDate>Wed, 23 Nov 2011 20:15:52 +0000</pubDate>
      <guid>https://www.oxymoronical.com/blog/2011/11/how-crashplan-breaks-xpcshell-tests-on-windows/</guid>
      <description>&lt;p&gt;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’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’t be deleted or edited until the service closes them again and often tests open, close and delete files so fast that there isn’t time for that to happen.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Overlays without overlays in restartless add-ons</title>
      <link>https://www.oxymoronical.com/blog/2011/10/Overlays-without-overlays-in-restartless-add-ons/</link>
      <pubDate>Mon, 31 Oct 2011 01:43:46 +0000</pubDate>
      <guid>https://www.oxymoronical.com/blog/2011/10/Overlays-without-overlays-in-restartless-add-ons/</guid>
      <description>&lt;p&gt;Perhaps the most common way of making changes to Firefox with an extension has always been using the overlay. For a window’s UI you can make changes to the underlying XUL document, add script elements to be executed in the context of the normal window’s code and add new stylesheets to the window to change how the UI looks.&lt;/p&gt;&#xA;&lt;p&gt;Restartless add-ons change this around completely, the normal overlay and style-overlay mechanisms just aren’t available to restartless add-ons and this is likely to remain true for a while, these methods don’t clean up after themselves when the add-on is uninstalled.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Adding add-on preferences to the Add-ons Manager</title>
      <link>https://www.oxymoronical.com/blog/2011/07/Adding-add-on-preferences-to-the-Add-ons-Manager/</link>
      <pubDate>Thu, 07 Jul 2011 19:06:32 +0000</pubDate>
      <guid>https://www.oxymoronical.com/blog/2011/07/Adding-add-on-preferences-to-the-Add-ons-Manager/</guid>
      <description>&lt;p&gt;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’t get time to implement them then but I’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.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Unloading JS modules</title>
      <link>https://www.oxymoronical.com/blog/2011/07/Unloading-JS-modules/</link>
      <pubDate>Thu, 07 Jul 2011 18:26:44 +0000</pubDate>
      <guid>https://www.oxymoronical.com/blog/2011/07/Unloading-JS-modules/</guid>
      <description>&lt;p&gt;One of the problems with writing a restartless add-on is that you have to be careful about undoing anything your add-on does when it is told to shutdown. This means that right now some features of the platform can’t be used as we have no way to undo them. Recently I made this list a little shorter by making it possible to unload JS modules loaded with &lt;code&gt;Components.utils.import()&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Just call &lt;code&gt;Components.utils.unload(uri)&lt;/code&gt; and the module loaded from that URI will be unloaded. Take care when you do this because something might still have references into it which will stop working. Firefox also caches the module’s code for fast loading the next time around. The add-ons manager clears this cache when your add-on is updated or uninstalled so you mostly don’t have to worry about it but if you do something strange like unload a module, manually alter the file and then import it again you won’t get the latest code.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Making it easier to check that your plugins are up to date</title>
      <link>https://www.oxymoronical.com/blog/2011/07/Making-it-easier-to-check-that-your-plugins-are-up-to-date/</link>
      <pubDate>Thu, 07 Jul 2011 17:48:31 +0000</pubDate>
      <guid>https://www.oxymoronical.com/blog/2011/07/Making-it-easier-to-check-that-your-plugins-are-up-to-date/</guid>
      <description>&lt;p&gt;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.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Why do Firefox updates break add-ons?</title>
      <link>https://www.oxymoronical.com/blog/2011/06/Why-do-Firefox-updates-break-add-ons/</link>
      <pubDate>Sat, 25 Jun 2011 00:25:22 +0000</pubDate>
      <guid>https://www.oxymoronical.com/blog/2011/06/Why-do-Firefox-updates-break-add-ons/</guid>
      <description>&lt;p&gt;Our success in switching to the new rapid release cycle for Firefox has stirred up lots of excitement in the community and I wouldn’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’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’t such a bad thing after all.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Creating custom add-on types just got easier</title>
      <link>https://www.oxymoronical.com/blog/2011/05/Creating-custom-add-on-types-just-got-easier/</link>
      <pubDate>Wed, 25 May 2011 19:01:53 +0000</pubDate>
      <guid>https://www.oxymoronical.com/blog/2011/05/Creating-custom-add-on-types-just-got-easier/</guid>
      <description>&lt;p&gt;One of the nice features that we added to the add-ons manager in Firefox 4 was support for custom add-on types that could be treated the same way as the built-in types, even showing up in the same UI if you did a little work. I &lt;a href=&#34;https://www.oxymoronical.com/blog/2010/07/How-to-extend-the-new-Add-ons-Manager&#34; title=&#34;How to extend the new Add-ons Manager (or how I built a simple greasemonkey clone in an evening)&#34;&gt;blogged a basic example&lt;/a&gt; of how to do this and I know since then Greasemonkey and Stylish have been using the support.&lt;/p&gt;</description>
    </item>
    <item>
      <title>How to disable extension compatibility checking on Nightly builds of Firefox</title>
      <link>https://www.oxymoronical.com/blog/2011/05/How-to-disable-extension-compatibility-checking-on-Nightly-builds-of-Firefox/</link>
      <pubDate>Tue, 24 May 2011 22:26:58 +0000</pubDate>
      <guid>https://www.oxymoronical.com/blog/2011/05/How-to-disable-extension-compatibility-checking-on-Nightly-builds-of-Firefox/</guid>
      <description>&lt;p&gt;A long long time ago (I can still remember…) we &lt;a href=&#34;https://www.oxymoronical.com/blog/2009/11/Changing-the-checkCompatibility-preference&#34; title=&#34;Changing the checkCompatibility preference&#34;&gt;changed the preference&lt;/a&gt; you use to disable compatibility checking for extensions. We still aim for users to instead use tools like the Add-on Compatibility Reporter to handle this (especially since we are going to start crowdsourcing data from it), but for developers who don’t want to install that but still want to use extensions on their nightly builds the new rapid release model would mean setting a new preference every 6 weeks.&lt;/p&gt;</description>
    </item>
    <item>
      <title>6 years ago…</title>
      <link>https://www.oxymoronical.com/blog/2011/04/6-years-ago/</link>
      <pubDate>Sat, 30 Apr 2011 09:00:01 +0000</pubDate>
      <guid>https://www.oxymoronical.com/blog/2011/04/6-years-ago/</guid>
      <description>&lt;p&gt;We were amusing ourselves on IRC yesterday by showing each other the first patches we ever submitted to Mozilla and I suddenly noticed that mine was exactly 6 years ago from today. It was the ridiculously trivial &lt;a href=&#34;https://bugzilla.mozilla.org/show_bug.cgi?id=292411&#34; title=&#34;Bug 292411 - View Saved Passwords list is blank with animateFadeIn set to true&#34;&gt;bug 292411&lt;/a&gt;, nothing more than a typo correction really. I can remember being quite excited that I had found a bug I could fix and rushing to get it submitted before anyone else. Of course in those days there were no real automated tests so it was a pretty simple process and within a day my patch was reviewed and landed for Firefox 1.5.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Building Fennec for Android from OSX</title>
      <link>https://www.oxymoronical.com/blog/2011/03/Building-Fennec-for-Android-from-OSX/</link>
      <pubDate>Sun, 13 Mar 2011 18:38:58 +0000</pubDate>
      <guid>https://www.oxymoronical.com/blog/2011/03/Building-Fennec-for-Android-from-OSX/</guid>
      <description>&lt;p&gt;I had some free time yesterday so I thought I’d try to dabble in building Fennec with some debugging to figure out why it &lt;a href=&#34;https://bugzilla.mozilla.org/show_bug.cgi?id=636042&#34; title=&#34;Bug 636046: All fonts are serif&#34;&gt;looks like ass&lt;/a&gt; on my phone. I’ve played with building Fennec a few times before and like everytime before the first thing I needed to do was fix the problems in the build system that breaks building for Android from OSX. Everyone else uses a Linux host it seems. This time there were only two bugs to be found and on the off chance anyone else is trying to do this I thought I’d link to them.&lt;/p&gt;</description>
    </item>
    <item>
      <title>What&#39;s next for the Add-ons Manager?</title>
      <link>https://www.oxymoronical.com/blog/2011/03/Whats-next-for-the-Add-ons-Manager/</link>
      <pubDate>Tue, 08 Mar 2011 22:52:14 +0000</pubDate>
      <guid>https://www.oxymoronical.com/blog/2011/03/Whats-next-for-the-Add-ons-Manager/</guid>
      <description>&lt;p&gt;Firefox 4 is just around the corner and it’s great to look back over just how far the Add-ons Manager has come since Firefox 3.6. In fact if you want to see the full history look at my earlier post that shows its &lt;a href=&#34;https://www.oxymoronical.com/blog/2010/07/History-of-the-Add-ons-Manager&#34; title=&#34;History of the Add-ons Manager&#34;&gt;evolution since Phoenix 0.2&lt;/a&gt;. We set out with some pretty lofty goals for Firefox 4 and I’m pretty excited at just how many of them we achieved. I hope everyone appreciates the hard work that &lt;a href=&#34;http://theunfocused.net/&#34;&gt;Blair&lt;/a&gt;, &lt;a href=&#34;http://jboriss.wordpress.com/&#34;&gt;Boriss&lt;/a&gt;, &lt;a href=&#34;http://blog.fligtar.com/&#34;&gt;Justin&lt;/a&gt;, &lt;a href=&#34;http://www.hskupin.info/&#34;&gt;Henrik&lt;/a&gt;, Ben, myself and all the others put in to get us to where we are today.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Playing with windows in restartless (bootstrapped) extensions</title>
      <link>https://www.oxymoronical.com/blog/2011/01/Playing-with-windows-in-restartless-bootstrapped-extensions/</link>
      <pubDate>Wed, 19 Jan 2011 20:14:27 +0000</pubDate>
      <guid>https://www.oxymoronical.com/blog/2011/01/Playing-with-windows-in-restartless-bootstrapped-extensions/</guid>
      <description>&lt;p&gt;Lots of people seem to be &lt;a href=&#34;http://starkravingfinkle.org/blog/2011/01/bootstrap-jones-adventures-in-restartless-add-ons/&#34;&gt;playing&lt;/a&gt; with the new support for restartless extensions (also known as bootstrapped extensions) coming in Firefox 4. Nothing could make me happier really. I’m not sure I can remember ever helping implement something which is will hopefully turn out to be a game changer for extension development in the future. The technical details of restartless extensions are &lt;a href=&#34;https://developer.mozilla.org/en/Extensions/Bootstrapped_extensions&#34;&gt;talked about&lt;/a&gt; in a &lt;a href=&#34;https://www.oxymoronical.com/blog/2010/07/How-to-extend-the-new-Add-ons-Manager&#34;&gt;few places&lt;/a&gt; but one thing that is missing is what I think is probably going to be the most common code pattern in these extensions.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Firefox 4 and the Add-ons Manager at Add-on-Con</title>
      <link>https://www.oxymoronical.com/blog/2010/12/Firefox-4-and-the-Add-ons-Manager-at-Add-on-Con/</link>
      <pubDate>Fri, 10 Dec 2010 04:52:05 +0000</pubDate>
      <guid>https://www.oxymoronical.com/blog/2010/12/Firefox-4-and-the-Add-ons-Manager-at-Add-on-Con/</guid>
      <description>&lt;p&gt;As I &lt;a href=&#34;https://www.oxymoronical.com/blog/2010/12/Add-on-Con-is-here&#34;&gt;mentioned before&lt;/a&gt; I was part of a presentation at Add-on-Con this year. Myself, &lt;a href=&#34;http://jboriss.wordpress.com/&#34;&gt;Boriss&lt;/a&gt; and &lt;a href=&#34;http://blog.fligtar.com/&#34;&gt;Justin&lt;/a&gt; talked about the new UI changes in Firefox 4 and about the main changes to the add-ons manager. If you’re particularly interested the &lt;a href=&#34;Firefox_4_Add_ons.pdf&#34;&gt;slides are available here&lt;/a&gt; though I guess slides are often just tiny snippets of info from the actual session so if anything catches your eye you’ll need to get in touch and ask us about it.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Add-on-Con is here!</title>
      <link>https://www.oxymoronical.com/blog/2010/12/Add-on-Con-is-here/</link>
      <pubDate>Fri, 03 Dec 2010 22:32:06 +0000</pubDate>
      <guid>https://www.oxymoronical.com/blog/2010/12/Add-on-Con-is-here/</guid>
      <description>&lt;p&gt;Next week is &lt;a href=&#34;http://addoncon.com/&#34;&gt;Add-on-Con 2010&lt;/a&gt; and if you do any work in the add-ons space then you’re probably going to want to take a look at what is going on and hopefully sign up to attend. There are two days this year, one for some training and then the traditional day for keynotes and business/development tracks. I’ll be there for all of the main day and while I don’t think I am going to make the training day I should be there in the evening for the &lt;a href=&#34;http://www.meetup.com/addons/calendar/15494798/&#34;&gt;Mozilla party&lt;/a&gt;, be sure to sign up.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Minor change coming to the interface amIWebInstallListener in Firefox 4.0 beta 8</title>
      <link>https://www.oxymoronical.com/blog/2010/11/Minor-change-coming-to-the-interface-amIWebInstallListener-in-Firefox-40-beta-8/</link>
      <pubDate>Thu, 25 Nov 2010 00:27:48 +0000</pubDate>
      <guid>https://www.oxymoronical.com/blog/2010/11/Minor-change-coming-to-the-interface-amIWebInstallListener-in-Firefox-40-beta-8/</guid>
      <description>&lt;p&gt;We’re past API freeze so any API changes should be getting announced and communicated. In this case the change is tiny and unlikely to affect anyone. Have you heard of the interface amIWebInstallListener? If not then you can probably ignore this.&lt;/p&gt;&#xA;&lt;p&gt;If you’re interested it is effectively what the add-ons manager backend code uses to communicate messages about webpage initiated add-on installations. An add-on or application might provide its own implementation if it wanted to provide its own UI for installs. Or an add-on might call it to get the normal UI to show up for some other cases but this is pretty rare.&lt;/p&gt;</description>
    </item>
    <item>
      <title>PreFox is now available for testing</title>
      <link>https://www.oxymoronical.com/blog/2010/09/PreFox-is-now-available-for-testing/</link>
      <pubDate>Sun, 19 Sep 2010 04:30:02 +0000</pubDate>
      <guid>https://www.oxymoronical.com/blog/2010/09/PreFox-is-now-available-for-testing/</guid>
      <description>&lt;p&gt;I’ve finally been able to make some early alpha builds of PreFox, which is clearly a rather unoriginal name for Firefox running on the Palm Pre, available for testing. You can read more and find the builds at the &lt;a href=&#34;http://bit.ly/dvmGJM&#34;&gt;release announcement&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;This has been a long time coming, made that much longer by Sprint delaying the release of webOS 1.4.5 and of course Firefox 4 blockers eating into my spare time, I’m hopeful that now both builds and the source code are available some people will start to help out with getting it to be a viable alternative to the default webOS browser. Lots of the remaining work is stuff that is really outside my skill-set.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Don&#39;t miss an exciting opportunity to shape the future of Firefox 4!</title>
      <link>https://www.oxymoronical.com/blog/2010/09/Dont-miss-an-exciting-opportunity-to-shape-the-future-of-Firefox-4/</link>
      <pubDate>Wed, 01 Sep 2010 23:31:11 +0000</pubDate>
      <guid>https://www.oxymoronical.com/blog/2010/09/Dont-miss-an-exciting-opportunity-to-shape-the-future-of-Firefox-4/</guid>
      <description>&lt;p&gt;You might have heard of this web-browser. It’s called Firefox. You may have also heard that a new version is due out soon. As my part in its development I have helped completely reshape the way the add-ons manager looks. The good news is that the large bits of the changes are pretty much done, pretty much all that is left is a bunch of UI tweaks and some small behaviour changes.&lt;/p&gt;</description>
    </item>
    <item>
      <title>How to extend the new Add-ons Manager (or how I built a simple greasemonkey clone in an evening)</title>
      <link>https://www.oxymoronical.com/blog/2010/07/How-to-extend-the-new-Add-ons-Manager/</link>
      <pubDate>Fri, 09 Jul 2010 22:30:56 +0000</pubDate>
      <guid>https://www.oxymoronical.com/blog/2010/07/How-to-extend-the-new-Add-ons-Manager/</guid>
      <description>&lt;p&gt;One of the goals of the new add-ons manager API was to create something that was itself extensible. A couple of times in the past we’ve had to add new types of add-ons to the UI like Plugins and Personas. In both cases squeezing them into the UI was something of a kludge involving a bunch of custom code for each case. We already have a number of new types of add-ons that we want to add, things like search plugins which are currently managed by their own custom UI.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Introducing the new Add-ons Manager</title>
      <link>https://www.oxymoronical.com/blog/2010/07/Introducing-the-new-Add-ons-Manager/</link>
      <pubDate>Wed, 07 Jul 2010 00:51:59 +0000</pubDate>
      <guid>https://www.oxymoronical.com/blog/2010/07/Introducing-the-new-Add-ons-Manager/</guid>
      <description>&lt;p&gt;Add-ons have really been an integral part of Firefox ever since before its first release. In fact Firefox has had an add-ons manager of some form since version 0.2 (which was at that time called Phoenix). Firefox 4 will include a completely redesigned add-ons manager and while many nightly testers will have already seen our work, now the beta release is out I wanted to talk about some of the new features it includes. If you’re interested I’m also writing a companion piece that talks about the &lt;a href=&#34;https://www.oxymoronical.com/blog/2010/07/History-of-the-Add-ons-Manager&#34;&gt;history of the add-ons manager&lt;/a&gt; from its first appearance through to what the future may bring.&lt;/p&gt;</description>
    </item>
    <item>
      <title>History of the Add-ons Manager</title>
      <link>https://www.oxymoronical.com/blog/2010/07/History-of-the-Add-ons-Manager/</link>
      <pubDate>Wed, 07 Jul 2010 00:51:36 +0000</pubDate>
      <guid>https://www.oxymoronical.com/blog/2010/07/History-of-the-Add-ons-Manager/</guid>
      <description>&lt;p&gt;With all of the work that has gone into the new add-ons manager for Firefox 4 I thought it would be interesting to take a quick look back at the history of this part of Firefox and a quick look at what the future may hold.&lt;/p&gt;&#xA;&lt;h3 id=&#34;phoenix-02&#34;&gt;Phoenix 0.2&lt;/h3&gt;&#xA;&lt;p&gt;Even in the earliest versions of Firefox, extensions were supported using the old XPInstall style packages. These had some pretty fundamental problems though in that there was no built in support for uninstalling extensions nor any way to disable them. There wasn’t even an extension manager window to see what you had installed at first. The very first time that a list of extensions and themes appeared in Firefox was way back in version 0.2, back when the product was called Phoenix. It was a very basic user interface and appeared inside the preferences window.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Setting the World on Fire</title>
      <link>https://www.oxymoronical.com/blog/2010/06/Setting-the-World-on-Fire/</link>
      <pubDate>Wed, 30 Jun 2010 01:21:31 +0000</pubDate>
      <guid>https://www.oxymoronical.com/blog/2010/06/Setting-the-World-on-Fire/</guid>
      <description>&lt;p&gt;This isn’t normally something I’d syndicate to planet, but it has a certain relevance to Firefox so I thought I’d make an exception here. Feel free to skip by if you want more of the usual fare.&lt;/p&gt;&#xA;&lt;p&gt;Those of you that have been within a few meters of my laptop or desk or even delved into my website a little may have noticed that I a certain fondness for fractal images. I find them to be extremely beautiful and I’m constantly amazed at what you can generate with what is essentially some numbers and mathematical equations. I’m even more amazed that I can actually generate pieces that look pretty good (IMHO) myself so I’m always happy when others tell me that they like my work. This happened a short time ago when I was asked to create some new art work for Mozilla’s Mountain View office. Apparently my work was selected by the architect and others out of a selection of examples from me and some professional artists.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Multiple breaking changes are coming for components in extensions</title>
      <link>https://www.oxymoronical.com/blog/2010/06/Multiple-breaking-changes-are-coming-for-components-in-extensions/</link>
      <pubDate>Mon, 14 Jun 2010 23:45:50 +0000</pubDate>
      <guid>https://www.oxymoronical.com/blog/2010/06/Multiple-breaking-changes-are-coming-for-components-in-extensions/</guid>
      <description>&lt;p&gt;Are you an extension or application developer? Have you written any XPCOM components, JS, binary or otherwise? If not you can probably ignore the rest of this post, unless you are interested anyway.&lt;/p&gt;&#xA;&lt;p&gt;If you do then you might be interested to hear that your components are probably going to break in an upcoming Firefox nightly, maybe as early as next week. I’m going to blog specific examples on the changes you need to make once we have better documentation up and builds to test against, for now it is just important for you to know that the changes are coming.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Documenting the new Add-ons Manager</title>
      <link>https://www.oxymoronical.com/blog/2010/06/Documenting-the-new-Add-ons-Manager/</link>
      <pubDate>Fri, 04 Jun 2010 16:35:24 +0000</pubDate>
      <guid>https://www.oxymoronical.com/blog/2010/06/Documenting-the-new-Add-ons-Manager/</guid>
      <description>&lt;p&gt;I’ve spent some time this week transferring all the API documentation for the new add-ons manager from the Mozilla wiki to the Mozilla Developer Network. This should now be the place to go for the &lt;a href=&#34;https://developer.mozilla.org/en/Addons/Add-on_Manager&#34;&gt;definitive info&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Right now it is pretty dry, for the most part just pure API info with no examples. Before I started working more on that side of things I wanted to ask what kind of examples people might like to see documented?&lt;/p&gt;</description>
    </item>
    <item>
      <title>Support for dropping XPI files into the extension install locations might be going away</title>
      <link>https://www.oxymoronical.com/blog/2010/05/Support-for-dropping-XPI-files-into-the-extension-install-locations/</link>
      <pubDate>Thu, 27 May 2010 23:22:05 +0000</pubDate>
      <guid>https://www.oxymoronical.com/blog/2010/05/Support-for-dropping-XPI-files-into-the-extension-install-locations/</guid>
      <description>&lt;p&gt;For some time now Firefox has supported a way of installing extensions that involves simply copying the extension’s XPI file into one of the &lt;a href=&#34;https://developer.mozilla.org/En/Installing_extensions&#34;&gt;extension install locations&lt;/a&gt;. The next time Firefox runs it would pop up the install dialog for the extension and allow the user to choose whether to install it or not.&lt;/p&gt;&#xA;&lt;p&gt;I don’t know how many people use this feature and while the code to do it (at least for the profile folder) isn’t terribly complex, it is additional code that may not be necessary. Right now the new add-ons manager doesn’t support it and I’ve heard only a couple of people comment on its absence but nightly testers are by no means representational so I’m asking a little more widely whether people have a real need for keeping this working in Firefox 4?&lt;/p&gt;</description>
    </item>
    <item>
      <title>Add-ons manager re-landed</title>
      <link>https://www.oxymoronical.com/blog/2010/05/Add-ons-manager-re-landed/</link>
      <pubDate>Mon, 10 May 2010 23:36:46 +0000</pubDate>
      <guid>https://www.oxymoronical.com/blog/2010/05/Add-ons-manager-re-landed/</guid>
      <description>&lt;p&gt;A little sort of coincidental performance regression forced us to back out the new add-ons manager last week. It has now been re-landed with added bug fixes and should be in tomorrow’s nightly.&lt;/p&gt;</description>
    </item>
    <item>
      <title>The new add-ons manager is here</title>
      <link>https://www.oxymoronical.com/blog/2010/04/The-new-add-ons-manager-is-here/</link>
      <pubDate>Thu, 29 Apr 2010 19:34:24 +0000</pubDate>
      <guid>https://www.oxymoronical.com/blog/2010/04/The-new-add-ons-manager-is-here/</guid>
      <description>&lt;p&gt;Finally, after far too much time, the new add-ons manager is about to land in trunk nightlies. I am putting together the final patches to land now. The bit most people will see is the new UI so I guess I’ll steal &lt;a href=&#34;http://jboriss.wordpress.com/2010/04/01/add-ons-manager-redesign-update/&#34;&gt;Boriss’&lt;/a&gt; image for you to look at here with the same caveats. What you see on trunk over the next few days is just the initial steps to switching to a redesigned UI and (more importantly from my point of view) a totally new extension manager backend that will make it easier for us to improve and build upon in the future. The changes are so large that it is important to get more people testing it now while it still looks fairly unpolished so we can pick up problems that we’ve missed.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Myths and mysconceptions about Firefox on the Palm Pre</title>
      <link>https://www.oxymoronical.com/blog/2010/04/Myths-and-mysconceptions-about-Firefox-on-the-Palm-Pre/</link>
      <pubDate>Wed, 21 Apr 2010 18:09:49 +0000</pubDate>
      <guid>https://www.oxymoronical.com/blog/2010/04/Myths-and-mysconceptions-about-Firefox-on-the-Palm-Pre/</guid>
      <description>&lt;p&gt;Since I posted &lt;a href=&#34;https://www.oxymoronical.com/blog/2010/04/Firefox-running-on-the-Palm-Pre-mostly&#34;&gt;last week&lt;/a&gt; about how I was experimenting with running Firefox on my Palm Pre a number of tech news sites, large and small, picked it up and posted their own take on it. Some of the sites (and some of the readers of those sites) made some fairly odd statements about my work. This is probably because to the uninitiated (and many of the initiated in fact) the internals of Firefox are something of a mystery. I also suspect I made a couple of poor choices of words which led to some misunderstandings so I’d like to try to clarify a couple of points that might make it easier to understand what is going on.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Firefox running on the Palm Pre (mostly)</title>
      <link>https://www.oxymoronical.com/blog/2010/04/Firefox-running-on-the-Palm-Pre-mostly/</link>
      <pubDate>Mon, 12 Apr 2010 23:02:56 +0000</pubDate>
      <guid>https://www.oxymoronical.com/blog/2010/04/Firefox-running-on-the-Palm-Pre-mostly/</guid>
      <description>&lt;p&gt;One of the first things I did when I moved to the U.S. was to get myself a smartphone, and that phone was the Palm Pre. I’ve always thought it was way ahead of its competition in terms of the potential of its potential capabilities and platform. Sadly I think it is let down some by build quality and hardware issues, but I still love it as a phone and really hope that if Palm get bought they’ll continue work on it and develop a better 2nd gen version.&lt;/p&gt;</description>
    </item>
    <item>
      <title>How do restartless add-ons work?</title>
      <link>https://www.oxymoronical.com/blog/2010/04/How-do-restartless-add-ons-work/</link>
      <pubDate>Mon, 12 Apr 2010 21:41:48 +0000</pubDate>
      <guid>https://www.oxymoronical.com/blog/2010/04/How-do-restartless-add-ons-work/</guid>
      <description>&lt;p&gt;I &lt;a href=&#34;https://www.oxymoronical.com/blog/2010/03/Look-Ma-no-restarts&#34;&gt;blogged a short time ago&lt;/a&gt; about how we’re adding support for a new form of add-on to Firefox that can install and uninstall without needing to restart the application. Since then I’ve been finalizing a specification for how the platform will load these add-ons, trying to keep it simple but still give developers everything they commonly need. The &lt;a href=&#34;https://wiki.mozilla.org/Extension_Manager:Bootstrapped_Extensions&#34;&gt;planned specification is now available&lt;/a&gt; and if developers have comments then I’d like to hear them. Currently there isn’t a version of Firefox that implements it but that should change in the next day or so when I make the changes to the add-ons manager project branch and very soon when it all lands on trunk.&lt;/p&gt;</description>
    </item>
    <item>
      <title>How we&#39;re breaking some extensions in the near future</title>
      <link>https://www.oxymoronical.com/blog/2010/03/How-were-breaking-some-extensions-in-the-near-future/</link>
      <pubDate>Fri, 19 Mar 2010 22:09:31 +0000</pubDate>
      <guid>https://www.oxymoronical.com/blog/2010/03/How-were-breaking-some-extensions-in-the-near-future/</guid>
      <description>&lt;p&gt;You may have read some reports about how we’re re-implementing the bulk of the extension manager in Firefox. It’s been a long running project (something like a year since I first really started planning how to do it). Things are finally started to come together and all being well we are likely to look at landing the first pieces of this on the trunk nightlies in as little as a weeks time. I’ll be up front, this isn’t going to be a perfect landing. There may be some thing that are missing and other bits where the user experience isn’t as perfect as it will be finally. Of course there may also be bugs we have to rush to fix. Despite all this we feel that we’re about at the point where exposing it to the hands of thousands of nightly testers is the best way forward. Your eyes spot things that we miss, even things that may seem obvious to you and you’re vital to us getting these sorts of features polished and really just how they should be before they get released to the world at large in a Firefox release.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Look Ma, no restarts!</title>
      <link>https://www.oxymoronical.com/blog/2010/03/Look-Ma-no-restarts/</link>
      <pubDate>Sun, 14 Mar 2010 22:05:11 +0000</pubDate>
      <guid>https://www.oxymoronical.com/blog/2010/03/Look-Ma-no-restarts/</guid>
      <description>&lt;figure&gt;&#xA;    &lt;a href=&#34;mac_screenshot.png&#34;&gt;&lt;img src=&#34;https://www.oxymoronical.com/blog/2010/03/Look-Ma-no-restarts/mac_screenshot.png&#34; srcset=&#34;https://www.oxymoronical.com/blog/2010/03/Look-Ma-no-restarts/mac_screenshot_hu_5fbc55e9100f8f00.png, https://www.oxymoronical.com/blog/2010/03/Look-Ma-no-restarts/mac_screenshot.png 2x&#34; style=&#34;width: 600px&#34; alt=&#34;An extension installed without restarting Firefox&#34;&gt;&#xA;    &lt;/a&gt;&lt;figcaption&gt;Look Ma, no restart!&lt;/figcaption&gt;&lt;/figure&gt;&lt;p&gt;This is a screenshot of some of my latest (and most exciting) work on my project to rewrite the extension manager. I’ve just implemented support for a special kind of extension that can install (and uninstall, and enable, disable, upgrade and anything else you can think of) without the user needing to restart Firefox. This is of course to allow add-ons developed on the Jetpack platform to install without restarts but the feature is going to be available to any extension author, there are just some restrictions to how these extensions work.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Simplifying</title>
      <link>https://www.oxymoronical.com/blog/2010/03/Simplifying/</link>
      <pubDate>Sat, 13 Mar 2010 02:29:49 +0000</pubDate>
      <guid>https://www.oxymoronical.com/blog/2010/03/Simplifying/</guid>
      <description>&lt;p&gt;The big project that I have been working on for quite some time now is a complete change to the architecture of the add-ons manager backend. It’s a big scary prospect since (IMHO) the code is pretty crucial to the success of Firefox and many other Mozilla based applications. Without extensions I don’t think we’d be where we are today, in fact it was because of extensions that I got involved in the project in the first place.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Improving do_execute_soon for xpcshell tests</title>
      <link>https://www.oxymoronical.com/blog/2010/03/Improving-do_execute_soon-for-xpcshell-tests/</link>
      <pubDate>Tue, 09 Mar 2010 19:15:16 +0000</pubDate>
      <guid>https://www.oxymoronical.com/blog/2010/03/Improving-do_execute_soon-for-xpcshell-tests/</guid>
      <description>&lt;p&gt;It struck me the other day just how much of a pain debugging asynchronous xpcshell tests is. Frequently you just see the test timeout because some code you are working on has thrown an exception, but the test harness can’t detect that and end the test, or even log the exception. Well it can now for do_execute_soon at least. I’ve landed &lt;a href=&#34;https://bugzilla.mozilla.org/show_bug.cgi?id=550481&#34;&gt;bug 550481&lt;/a&gt; which catches and logs any exceptions in the callback passed to do_execute_soon. As an added bonus I also removed the need to use do_test_pending/complete when purely using do_execute_soon, the harness does it automatically. There is no harm in you doing it yourself too though.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Broken executables in extensions in Firefox 3.6</title>
      <link>https://www.oxymoronical.com/blog/2010/01/Broken-executables-in-extensions-in-Firefox-36/</link>
      <pubDate>Fri, 22 Jan 2010 18:09:41 +0000</pubDate>
      <guid>https://www.oxymoronical.com/blog/2010/01/Broken-executables-in-extensions-in-Firefox-36/</guid>
      <description>&lt;p&gt;If you are an extension developer and include executable files in your XPI package (binary or shell scripts) then you may be seeing problems in Firefox 3.6.&lt;/p&gt;&#xA;&lt;p&gt;Back between Firefox 3.6 beta and Firefox 3.6 RC we took a small fix to the extension manager that changed how we extract the files from the XPI package. The fix involved adjusting how we accessed files to avoid hitting problems with certain anti-virus tools that would occasionally lock files in the middle of extraction making us fail to install the add-on. A side effect to this fix leaves us setting file permissions on the extracted files in a slightly different way to previously. This side effect means that the executable permission is getting stripped from all extracted files. If you try to execute these files with &lt;code&gt;nsIProcess&lt;/code&gt; it will likely fail.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Throwing xpcom docs out into the wild</title>
      <link>https://www.oxymoronical.com/blog/2010/01/Throwing-xpcom-docs-out-into-the-wild/</link>
      <pubDate>Tue, 19 Jan 2010 19:50:41 +0000</pubDate>
      <guid>https://www.oxymoronical.com/blog/2010/01/Throwing-xpcom-docs-out-into-the-wild/</guid>
      <description>&lt;p&gt;It’s been quite some time since I last worked on my prototype &lt;a href=&#34;https://www.oxymoronical.com/experiments/xpcomref/&#34;&gt;XPCOM component/interface viewer&lt;/a&gt; and I have to face facts, it’s likely to be quite some time till I do again. I haven’t even had time to update it with the data from the latest 1.9.2 and trunk interfaces. Since I’m not likely to go anywhere else with this I’d love for someone else who thinks it is worthwhile to pick it up and run with it. I’ve just done a final commit adding a &lt;a href=&#34;http://hg.oxymoronical.com/projects/ApiSlurp/file/tip/README&#34;&gt;README&lt;/a&gt; on how to use the code (though I’m sure it is lacking in key ways so be prepared to have to experiment a bit) and the full source is available in my &lt;a href=&#34;http://hg.oxymoronical.com/projects/ApiSlurp/&#34;&gt;hg repository&lt;/a&gt;. The code is MPL tri-licensed so you should just be able to fork and go do your own thing. I should be able to answer any questions and would love to see it get finished and really usable somewhere.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Do we need extension dependencies?</title>
      <link>https://www.oxymoronical.com/blog/2010/01/Do-we-need-extension-dependencies/</link>
      <pubDate>Thu, 07 Jan 2010 18:50:42 +0000</pubDate>
      <guid>https://www.oxymoronical.com/blog/2010/01/Do-we-need-extension-dependencies/</guid>
      <description>&lt;p&gt;Ever since Firefox 2 we have vaguely supported a form of extension dependency. That is marking an extension as requiring particular versions of another extension.&lt;/p&gt;&#xA;&lt;p&gt;The support is currently very limited and when a user tries to use an add-on that depends on something they don’t have they are pretty much left in the cold. While we tell them it requires something we don’t tell that what it requires or give them any easy way to download and install it.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Changing the checkCompatibility preference</title>
      <link>https://www.oxymoronical.com/blog/2009/11/Changing-the-checkCompatibility-preference/</link>
      <pubDate>Fri, 06 Nov 2009 21:31:18 +0000</pubDate>
      <guid>https://www.oxymoronical.com/blog/2009/11/Changing-the-checkCompatibility-preference/</guid>
      <description>&lt;p&gt;Back in the mists of time I wrote some code to make nightly testers’ lives easier by giving them a simple preference to flip if they wanted to be able to install and use incompatible extensions. It’s been more than three years since then and the use of this preference has grown beyond its original use. It is now something recommended to regular users everywhere from forums to comments in news articles as a way to use their extensions in the new major Firefox releases.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Lightweight themes UI landed</title>
      <link>https://www.oxymoronical.com/blog/2009/09/Lightweight-themes-UI-landed/</link>
      <pubDate>Fri, 18 Sep 2009 22:11:27 +0000</pubDate>
      <guid>https://www.oxymoronical.com/blog/2009/09/Lightweight-themes-UI-landed/</guid>
      <description>&lt;p&gt;As part of the ongoing work to bring basic support for lightweight themes (based on the ideas from the &lt;a href=&#34;http://www.getpersonas.com/&#34;&gt;Personas&lt;/a&gt; extension) into Firefox 3.6 I’ve today landed the main UI parts that allow users to see and select between lightweight themes they have used recently. Dão &lt;a href=&#34;http://design-noir.de/log/2009/09/basic-support-for-lightweight-theming-landed/&#34;&gt;landed most of the backend&lt;/a&gt; last week but we’re still waiting on the support for &lt;a href=&#34;https://bugzilla.mozilla.org/show_bug.cgi?id=511771&#34;&gt;installing new lightweight themes&lt;/a&gt; before this feature will be truly usable in the development builds. For the time being here is a shot of what the UI looks like in the add-ons manager after you have used some lightweight themes.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Third-party extension installation status</title>
      <link>https://www.oxymoronical.com/blog/2009/09/Third-party-extension-installation-status/</link>
      <pubDate>Sat, 12 Sep 2009 16:04:05 +0000</pubDate>
      <guid>https://www.oxymoronical.com/blog/2009/09/Third-party-extension-installation-status/</guid>
      <description>&lt;p&gt;I have been remiss in not posting a status update about this in two weeks, but that is mostly because we have unfortunately had to slow down work on this feature. The problem is that a string freeze became necessary for all toolkit code (the code shared with the Firefox mobile browser and where this feature would have lived). Unfortunately this all came up over a small period when I was travelling long distances and having to take time out to satisfy immigration authorities that I wasn’t a terrorist intent on bringing down the U.S. government.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Third-party add-on notification progress, the lite edition</title>
      <link>https://www.oxymoronical.com/blog/2009/08/Third-party-add-on-notification-progress-the-lite-edition/</link>
      <pubDate>Fri, 28 Aug 2009 23:36:12 +0000</pubDate>
      <guid>https://www.oxymoronical.com/blog/2009/08/Third-party-add-on-notification-progress-the-lite-edition/</guid>
      <description>&lt;p&gt;This week has been the Firefox work week where almost all of the team, including me, made our way to Mountain View. This pretty much means that you spend the entire week in meetings since when you’re remote it can be hard to keep in sync on everything. Of course this means that the amount of coding is pretty low for the week so there isn’t a great deal of progress to report here.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Progress on notifying users about third-party add-ons</title>
      <link>https://www.oxymoronical.com/blog/2009/08/Progress-on-notifying-users-about-third-party-add-ons/</link>
      <pubDate>Fri, 21 Aug 2009 18:28:41 +0000</pubDate>
      <guid>https://www.oxymoronical.com/blog/2009/08/Progress-on-notifying-users-about-third-party-add-ons/</guid>
      <description>&lt;p&gt;This is a weekly status update on the feature to notify users about add-ons that third-party installers have added to Firefox. You can read more about it in last weeks &lt;a href=&#34;https://www.oxymoronical.com/blog/2009/08/Notifying-users-about-third-party-add-ons&#34;&gt;blog post&lt;/a&gt; or on the &lt;a href=&#34;https://wiki.mozilla.org/Firefox/Projects/System_Extension_Notification&#34;&gt;project wiki&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;h3 id=&#34;status&#34;&gt;Status&lt;/h3&gt;&#xA;&lt;p&gt;There has been little progress this week mostly due to waiting to see whether the &lt;a href=&#34;https://wiki.mozilla.org/Firefox/Projects/Doorhanger_notifications&#34;&gt;doorhanger notifications UI&lt;/a&gt; was going to arrive in time for Firefox 3.6. It looks like it isn’t so instead we are discussing using an in-content page to describe the add-ons that have been installed and allowing users to disable them.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Supporting icons for disabled extensions</title>
      <link>https://www.oxymoronical.com/blog/2009/08/Supporting-icons-for-disabled-extensions/</link>
      <pubDate>Thu, 20 Aug 2009 11:17:57 +0000</pubDate>
      <guid>https://www.oxymoronical.com/blog/2009/08/Supporting-icons-for-disabled-extensions/</guid>
      <description>&lt;p&gt;I’ve just landed code that allows extensions to include their icon in the add-ons manager view even when disabled. Currently extensions provide their icon by giving a chrome iconURL for us to load. This can only work when the extension is enabled since we don’t register the chrome otherwise. Themes on the other hand provide their icon as a simple file called “icon.png” alongside the install.rdf. Well extensions can do this too now and it will be used in preference to the iconURL but more importantly works at all times (well not before installation yet, but that is at least feasible this way).&lt;/p&gt;</description>
    </item>
    <item>
      <title>Notifying users about third-party add-ons</title>
      <link>https://www.oxymoronical.com/blog/2009/08/Notifying-users-about-third-party-add-ons/</link>
      <pubDate>Fri, 14 Aug 2009 21:48:52 +0000</pubDate>
      <guid>https://www.oxymoronical.com/blog/2009/08/Notifying-users-about-third-party-add-ons/</guid>
      <description>&lt;p&gt;You may have noticed many of the Firefox team starting to blog progress reports on Fridays. This is a part of our new plan to clearly define the &lt;a href=&#34;https://wiki.mozilla.org/Firefox/Projects&#34;&gt;main projects&lt;/a&gt; we are all working on and communicate a much as possible about them rather than just having users surprised to see them turn up in nightlies. So here is my report for this week:&lt;/p&gt;&#xA;&lt;p&gt;I’ve been working on improving the level of information and control we give users over add-ons installed by other applications on the system (think Skype, Java, AV tools etc.). The work for this is being tracked in &lt;a href=&#34;https://bugzilla.mozilla.org/show_bug.cgi?id=476430&#34;&gt;bug 476430&lt;/a&gt; and on the &lt;a href=&#34;https://wiki.mozilla.org/Firefox/Projects/System_Extension_Notification&#34;&gt;project wiki&lt;/a&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Bumper XULRunner release day!</title>
      <link>https://www.oxymoronical.com/blog/2009/07/Bumper-XULRunner-release-day/</link>
      <pubDate>Wed, 22 Jul 2009 18:42:41 +0000</pubDate>
      <guid>https://www.oxymoronical.com/blog/2009/07/Bumper-XULRunner-release-day/</guid>
      <description>&lt;p&gt;Thanks to the hard work of Nick Thomas and Lukas Blakk, today I can announce the availability of two new official releases of the XULRunner runtime and &lt;a href=&#34;https://developer.mozilla.org/en/Gecko_SDK&#34;&gt;SDKs&lt;/a&gt;. &lt;a href=&#34;https://developer.mozilla.org/en/XULRunner_1.9_Release_Notes&#34;&gt;XULRunner 1.9.0.12&lt;/a&gt; is a maintenance release for the 1.9.0 branch (the code that matches Firefox 3.0.x). &lt;a href=&#34;https://developer.mozilla.org/En/XULRunner_1.9.1_Release_Notes&#34;&gt;XULRunner 1.9.1&lt;/a&gt; is the first official release of XULRunner on the 1.9.1 branch (which matches the code in Firefox 3.5.x). Unfortunately we’re not quite at the point of shipping XULRunner releases at the same time as Firefox 3.5.x releases, but we should have a 1.9.1.1 release soon.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Where is XULRunner 1.9.1?</title>
      <link>https://www.oxymoronical.com/blog/2009/07/Where-is-XULRunner-191/</link>
      <pubDate>Wed, 08 Jul 2009 19:49:04 +0000</pubDate>
      <guid>https://www.oxymoronical.com/blog/2009/07/Where-is-XULRunner-191/</guid>
      <description>&lt;p&gt;A question I have been hearing quite a bit on IRC since Firefox 3.5 was released. We don’t quite have the build automation set up to do XULRunner 1.9.1 releases at the same time as Firefox yet, but Nick has been awesome and manually spun some release candidates. These should be pretty much good to go but it would be useful if anyone interested could try them out and report on any serious problems they see. Either just comment here or file a bug and mark it blocking &lt;a href=&#34;https://bugzilla.mozilla.org/show_bug.cgi?id=502915&#34;&gt;bug 502915&lt;/a&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Moar xpcom docs!</title>
      <link>https://www.oxymoronical.com/blog/2009/07/Moar-xpcom-docs/</link>
      <pubDate>Sun, 05 Jul 2009 17:57:03 +0000</pubDate>
      <guid>https://www.oxymoronical.com/blog/2009/07/Moar-xpcom-docs/</guid>
      <description>&lt;p&gt;While many of you were out blowing things up over the weekend I spent a few days varying between getting quite a bit done and banging my head against my desk in frustration.&lt;/p&gt;&#xA;&lt;p&gt;First I updated the &lt;a href=&#34;https://www.oxymoronical.com/experiments/apidocs/&#34;&gt;XPCOM interface lists&lt;/a&gt; that I have been working on with the final release version of Gecko 1.9.0. A few people had asked me for it but I had hit upon the problem that I had lost some of the arcane scripts that I was using to gather the data and so I had to rebuild them first. I have dropped information about the beta versions of 1.9.1 now, just because it was less work that way, if people desperately want them back then I can probably do it.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Farewell contents.rdf</title>
      <link>https://www.oxymoronical.com/blog/2009/06/Farewell-contentsrdf/</link>
      <pubDate>Thu, 11 Jun 2009 13:09:17 +0000</pubDate>
      <guid>https://www.oxymoronical.com/blog/2009/06/Farewell-contentsrdf/</guid>
      <description>&lt;p&gt;This is mainly of interest to add-on and application developers and I should stress from the outset that this is talking about changes in Gecko 1.9.2 which will first be released in whatever version of Firefox comes in 6-12 months time. Firefox 3.5 is unaffected by this change.&lt;/p&gt;&#xA;&lt;h2 id=&#34;what-was-it&#34;&gt;What was it?&lt;/h2&gt;&#xA;&lt;p&gt;Contents.rdf was the old way of performing &lt;a href=&#34;https://developer.mozilla.org/En/Chrome_Registration&#34;&gt;chrome registration&lt;/a&gt; for add-ons. It was replaced by chrome.manifest back in the mists of time in Gecko 1.8 and Firefox 1.5 (back in 2005 as it happens). We’ve continued to support reading contents.rdf for those developers who hadn’t had the chance to make the switch but after 4 years it seems time to remove that support and clean up the code that dealt with it.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Improving the add-on install experience</title>
      <link>https://www.oxymoronical.com/blog/2009/06/Improving-the-addon-install-experience/</link>
      <pubDate>Wed, 03 Jun 2009 09:44:13 +0000</pubDate>
      <guid>https://www.oxymoronical.com/blog/2009/06/Improving-the-addon-install-experience/</guid>
      <description>&lt;p&gt;Add-on developers face a bit of a challenge when it comes to helping users get the most out of their add-ons. Even once you are past the first hurdle and have got a user to install the add-on, you then need to help them get up and running quickly after Firefox has restarted. Presented with just the blank Firefox window it can be difficult for a user to know where to go next. Many add-on developers have taken to including a first-run experience to give the user some help. Display a webpage with some instructions or open a wizard to start setting up. As this practice started it was generally acceptable. Few add-ons actually did anything so it was helpful. These days though many add-ons are doing it, no doubt with more to come. It is starting to be an annoyance in some cases. Others have already &lt;a href=&#34;http://blog.fligtar.com/2008/10/16/responsible-first-run-usage/&#34;&gt;been discussing&lt;/a&gt; ways that we can improve this.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Where are we all?</title>
      <link>https://www.oxymoronical.com/blog/2009/05/Where-are-we-all/</link>
      <pubDate>Fri, 15 May 2009 17:00:06 +0000</pubDate>
      <guid>https://www.oxymoronical.com/blog/2009/05/Where-are-we-all/</guid>
      <description>&lt;p&gt;Not so long ago &lt;a href=&#34;http://ma.tt/&#34;&gt;Matt Mullenweg&lt;/a&gt; talked to the Mozilla employees about &lt;a href=&#34;http://wordpress.org/&#34;&gt;WordPress&lt;/a&gt; and its community. He mentioned about a map they had set up to show where they all were in the world and I was intrigued to know what such a map would look like for Mozilla. Now I don’t actually have the locations of all the community members, but I can make a decent start by using the locations of all the Mozilla Corporation employees, and with a few scripts and the &lt;a href=&#34;http://code.google.com/apis/maps/&#34;&gt;Google maps API&lt;/a&gt; there is something interesting to look at. Click on the image to go to the full interactive view:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Why change is hard</title>
      <link>https://www.oxymoronical.com/blog/2009/05/Why-change-is-hard/</link>
      <pubDate>Mon, 11 May 2009 10:56:21 +0000</pubDate>
      <guid>https://www.oxymoronical.com/blog/2009/05/Why-change-is-hard/</guid>
      <description>&lt;p&gt;This is really not the ideal set of interactions between the extension manager and its related components. Unfortunately changing it is going to be hard.&lt;/p&gt;&#xA;&lt;figure&gt;&#xA;    &lt;a href=&#34;reality.png&#34;&gt;&lt;img src=&#34;https://www.oxymoronical.com/blog/2009/05/Why-change-is-hard/reality.png&#34; style=&#34;width: 504px&#34; alt=&#34;Extension manager inter-dependencies&#34;&gt;&#xA;    &lt;/a&gt;&lt;figcaption&gt;interdependencies&lt;/figcaption&gt;&lt;/figure&gt;&lt;p&gt;Unfortunately adding any new features is also pretty hard until at least some of these dependencies are broken.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Letting add-ons perform work during install and uninstall</title>
      <link>https://www.oxymoronical.com/blog/2009/03/Letting-add-ons-perform-work-during-install-and-uninstall/</link>
      <pubDate>Mon, 30 Mar 2009 10:31:59 +0000</pubDate>
      <guid>https://www.oxymoronical.com/blog/2009/03/Letting-add-ons-perform-work-during-install-and-uninstall/</guid>
      <description>&lt;p&gt;One of the biggest requested items I see in the add-ons newsgroups and IRC channel is from developers asking how to perform some work when their add-on is installed or uninstalled. Previously it has been vaguely possible to do this, but there is a lot of hassle involved and it wouldn’t always work right.&lt;/p&gt;&#xA;&lt;p&gt;As part of my &lt;a href=&#34;https://wiki.mozilla.org/Extension_Manager:Future_Work&#34;&gt;roadmap&lt;/a&gt; for improving the extension manager we are talking about adding real support for these sorts of activities. The &lt;a href=&#34;https://wiki.mozilla.org/Extension_Manager:Install_Hooks&#34;&gt;draft specification&lt;/a&gt; covers the proposal in more details but in draft it allows the following:&lt;/p&gt;</description>
    </item>
    <item>
      <title>What&#39;s up with the extension manager?</title>
      <link>https://www.oxymoronical.com/blog/2009/03/Whats-up-with-the-extension-manager/</link>
      <pubDate>Mon, 30 Mar 2009 10:31:46 +0000</pubDate>
      <guid>https://www.oxymoronical.com/blog/2009/03/Whats-up-with-the-extension-manager/</guid>
      <description>&lt;p&gt;Some time ago (wow was it really 5 months!) I &lt;a href=&#34;https://www.oxymoronical.com/blog/2008/10/Planning-for-the-future&#34;&gt;blogged about&lt;/a&gt; some plans I have had for the future of the extension manager. I think it’s time for a short review of what it going on.&lt;/p&gt;&#xA;&lt;p&gt;I said at the time that any of the timescales mentioned we’re very rough and certain to be underestimates, but I didn’t quite appreciate how true that was at the time. Despite tripling most of the times we’re still almost nowhere along implemented most of the ideas.&lt;/p&gt;</description>
    </item>
    <item>
      <title>XULRunner 1.9.2a1pre builds also available</title>
      <link>https://www.oxymoronical.com/blog/2009/03/XULRunner-192a1pre-builds-also-available/</link>
      <pubDate>Sat, 28 Mar 2009 01:23:34 +0000</pubDate>
      <guid>https://www.oxymoronical.com/blog/2009/03/XULRunner-192a1pre-builds-also-available/</guid>
      <description>&lt;p&gt;Just as I’ve made some &lt;a href=&#34;https://www.oxymoronical.com/blog/2009/03/XULRunner-191b3-builds-get-them-while-theyre-hot&#34;&gt;1.9.1b3 builds&lt;/a&gt; I’ve spun some builds based on the latest trunk. Feel free to use these to see how things are shaping up with the bleeding edge Mozilla code. Obviously it is pre-alpha so not for productions.&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Windows &lt;a href=&#34;https://people.mozilla.com/~dtownsend/builds/xulrunner/1.9.2a1pre/xulrunner-1.9.2a1pre.en-US.win32.zip&#34;&gt;runtime&lt;/a&gt; &lt;a href=&#34;https://people.mozilla.com/~dtownsend/builds/xulrunner/1.9.2a1pre/xulrunner-1.9.2a1pre.en-US.win32.sdk.zip&#34;&gt;sdk&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;Linux &lt;a href=&#34;https://people.mozilla.com/~dtownsend/builds/xulrunner/1.9.2a1pre/xulrunner-1.9.2a1pre.en-US.linux-i686.tar.bz2&#34;&gt;runtime&lt;/a&gt; &lt;a href=&#34;https://people.mozilla.com/~dtownsend/builds/xulrunner/1.9.2a1pre/xulrunner-1.9.2a1pre.en-US.linux-i686.sdk.tar.bz2&#34;&gt;sdk&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;Mac OSX &lt;a href=&#34;https://people.mozilla.com/~dtownsend/builds/xulrunner/1.9.2a1pre/xulrunner-1.9.2a1pre.en-US.mac-pkg.dmg&#34;&gt;universal runtime&lt;/a&gt; &lt;a href=&#34;https://people.mozilla.com/~dtownsend/builds/xulrunner/1.9.2a1pre/xulrunner-1.9.2a1pre.en-US.mac-i386.sdk.tar.bz2&#34;&gt;i386 sdk&lt;/a&gt; &lt;a href=&#34;https://people.mozilla.com/~dtownsend/builds/xulrunner/1.9.2a1pre/xulrunner-1.9.2a1pre.en-US.mac-powerpc.sdk.tar.bz2&#34;&gt;ppc sdk&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
    </item>
    <item>
      <title>XULRunner 1.9.1b3 builds, get them while they&#39;re hot</title>
      <link>https://www.oxymoronical.com/blog/2009/03/XULRunner-191b3-builds-get-them-while-theyre-hot/</link>
      <pubDate>Fri, 27 Mar 2009 18:20:49 +0000</pubDate>
      <guid>https://www.oxymoronical.com/blog/2009/03/XULRunner-191b3-builds-get-them-while-theyre-hot/</guid>
      <description>&lt;p&gt;In the process of switching from CVS to Mercurial (and behind the scenes Tinderbox to Buildbot), quite a lot of Mozilla’s build and release systems have had to be updated. Sadly one of the casualties that has yet to be resuscitated are nightly builds of XULRunner on the 1.9.1 branch and trunk. Catlee is now doing some &lt;a href=&#34;https://bugzilla.mozilla.org/show_bug.cgi?id=445191&#34;&gt;excellent work&lt;/a&gt; to get these up and running, but until that gets going here are some semi-official builds using the code matching Firefox 3.1b3. I say semi-official, they were built on regular build slaves using the standard configuration, but just done by hand. I also haven’t tested all of them yet so let me know if you hit any issues, they might be good indicators of issues we’ll see with the nightlies.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Testing the background update checks</title>
      <link>https://www.oxymoronical.com/blog/2009/03/Testing-the-background-update-checks/</link>
      <pubDate>Thu, 19 Mar 2009 13:02:36 +0000</pubDate>
      <guid>https://www.oxymoronical.com/blog/2009/03/Testing-the-background-update-checks/</guid>
      <description>&lt;p&gt;Firefox does a fair number of things in the background to help keep things up to date. This includes checking for updates to Firefox itself, checking for updates to add-ons you have installed and checking for updates to a blocklist that disables known unstable add-ons. Normally it does these things quite happily, but for developers and QA, trying to verify that these background tasks are doing what they are supposed to can be annoying. After all who wants to leave Firefox running for a day just to see if it finds a new update?&lt;/p&gt;</description>
    </item>
    <item>
      <title>Brussels bound</title>
      <link>https://www.oxymoronical.com/blog/2009/02/Brussels-bound/</link>
      <pubDate>Wed, 04 Feb 2009 11:12:57 +0000</pubDate>
      <guid>https://www.oxymoronical.com/blog/2009/02/Brussels-bound/</guid>
      <description>&lt;p&gt;This weekend is &lt;a href=&#34;http://fosdem.org/2009/&#34;&gt;FOSDEM 2009&lt;/a&gt; and I’m actually managing to attend this year. It’s kind of weird, I keep doing all this travelling to the states yet I end up having to miss all the awesome stuff that goes on in Europe for various reasons (often because I am all travelled out from the states). But I’m going to be at FOSDEM even if it kills me, which considering the snow on the roads and serious travelling I have over the next few months is a possibility. Thankfully the jetlag from Europe is a lot easier to recover from.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Flipping the bird</title>
      <link>https://www.oxymoronical.com/blog/2009/01/Flipping-the-bird/</link>
      <pubDate>Fri, 30 Jan 2009 21:34:16 +0000</pubDate>
      <guid>https://www.oxymoronical.com/blog/2009/01/Flipping-the-bird/</guid>
      <description>&lt;p&gt;I outed myself last night on IRC as a non-Thunderbird user and &lt;a href=&#34;http://weblogs.mozillazine.org/dmose/&#34;&gt;dmose&lt;/a&gt; asked me why. I only had some fairly vague hand gesturing things to say so I said I’d switch back to it a bit and see what things really hurt. This is that list, or at least one day’s worth:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Mail windows stay in the way when I send a mail (&lt;a href=&#34;https://bugzilla.mozilla.org/show_bug.cgi?id=126140&#34;&gt;bug 126140&lt;/a&gt;). This bugs me, yes I can click back to the main window and carry on what I’m doing, but not only does the compose window not go away but another window opens to tell me the progress of the send. I don’t care. I only need to hear something if something goes wrong during the send, at which point bring me the window back with an error.&lt;/li&gt;&#xA;&lt;li&gt;The quick search box only searches a single folder (&lt;a href=&#34;https://bugzilla.mozilla.org/show_bug.cgi?id=353564&#34;&gt;bug 353564&lt;/a&gt;). This makes the rather strange assumption that I already know where a message I’m searching for is. Yes I know I can use the full search to do it, but I don’t want the added steps for something that should be automatic.&lt;/li&gt;&#xA;&lt;li&gt;Ugly ugly fonts (&lt;a href=&#34;https://bugzilla.mozilla.org/show_bug.cgi?id=465633&#34;&gt;bug 465633&lt;/a&gt;). This turned out to be one of the major things. Once I spent the time to configure the fonts to use some nicer ones (that are available by default in OSX) things really started to look up.&lt;/li&gt;&#xA;&lt;li&gt;The message threading is oddly laid out. The author should be part of the expandable section, but the twister is by the subject, it is a bit weird, probably because it is different to how OSX Mail does it.&lt;/li&gt;&#xA;&lt;li&gt;The header on the message reading pane is far too large and wasteful. What does it include? A set of buttons to reply, forward etc. which are already in my toolbar anyway. The subject and sender of the message which are listed in the message list anyway. And who it was sent to. Even if I wanted to see all these things it could be displayed in less than half the space I think. The same is true of the “remote images are blocked” notification. Both of these two together take up nearly a seventh of my screen height.&lt;/li&gt;&#xA;&lt;li&gt;Tabs. I’m not sure I see the need for them in a mail app but fair enough if you do that’s fine. But don’t force me to lose more screen space when I don’t want to use them.&lt;/li&gt;&#xA;&lt;li&gt;I have many contacts with multiple email addresses. I can’t seem to see a way to choose which email address to use other than manually copying and pasting it. The autocomplete only seems to offer the first from each address book. Using the physical address book doesn’t seem to help either. Even more fun my OSX address book has sometimes 3 or more email addresses for people, Thunderbird can only see two of them.&lt;/li&gt;&#xA;&lt;li&gt;Please don’t bug me about saving a draft of a message that has no content, no subject and no filled in email addresses.&lt;/li&gt;&#xA;&lt;li&gt;Had to manually ask Thunderbird to check for new mail in IMAP folders other than the inbox and as far as I can tell the new mail count in the dock doesn’t include anything other than the inbox, and even then it gets it wrong sometimes (&lt;a href=&#34;https://bugzilla.mozilla.org/show_bug.cgi?id=274688&#34;&gt;bug 274688&lt;/a&gt;).&lt;/li&gt;&#xA;&lt;li&gt;Over complicated identities (&lt;a href=&#34;https://bugzilla.mozilla.org/show_bug.cgi?id=476142&#34;&gt;bug 476142&lt;/a&gt;). What I want from an identity is just to be able to send email from a second address. That is it. Other than that I want the same settings as the main identity.&lt;/li&gt;&#xA;&lt;li&gt;Over complicated font selection (&lt;a href=&#34;https://bugzilla.mozilla.org/show_bug.cgi?id=382272&#34;&gt;bug 382272&lt;/a&gt;). This is the same dialog as in Firefox (where I also think it is pretty nasty). I like that I can choose what font it defaults to for serif, sans-serif and mono-space. I don’t like that I have to make that choice for each language. It took me a while in Thunderbird before I figured out bug mail was classified as “Other Languages” (&lt;a href=&#34;https://bugzilla.mozilla.org/show_bug.cgi?id=91190&#34;&gt;bug 91190&lt;/a&gt;) and that was why it wasn’t obeying my settings.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;These last few are part of the main problem I feel Thunderbird suffers from right now. Too many options. I’m sure there are many people out there who love the fact they can have different composition settings per mail server and per identity, and different fonts per language, and have the option whether or not to check for email in individual folders. I don’t. I don’t have the time to spend trying to keep my settings the same in 20 different places. If we must offer this sort of customisability then have a global settings area and make everything default to using that, then let users choose to override those defaults in a particular place.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Updated Interface lists</title>
      <link>https://www.oxymoronical.com/blog/2009/01/Updated-Interface-lists/</link>
      <pubDate>Thu, 29 Jan 2009 17:27:08 +0000</pubDate>
      <guid>https://www.oxymoronical.com/blog/2009/01/Updated-Interface-lists/</guid>
      <description>&lt;p&gt;I’ve generated a new database for my interface listing webapp so you can now see the current state of the 1.9.1b3pre and 1.9.2a1pre platforms. So for all you extension developers getting ready for the Firefox 3.1b3 release maybe you want to see what has changed &lt;a href=&#34;https://www.oxymoronical.com/experiments/apidocs/compare/platform/1.9.1b3pre/1.9.1b2&#34;&gt;since 3.1b2&lt;/a&gt;? Or &lt;a href=&#34;https://www.oxymoronical.com/experiments/apidocs/compare/platform/1.9.1b3pre/1.9.0.0&#34;&gt;since 3.0&lt;/a&gt;?&lt;/p&gt;&#xA;&lt;p&gt;There are still more things I want to do with this web-app, but right now my time is being spent elsewhere so for now I’ll just keep it up to date with the beta releases. Once 3.1 final is released I’ll likely remove all the beta versions since they probably won’t be necessary then.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Zooming along, hopefully as fast as before</title>
      <link>https://www.oxymoronical.com/blog/2009/01/Zooming-along-hopefully-as-fast-as-before/</link>
      <pubDate>Wed, 14 Jan 2009 19:43:14 +0000</pubDate>
      <guid>https://www.oxymoronical.com/blog/2009/01/Zooming-along-hopefully-as-fast-as-before/</guid>
      <description>&lt;p&gt;I’ve just landed a fix to &lt;a href=&#34;https://bugzilla.mozilla.org/show_bug.cgi?id=386835&#34;&gt;a bug&lt;/a&gt; that has irritated me ever since page zoom started getting remembered for sites. It fixes a real problem you find if you both use zoom a fair bit, and load pages in background tabs. When you finally decide to look at that tab there is this little pause (or long pause if the page is large) and sometimes a visual jump as it re-zooms the content. It also changes where the page is scrolled to which is very irritating if you have just clicked a link to a specific line in some source code for example.&lt;/p&gt;</description>
    </item>
    <item>
      <title>What is the most useful way to present interface lists?</title>
      <link>https://www.oxymoronical.com/blog/2008/12/What-is-the-most-useful-way-to-present-interface-lists/</link>
      <pubDate>Mon, 01 Dec 2008 22:30:51 +0000</pubDate>
      <guid>https://www.oxymoronical.com/blog/2008/12/What-is-the-most-useful-way-to-present-interface-lists/</guid>
      <description>&lt;p&gt;I’ve just rolled out a small update to the &lt;a href=&#34;https://www.oxymoronical.com/experiments/apidocs/&#34;&gt;interface cross reference&lt;/a&gt;, nothing major, just fixing a few bugs and I’ve put up what looks like the final set of interfaces for 1.9.1b2.&lt;/p&gt;&#xA;&lt;p&gt;I’ve now figured out the best way to gather the interface lists and so the cross reference now includes all interfaces used in all 3 major platforms of Firefox. It is relatively simple for me to add the interfaces for other applications now but this got me thinking about what kind of uses people are making of this and how the multi-OS, multi-app interfaces should be presented. A few ideas came to mind:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Improving the API references</title>
      <link>https://www.oxymoronical.com/blog/2008/11/Improving-the-API-references/</link>
      <pubDate>Sun, 16 Nov 2008 13:21:01 +0000</pubDate>
      <guid>https://www.oxymoronical.com/blog/2008/11/Improving-the-API-references/</guid>
      <description>&lt;p&gt;I forgot to add to my &lt;a href=&#34;https://www.oxymoronical.com/blog/2008/11/API-reference-updates&#34;&gt;last post&lt;/a&gt; some information about what I currently had in mind to improve about the &lt;a href=&#34;https://www.oxymoronical.com/experiments/apidocs/&#34;&gt;API reference&lt;/a&gt; I’ve been working on. Any further suggestions people have are very welcome, but here is the current few ideas I have.&lt;/p&gt;&#xA;&lt;p&gt;Currently it only indexes Firefox and Gecko interfaces, in fact it only indexes those used by an OSX build of Firefox. It would be nice to be able to index interfaces for all the main applications and for all the platforms. There are a couple of issues with this. Firstly I’d want the UI to work so people viewing it could select what set of interfaces they wanted to see. Secondly actually building the lists of interfaces for each application and OS is going to be pretty tricky I think. So far I’ve resorted to building Firefox then looking in dist/idl. This works but it is time consuming. Possibly I might be able to come up with some clever nonsense to make the build system only compile idls but we’ll see.&lt;/p&gt;</description>
    </item>
    <item>
      <title>API reference updates</title>
      <link>https://www.oxymoronical.com/blog/2008/11/API-reference-updates/</link>
      <pubDate>Sat, 15 Nov 2008 20:29:20 +0000</pubDate>
      <guid>https://www.oxymoronical.com/blog/2008/11/API-reference-updates/</guid>
      <description>&lt;p&gt;Since my &lt;a href=&#34;https://www.oxymoronical.com/blog/2008/10/Finding-API-Changes&#34;&gt;first announcement&lt;/a&gt; about my little &lt;a href=&#34;https://www.oxymoronical.com/experiments/apidocs/&#34;&gt;api reference tool&lt;/a&gt; I’ve slowly been working on updates to make it more useful and easier to navigate around. I’ve now gone and pushed the latest version live. A few of the new features:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;The main and platform lists of interfaces are split by the module where the interface lives.&lt;/li&gt;&#xA;&lt;li&gt;Interface lists have a quick filter box, type in it to filter the list quickly.&lt;/li&gt;&#xA;&lt;li&gt;Any interfaces used as return types or parameters are now links to get you straight to the information about them.&lt;/li&gt;&#xA;&lt;li&gt;Full IDL support so it now lists all the special attributes and for the uninitiated they have tooltips that explain what they mean.&lt;/li&gt;&#xA;&lt;li&gt;You can now list all usage of an interface by other interfaces.&lt;/li&gt;&#xA;&lt;li&gt;Constants are ordered the same as in the source IDL since they tend to make more sense that way.&lt;/li&gt;&#xA;&lt;li&gt;Includes direct links to the source IDL file.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;I’ve also updated the database with the latest APIs in 1.9.1b2pre and as soon as 1.9.1b2 is frozen I’ll update it again just to be sure it has the latest versions.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Planning for the future</title>
      <link>https://www.oxymoronical.com/blog/2008/10/Planning-for-the-future/</link>
      <pubDate>Tue, 28 Oct 2008 16:24:26 +0000</pubDate>
      <guid>https://www.oxymoronical.com/blog/2008/10/Planning-for-the-future/</guid>
      <description>&lt;p&gt;For some time now I’ve been &lt;a href=&#34;https://www.oxymoronical.com/blog/2008/04/Whats-the-Future-for-Add-ons-Management&#34;&gt;throwing&lt;/a&gt; &lt;a href=&#34;https://www.oxymoronical.com/blog/2008/08/Add-ons-Manager-session-notes&#34;&gt;around&lt;/a&gt; ideas for new features that we may want for the add-ons manager. After lots of thought and trying to take on board comments from anyone that would pipe up I decided it was high time to put together an actual plan for what features I have decided should be pursued and what order to start tackling them.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://wiki.mozilla.org/Extension_Manager:Future_Work&#34;&gt;The roadmap&lt;/a&gt; itself should be pretty self explanatory, just remember that nothing is ever set in stone. I’ll try to keep it updated as things change, features seem less important or new items are added. But for now this is how I see the add-ons manager evolving over the course of about the next year or so, which may be the next two versions after Firefox 3.1.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Dividing the labour</title>
      <link>https://www.oxymoronical.com/blog/2008/10/Dividing-the-labour/</link>
      <pubDate>Mon, 27 Oct 2008 11:19:39 +0000</pubDate>
      <guid>https://www.oxymoronical.com/blog/2008/10/Dividing-the-labour/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;http://blog.mozilla.com/faaborg/&#34;&gt;Faaborg&lt;/a&gt; has started a discussion on the newsgroups on the relative importance of polish and blocker bugs (I’d provide a link bug Google Groups seems to be refusing to acknowledge existence of the post). I have been for quite some time now very focused on the in-depth blocker issues, partly because that is where all the interesting work is for me, but also because I think it makes more sense for me or one of the other guys with good understandings of how the extension manager works to be making these changes rather than throwing others in at the deep end.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Finding API Changes</title>
      <link>https://www.oxymoronical.com/blog/2008/10/Finding-API-Changes/</link>
      <pubDate>Fri, 24 Oct 2008 20:07:51 +0000</pubDate>
      <guid>https://www.oxymoronical.com/blog/2008/10/Finding-API-Changes/</guid>
      <description>&lt;p&gt;I started a small discussion on the newsgroups the other day wondering about the numbers of API changes that had landed on trunk since 1.9.0. It was a short discussion, maybe partly because all I had to go on were the vague metrics that mercurial could give me. It also evolved a little into a discussion of how add-on developers we’re meant to find out about API changes. It’s true that as developers we are getting better at trying to announce our changes as much as possible, but inevitably we miss some, and if you don’t track the announcements what then?&lt;/p&gt;</description>
    </item>
    <item>
      <title>How extensions can slow down Firefox (my dirty little secret)</title>
      <link>https://www.oxymoronical.com/blog/2008/10/How-extensions-can-slow-down-Firefox-my-dirty-little-secret/</link>
      <pubDate>Mon, 06 Oct 2008 11:21:24 +0000</pubDate>
      <guid>https://www.oxymoronical.com/blog/2008/10/How-extensions-can-slow-down-Firefox-my-dirty-little-secret/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;https://www.oxymoronical.com/web/firefox/TabSidebar&#34;&gt;Tab Sidebar&lt;/a&gt; is probably my favourite extension that I’ve created. It is certainly the most polished, thanks mostly to other people pushing me to make it so. For those that haven’t used it it creates a thumbnail preview of all of your tabs in the sidebar. The thumbnails automatically update whenever the page changes, even things like popup menus generally show up. This automatic updating comes at a cost though.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Ruminations on a fortnight</title>
      <link>https://www.oxymoronical.com/blog/2008/09/ruminations-on-a-fortnight/</link>
      <pubDate>Sat, 27 Sep 2008 09:28:32 +0000</pubDate>
      <guid>https://www.oxymoronical.com/blog/2008/09/ruminations-on-a-fortnight/</guid>
      <description>&lt;p&gt;It’s been a hectic couple of weeks for me and I wanted to touch on a few of the highs and lows before I forget them all.&lt;/p&gt;&#xA;&lt;p&gt;It started with flights to get me to Toronto (for those of you that don’t know I live and work out of the UK). I was speaking at the &lt;a href=&#34;https://wiki.mozilla.org/DeveloperDays/TorontoSept2008/Presentations&#34;&gt;Toronto Developer Day&lt;/a&gt; as well as attending a Firefox team work week (two things that conflicted more than I would have liked unfortunately). I normally manage to find direct flights but this time I had to connect through Amsterdam which wasn’t too bad, even if they seem even more mad for security than Heathrow. Incidentally terminal 4 at Heathrow is miles nicer than 3 where I normally come from, even if the 6 police officers armed with automatic weapons was a little disconcerting.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Toronto Developer Day</title>
      <link>https://www.oxymoronical.com/blog/2008/09/Toronto-Developer-Day/</link>
      <pubDate>Thu, 04 Sep 2008 13:30:21 +0000</pubDate>
      <guid>https://www.oxymoronical.com/blog/2008/09/Toronto-Developer-Day/</guid>
      <description>&lt;p&gt;In case you hadn’t heard Mozilla are running a &lt;a href=&#34;https://wiki.mozilla.org/DeveloperDays/TorontoSept2008&#34;&gt;developer day&lt;/a&gt; in a week or so’s time in Toronto. The first day is aimed at giving a good overview of the Mozilla platform and what technologies it offers. The second day will be a more hands on workshop where you can try your hand at extensions, applications and testing with friendly experienced people around to lend a hand when you hit problems. It isn’t far off now so get yourself signed up if you’re coming.&lt;/p&gt;</description>
    </item>
    <item>
      <title>The great bug triage</title>
      <link>https://www.oxymoronical.com/blog/2008/08/The-great-bug-triage/</link>
      <pubDate>Wed, 13 Aug 2008 10:14:12 +0000</pubDate>
      <guid>https://www.oxymoronical.com/blog/2008/08/The-great-bug-triage/</guid>
      <description>&lt;p&gt;I was very excited to learn at the Firefox Summit that Rob Strong was handing over ownership of the Extension Manager module to me. He did great work making the extension manager what it is today but has lately had to be more focused on Installer and windows integration issues.&lt;/p&gt;&#xA;&lt;p&gt;Last week I spent a large part of my time trying to get myself up to speed on all the old filed bugs, clearing out things that clearly aren’t going to happen and trying to consolidate others. In particular I made the effort to go over every single unconfirmed bug and either resolve as appropriate or request any additional information from the reporter. It is rather sad that many of these were issues that noone commented in after the initial report or even worse the reporter responded with additional information but people (including me) dropped the ball and nothing further happened.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Add-ons Manager session notes</title>
      <link>https://www.oxymoronical.com/blog/2008/08/Add-ons-Manager-session-notes/</link>
      <pubDate>Mon, 04 Aug 2008 19:07:42 +0000</pubDate>
      <guid>https://www.oxymoronical.com/blog/2008/08/Add-ons-Manager-session-notes/</guid>
      <description>&lt;p&gt;My head is slightly less fuzzy now and I’m almost back on UK time so I thought it would be a good opportunity to give a quick review of how the &lt;a href=&#34;http://wiki.mozilla.org/Summit2008/Sessions/Proposals/Add-on_Manager&#34;&gt;Add-ons Manager&lt;/a&gt; session I ran at the summit went. I won’t go into too much detail, just a look at the main points of discussion and how I felt the room reacted to the ideas. You can also see the &lt;a href=&#34;https://www.oxymoronical.com/presentations/addonsmanager-2008-07-29.html&#34;&gt;slides&lt;/a&gt; I prepared or the &lt;a href=&#34;http://wiki.mozilla.org/Summit2008/Sessions/Proposals/Add-on_Manager/Session_Notes&#34;&gt;notes&lt;/a&gt; that Basil kindly took for me without me needing to remember to ask. Most of the session was about things we might want to implement and what problems/benefits we might encounter.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Thanks Canada (no, really)</title>
      <link>https://www.oxymoronical.com/blog/2008/08/Thanks-Canada-no-really/</link>
      <pubDate>Sun, 03 Aug 2008 06:02:47 +0000</pubDate>
      <guid>https://www.oxymoronical.com/blog/2008/08/Thanks-Canada-no-really/</guid>
      <description>&lt;p&gt;It’s 6:30am Sunday UK time (though in my weird method of getting over the jet lag that works out as just after lunchtime) and I’ve just got home to Swansea. As many others are I’ve been thinking back over the great times I’ve had over the past two weeks. Needless to say I got out alive, as I believe everyone did (though apparently some are still stranded in Vancouver), despite Canada’s attempts to break us.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Keeping Track</title>
      <link>https://www.oxymoronical.com/blog/2008/07/Keeping-Track/</link>
      <pubDate>Tue, 08 Jul 2008 12:58:42 +0000</pubDate>
      <guid>https://www.oxymoronical.com/blog/2008/07/Keeping-Track/</guid>
      <description>&lt;p&gt;In the past year or so that I’ve been working for Mozilla I’ve found myself slowly working my way through a bunch of different ways to keep track of all of the work on my plate. I still don’t think I’ve found the best way so I wondered what other people do to manage such things?&lt;/p&gt;&#xA;&lt;p&gt;For a rough idea of my work, most of my work is bug oriented. Either bugs that I want to work on when I get some time, bugs I am actively working on, bugs I am waiting for review on, bugs I am reviewing, bugs I am waiting to check in, bugs I want to backport to a branch… and so on. Then there is other work like planning future work and working with extension authors to help resolve their problems.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Filing good Extension Manager bugs</title>
      <link>https://www.oxymoronical.com/blog/2008/06/Filing-good-Extension-Manager-bugs/</link>
      <pubDate>Fri, 27 Jun 2008 12:12:54 +0000</pubDate>
      <guid>https://www.oxymoronical.com/blog/2008/06/Filing-good-Extension-Manager-bugs/</guid>
      <description>&lt;p&gt;The Extension Manager is pretty complex and so it can be difficult to gather the sort of information needed in a bug report to really diagnose what is going on. When the problem is related to extension installation, upgrade, uninstall or enable/disable, these suggestions should help get as much information as possible into a bug report.&lt;/p&gt;&#xA;&lt;h3 id=&#34;be-specific-in-your-description&#34;&gt;Be specific in your description&lt;/h3&gt;&#xA;&lt;p&gt;While it may appear that your problem happens for “every add-on you try to install” or for “every website” the reality is that add-ons are complex things. A feature of the 20 add-ons you tried might not be present in the one add-on that the developer tests with. If you say precisely what add-ons you tried then the developers will test with those add-on which gives us a better chance of reproducing your problem.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Should AMO allow adverts for pay-for add-ons?</title>
      <link>https://www.oxymoronical.com/blog/2008/06/Should-AMO-allow-adverts-for-pay-for-add-ons/</link>
      <pubDate>Thu, 26 Jun 2008 11:09:03 +0000</pubDate>
      <guid>https://www.oxymoronical.com/blog/2008/06/Should-AMO-allow-adverts-for-pay-for-add-ons/</guid>
      <description>&lt;p&gt;Assuming you agree that paying for some add-ons is ok then you have to ask what we do about people using AMO as a marketing platform. This is a tough question since we risk devaluing AMO as a website if it just gets filled up with adverts. I don’t believe that there is an official policy on this. It is such a rare issue right now that maybe one isn’t necessary, but here are are my thoughts on what such a policy might say.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Should developers charge for add-ons?</title>
      <link>https://www.oxymoronical.com/blog/2008/06/Should-developers-charge-for-add-ons/</link>
      <pubDate>Thu, 26 Jun 2008 11:06:34 +0000</pubDate>
      <guid>https://www.oxymoronical.com/blog/2008/06/Should-developers-charge-for-add-ons/</guid>
      <description>&lt;p&gt;I’m very surprised that many people are questioning whether developers should even be allowed to charge for add-ons. Traditionally it is true that add-ons have been freely available, but I’ve known of pay for add-ons for at least 2 years now (that add-on is still available so must be doing ok) and I imagine there have been some around for longer. Some companys’ entire business rests on their Firefox add-ons. That sort of situation wouldn’t exist if no-one ever paid for add-ons in some way.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Money money money</title>
      <link>https://www.oxymoronical.com/blog/2008/06/Money-money-money/</link>
      <pubDate>Thu, 26 Jun 2008 11:04:59 +0000</pubDate>
      <guid>https://www.oxymoronical.com/blog/2008/06/Money-money-money/</guid>
      <description>&lt;p&gt;The question about developers charging money for the use of add-ons seems to be getting brought up again lately. One of the more active theme developers has started to charge for premium versions of their themes, leaving free basic versions still available on &lt;a href=&#34;https://addons.mozilla.org&#34;&gt;addons.mozilla.org&lt;/a&gt;. There are a couple of different issues with this, both of which many users are taking exception to. Apparently once I started writing about this I couldn’t stop so I’ve split this out into a couple of different posts to follow.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Add-on Developers, Get the News you Crave</title>
      <link>https://www.oxymoronical.com/blog/2008/05/Add-on-Developers-Get-the-News-you-Crave/</link>
      <pubDate>Fri, 16 May 2008 17:23:51 +0000</pubDate>
      <guid>https://www.oxymoronical.com/blog/2008/05/Add-on-Developers-Get-the-News-you-Crave/</guid>
      <description>&lt;p&gt;Being an add-on developer can be hard work. So many different places to look for information about releases, new features and changes to the platform. How can you be expected to keep up with all this?&lt;/p&gt;&#xA;&lt;p&gt;Well starting next week hopefully we’ll be taking a big step in the right direction. Mozilla are launching about:addons, a newsletter dedicated to getting add-on developers all the important information they need. There will be announcements about when to check your add-ons against new releases of applications, new features added to &lt;a href=&#34;https://addons.mozilla.org&#34;&gt;addons.mozilla.org&lt;/a&gt;, plans for the future that you can get involved with and early warning of API changes.&lt;/p&gt;</description>
    </item>
    <item>
      <title>What&#39;s the Future for Add-ons Management?</title>
      <link>https://www.oxymoronical.com/blog/2008/04/Whats-the-Future-for-Add-ons-Management/</link>
      <pubDate>Tue, 15 Apr 2008 10:07:56 +0000</pubDate>
      <guid>https://www.oxymoronical.com/blog/2008/04/Whats-the-Future-for-Add-ons-Management/</guid>
      <description>&lt;p&gt;With Firefox 3 getting ever closer to release it is time (well, past time) to start thinking about the future. The Extension Manager has seen quite a number of improvements since Firefox 2. Many were designed to be invisible, generally improving stability and fixing oddities. Some are extremely visible such as the &lt;a href=&#34;http://developer.mozilla.org/en/docs/Extension_Versioning,_Update_and_Compatibility#Securing_Updates&#34;&gt;new security requirements&lt;/a&gt; and the &lt;a href=&#34;http://madhava.com/egotism/archive/005011.html&#34;&gt;addons.mozilla.org integration&lt;/a&gt;. The question is, what’s the next step for add-ons management?&lt;/p&gt;&#xA;&lt;p&gt;Here are a few ideas that are floating around my mind to get you started:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Why 2 SDKs are better than 1</title>
      <link>https://www.oxymoronical.com/blog/2008/04/Why-2-SDKs-are-better-than-1/</link>
      <pubDate>Thu, 10 Apr 2008 19:30:42 +0000</pubDate>
      <guid>https://www.oxymoronical.com/blog/2008/04/Why-2-SDKs-are-better-than-1/</guid>
      <description>&lt;p&gt;In the past the Gecko SDK was somewhat limited. You could compile against it, but only if you were using frozen components, of which there are exceptionally few. You can build an application with only them, but I’d be startled if any moderately complicated app or extension gets by with only them. Thankfully this has changed for 1.9 and the new style SDK contains all interfaces and headers, frozen and unfrozen. This gives you access to lots more, though has the minor disadvantage that you have to keep an eye on what you are using as it could break in the future.&lt;/p&gt;</description>
    </item>
    <item>
      <title>On Timezones, Testing and Deals with the Devil</title>
      <link>https://www.oxymoronical.com/blog/2008/03/On-Timezones-Testing-and-Deals-with-the-Devil/</link>
      <pubDate>Mon, 10 Mar 2008 16:04:18 +0000</pubDate>
      <guid>https://www.oxymoronical.com/blog/2008/03/On-Timezones-Testing-and-Deals-with-the-Devil/</guid>
      <description>&lt;p&gt;Timezones make my head hurt. Not the concept, that is easy, but writing code that works correctly in different timezones. Throw daylight savings correction into the mix and you’ll often find me in a corner rocking gently. The problem of course is that I frequently have to deal with data that isn’t just the standard unix timestamp (or various orders of magnitude away from). A number of times a load of information has been thrown away, never to be recovered which makes life interesting. You end up having to decide which is the best path to take when all of them are wrong in various ways.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Trimming the Fat</title>
      <link>https://www.oxymoronical.com/blog/2008/02/Trimming-the-Fat/</link>
      <pubDate>Fri, 08 Feb 2008 17:30:27 +0000</pubDate>
      <guid>https://www.oxymoronical.com/blog/2008/02/Trimming-the-Fat/</guid>
      <description>&lt;p&gt;As I mentioned in my last post and as I know everyone is well aware, tinderbox is starting to feel the strain. You already can’t just glance at it to see what is going on. The Firefox tree is currently showing build and test results from a total of 23 machines. The interesting thing is that not all of these machines are actually doing any compiling. The rest are merely running tests on builds produced by the other machines. That isn’t to say that those test results are less important but I wonder whether it is worth treating these differently.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Visualising our Labours</title>
      <link>https://www.oxymoronical.com/blog/2008/02/Visualising-our-Labours/</link>
      <pubDate>Tue, 05 Feb 2008 17:07:18 +0000</pubDate>
      <guid>https://www.oxymoronical.com/blog/2008/02/Visualising-our-Labours/</guid>
      <description>&lt;p&gt;Well it has been a mad few weeks. Between landing the new &lt;a href=&#34;http://madhava.com/egotism/archive/005011.html&#34;&gt;Get Add-ons pane&lt;/a&gt;, sheriffing the Firefox 3 beta 3 freeze, &lt;a href=&#34;http://bonsai.mozilla.org/cvsquery.cgi?module=PhoenixTinderbox&amp;amp;date=explicit&amp;amp;mindate=1201658283&amp;amp;maxdate=1201658500&#34;&gt;decimating&lt;/a&gt; old parts of the code and working through &lt;a href=&#34;https://bugzilla.mozilla.org/showdependencytree.cgi?id=404024&amp;amp;maxdepth=1&amp;amp;hide_resolved=0&#34;&gt;follow-up issues&lt;/a&gt; from the Get Add-ons pane and not to mention two 10 hour flights it really has been busy. Thankfully I’ve not just been totally buried under code, I’ve had some small spare time to tinker with a few other things (I need to to keep my sanity).&lt;/p&gt;</description>
    </item>
    <item>
      <title>Extension Authors, Say Hi to McCoy</title>
      <link>https://www.oxymoronical.com/blog/2007/09/Extension-Authors-Say-Hi-to-McCoy/</link>
      <pubDate>Mon, 17 Sep 2007 16:10:36 +0000</pubDate>
      <guid>https://www.oxymoronical.com/blog/2007/09/Extension-Authors-Say-Hi-to-McCoy/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;mccoy128.png&#34;&gt;&lt;img src=&#34;https://www.oxymoronical.com/blog/2007/09/Extension-Authors-Say-Hi-to-McCoy/mccoy128.png&#34; style=&#34;width: 128px&#34; alt=&#34;McCoy&#34; title=&#34;McCoy&#34;&gt;&#xA;  &lt;/a&gt;I know all you extension authors out there have been understandably miffed at the add-on update security bits landing before you could do anything about it, so I’ve pushed hard and we can now make an early version of McCoy available.&lt;/p&gt;&#xA;&lt;p&gt;McCoy is the tool to use if you are hosting your own add-ons and for whatever reason cannot use SSL to secure the updates. If you haven’t yet heard about the new security restrictions that will be in Firefox 3 or you don’t quite understand them yet then why not skip on over to the vastly improved &lt;a href=&#34;http://developer.mozilla.org/en/docs/Extension_Versioning%2C_Update_and_Compatibility&#34;&gt;add-on updates documentation&lt;/a&gt; and take particular note of the security section.&lt;/p&gt;</description>
    </item>
    <item>
      <title>ZipWriter is Here!</title>
      <link>https://www.oxymoronical.com/blog/2007/09/ZipWriter-is-Here/</link>
      <pubDate>Mon, 17 Sep 2007 16:04:11 +0000</pubDate>
      <guid>https://www.oxymoronical.com/blog/2007/09/ZipWriter-is-Here/</guid>
      <description>&lt;p&gt;Yes, finally after months of twiddling my thumbs waiting for approval to land the zipwriter component has gone into trunk, and is enabled for all applications (some apps might need to add the interface to their packages list). If you want to use check out the &lt;a href=&#34;http://mxr.mozilla.org/seamonkey/source/modules/libjar/zipwriter/public/nsIZipWriter.idl&#34;&gt;interface&lt;/a&gt;, it’s fairly well documented I think. That magic contract ID you need is “@mozilla.org/zipwriter;1”.&lt;/p&gt;&#xA;&lt;p&gt;It’s been quite a long process both writing the code, getting reviewed and getting agreement for it to appear in Firefox so I hope all you extension authors and application developers are going to make good use out of it in your projects. Let me know what you come up with.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Add-on Security Restrictions Landed</title>
      <link>https://www.oxymoronical.com/blog/2007/09/Add-on-Security-Restrictions-Landed/</link>
      <pubDate>Mon, 03 Sep 2007 23:49:14 +0000</pubDate>
      <guid>https://www.oxymoronical.com/blog/2007/09/Add-on-Security-Restrictions-Landed/</guid>
      <description>&lt;p&gt;I have just checked in &lt;a href=&#34;https://bugzilla.mozilla.org/show_bug.cgi?id=378216&#34; title=&#34;Disable insecure extension updates by default&#34;&gt;Bug 378216&lt;/a&gt;, and wanted to give a quick heads up on it.&lt;/p&gt;&#xA;&lt;p&gt;What this means is that we are now enforcing a security restriction on all add-ons. To be specific, if an add-on does not provide a secure method of auto-updating then by default Firefox will refuse to install the add-on. If you have add-ons already installed that are insecure in this way then they will be automatically disabled.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Let the Testing Commence</title>
      <link>https://www.oxymoronical.com/blog/2007/08/Let-the-Testing-Commence/</link>
      <pubDate>Sun, 12 Aug 2007 06:38:49 +0000</pubDate>
      <guid>https://www.oxymoronical.com/blog/2007/08/Let-the-Testing-Commence/</guid>
      <description>&lt;p&gt;After a fair bit of work (feels like longer than 2 months) I’ve finally managed to get &lt;a href=&#34;https://bugzilla.mozilla.org/show_bug.cgi?id=382752&#34;&gt;bug 382752&lt;/a&gt; landed. What this gives us in simple terms is a set of functions that we can use in order to do unit testing on the extension manager. Alongside I have checked in the first unit test. Now if anything regresses &lt;a href=&#34;https://bugzilla.mozilla.org/show_bug.cgi?id=257155&#34;&gt;bug 257155&lt;/a&gt; we should know about it immediately.&lt;/p&gt;&#xA;&lt;p&gt;Ignoring the regression detection, I’ve always found unit tests to be fantastically useful when developing new code or fixing bugs. Zipwriter is a prime example, with a large number of tests that I can run by typing a single command I can test whether the changes I have made have solved the problem and not introduced any other errors.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Securing Add-on Updates</title>
      <link>https://www.oxymoronical.com/blog/2007/07/Securing-Add-on-Updates/</link>
      <pubDate>Sun, 01 Jul 2007 00:00:00 +0000</pubDate>
      <guid>https://www.oxymoronical.com/blog/2007/07/Securing-Add-on-Updates/</guid>
      <description>&lt;p&gt;Since the disclosure of potential vulnerabilities in the way Firefox (and other Mozilla applications) automatically update your add-ons we have been discussing how to tighten up the system in a way that is hopefully unnoticeable to users and not much extra work for add-on authors.&lt;/p&gt;&#xA;&lt;p&gt;After a process of listening to authors on the newsgroups, forums and by email we now have a &lt;a href=&#34;http://wiki.mozilla.org/User:Mossop:Fx-Docs:AddonUpdateSecurity&#34;&gt;rough proposal&lt;/a&gt; of what changes we are looking to make. There’s still a few minor details to be ironed out of course. This is mainly of interest to add-on authors since there is an impact depending on how you host your updates. I’ve started threads on the &lt;a href=&#34;http://groups.google.com/group/mozilla.dev.extensions/browse_frm/thread/a29f213e165d8267/93a7917b0c1e63c3&#34;&gt;newsgroup&lt;/a&gt; and &lt;a href=&#34;http://forums.mozillazine.org/viewtopic.php?p=2927908&#34;&gt;forums&lt;/a&gt; so if you want to discuss the proposal there then that’d be good. I’d prefer it if you didn’t edit the main page of the wiki but feel free to stick small comments onto the discussion page.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Firefox Developer Conference: Worth losing sleep over</title>
      <link>https://www.oxymoronical.com/blog/2007/06/Firefox-Developer-Conference-Worth-losing-sleep-over/</link>
      <pubDate>Sat, 16 Jun 2007 13:02:15 +0000</pubDate>
      <guid>https://www.oxymoronical.com/blog/2007/06/Firefox-Developer-Conference-Worth-losing-sleep-over/</guid>
      <description>&lt;p&gt;Last night (or I should say early this morning) I got a chance to watch some of the webcasts from the &lt;a href=&#34;http://wiki.mozilla.org/Japan/FxDevCon/Summer2007/English&#34;&gt;Firefox Developer Conference&lt;/a&gt; in Tokyo. I had been wanting to attend one of the previous &lt;a href=&#34;http://wiki.mozilla.org/DeveloperDays&#34;&gt;developer days&lt;/a&gt; but had to pull out due to accommodation problems so it was really great that webcasts were available, I believe this is the first developer day to do so.&lt;/p&gt;&#xA;&lt;p&gt;I managed to catch most of the sessions on FUEL and XULRunner and some of the presentations on the development environments that extension authors use. The first two were good to watch, simple overviews of topics that can often get too bogged down in details. I won’t say I learned a great deal new from them, but then given my background I wouldn’t expect to. I really hope they make the recordings available so when the next person comes onto IRC asking what XULRunner is we can point them to it.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Add-on Authors? Do you host your own?</title>
      <link>https://www.oxymoronical.com/blog/2007/06/Add-on-Authors-Do-you-host-your-own/</link>
      <pubDate>Fri, 15 Jun 2007 23:11:33 +0000</pubDate>
      <guid>https://www.oxymoronical.com/blog/2007/06/Add-on-Authors-Do-you-host-your-own/</guid>
      <description>&lt;p&gt;We’re looking at the situation of automatic updates for add-ons and whether or not tightening up the security of such updates is a good idea or not (this is one &lt;a href=&#34;http://paranoia.dubfire.net/2007/05/remote-vulnerability-in-firefox.html&#34;&gt;good reason&lt;/a&gt; why it could be). After some initial talking I would like to get a little feedback from the add-on authors out there who host their add-ons on their own websites and not on addons.mozilla.org. Are you such a person? If so then please take a few moments to check out the &lt;a href=&#34;http://forums.mozillazine.org/viewtopic.php?t=558599&#34;&gt;thread in the forums&lt;/a&gt; or on the &lt;a href=&#34;http://groups.google.com/group/mozilla.dev.extensions/browse_frm/thread/91d90abaa9ca60e8/51441a2a4a2a489b#51441a2a4a2a489b&#34;&gt;newsgroup&lt;/a&gt; and take a few moments to answer my questions.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Long Time No Post</title>
      <link>https://www.oxymoronical.com/blog/2007/06/long-time-no-post/</link>
      <pubDate>Wed, 13 Jun 2007 21:52:13 +0000</pubDate>
      <guid>https://www.oxymoronical.com/blog/2007/06/long-time-no-post/</guid>
      <description>&lt;p&gt;Wow, it’s been a month to the day since my last post here, and quite a lot’s happened in that time. Those of you that keep up on Mozilla things might realise that I have changed jobs and I’m now working for Mozilla on the Firefox team under &lt;a href=&#34;http://steelgryphon.com/blog/&#34;&gt;Mike Connor&lt;/a&gt;. I’m going to be putting work into the addons side of Firefox 3, in particular taking some of the &lt;a href=&#34;http://wiki.mozilla.org/Firefox3/Product_Requirements_Document#Add-ons&#34;&gt;main requirements&lt;/a&gt; as well as tackling some of the really &lt;a href=&#34;https://bugzilla.mozilla.org/show_bug.cgi?id=312473&#34;&gt;irritating&lt;/a&gt; &lt;a href=&#34;https://bugzilla.mozilla.org/show_bug.cgi?id=340219&#34;&gt;issues&lt;/a&gt; that have lain dormant for a little too long for my liking. Most exciting stuff for me right now (yes I know, I’m sad!) is that I’ve been working on doing &lt;a href=&#34;https://bugzilla.mozilla.org/show_bug.cgi?id=382752&#34;&gt;unit tests&lt;/a&gt; for the extension manager component which makes testing new patches far easier to my mind as well as of course allow us to start catching regressions.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Mac Intel Gecko SDK</title>
      <link>https://www.oxymoronical.com/blog/2007/05/Mac-Intel-Gecko-SDK/</link>
      <pubDate>Sun, 13 May 2007 22:38:37 +0000</pubDate>
      <guid>https://www.oxymoronical.com/blog/2007/05/Mac-Intel-Gecko-SDK/</guid>
      <description>&lt;p&gt;&lt;strong&gt;Update&lt;/strong&gt;: Mozilla now produce &lt;a href=&#34;https://developer.mozilla.org/en/Gecko_SDK&#34;&gt;intel gecko SDK&lt;/a&gt;s so there is no need to use the version I have put here, I’ll leave it for posterity though.&lt;/p&gt;&#xA;&lt;p&gt;It’s currently a bit of a pain building xpcom components in intel macs. The only officially available sdk is ppc only. Until Mozilla come up with an official version, here is an intel build of it for those that want it: &lt;a href=&#34;https://www.oxymoronical.com/files/gecko-sdk-mac-intel-1.8.1.3.zip&#34;&gt;gecko-sdk-mac-intel-1.8.1.3.zip&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;As the name suggests it’s built against Gecko 1.8.1.3. To the best of my knowledge it’s right but please don’t bug me if you can’t get your component to work with it unless you’re pretty positive that it’s the sdk that’s wrong.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Zip Writer Goodness</title>
      <link>https://www.oxymoronical.com/blog/2007/05/Zip-Writer-Goodness/</link>
      <pubDate>Fri, 04 May 2007 22:59:27 +0000</pubDate>
      <guid>https://www.oxymoronical.com/blog/2007/05/Zip-Writer-Goodness/</guid>
      <description>&lt;p&gt;I can’t believe it’s been over a month since I wrote something here. Well I kinda can, lots of hectic stuff going on at my work right now which has been making finding time for Mozilla stuff tricky. Hopefully not for much longer.&lt;/p&gt;&#xA;&lt;p&gt;I’m glad to say that I have managed to make great progress on the zip writer component. I have decided that dealing with multiple platform compiles for &lt;a href=&#34;https://www.oxymoronical.com/web/firefox/nightly&#34;&gt;Nightly Tester Tools&lt;/a&gt; is just a bad idea, so instead I have pushed on with submitting the zip writer to Mozilla for &lt;a href=&#34;https://bugzilla.mozilla.org/show_bug.cgi?id=379633&#34;&gt;review&lt;/a&gt;. Hopefully that will make it into tree where I (and of course anyone else) can just use it. There’s been a bunch of changes between the version I posted earlier and that that’s gone up for review, not least of which is a set of testcases that have made sure I didn’t break the old by making some clean-ups.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Zip Writer Update</title>
      <link>https://www.oxymoronical.com/blog/2007/03/Zip-Writer-Update/</link>
      <pubDate>Sun, 18 Mar 2007 22:06:05 +0000</pubDate>
      <guid>https://www.oxymoronical.com/blog/2007/03/Zip-Writer-Update/</guid>
      <description>&lt;p&gt;I spent some more time this weekend hacking on my Zip Writer component. It’s now pretty capable. It can open existing zip files and remove entries and append to them, happily rewriting the headers and everything exactly as it encountered them. And the other major win is that I have deflate code up and running which makes compression possible.&lt;/p&gt;&#xA;&lt;p&gt;All this has allowed me to reintroduce making extensions compatible during the install process in a far safer way than was the case before. NTT can now watch the EM datasource, spot that an extension has finished being downloaded, then open that extension’s xpi file and if necessary rewrite the metedata to claim compatibility with the current version of whatever app you happen to be running in.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Long Standing Crappiness</title>
      <link>https://www.oxymoronical.com/blog/2007/03/Long-Standing-Crappiness/</link>
      <pubDate>Tue, 06 Mar 2007 23:23:50 +0000</pubDate>
      <guid>https://www.oxymoronical.com/blog/2007/03/Long-Standing-Crappiness/</guid>
      <description>&lt;p&gt;So there’s been this &lt;a href=&#34;https://bugzilla.mozilla.org/show_bug.cgi?id=319196&#34;&gt;bug&lt;/a&gt; in Firefox for … well quite a while where it would suddenly stop remembering your toolbar customisations, window positions and even make your bookmarks appear to not be there, and in Firefox 1.5, make the search bar non-functional.&lt;/p&gt;&#xA;&lt;p&gt;Well I’m quite proud to say that after quite a lot of research, and help from those guys doing Firefox support, particularly stevee, I think I have a fix for at least part of the problem. This bug (or at least the part I’m interested in) is all caused by one corrupt file. For quite some time I was unable to reproduce, and it turns out that that’s because the issue actually resolves itself in Minefield which is what I use day to day. Once I started testing on BonEcho it became pretty obvious what was going on. So the patch I’ve just posted for review basically spots a corrupt file on startup, and deletes it. Short and sweet.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Zip Writer</title>
      <link>https://www.oxymoronical.com/blog/2007/03/Zip-Writer/</link>
      <pubDate>Mon, 05 Mar 2007 00:00:00 +0000</pubDate>
      <guid>https://www.oxymoronical.com/blog/2007/03/Zip-Writer/</guid>
      <description>&lt;p&gt;One of the annoying omissions from the Mozilla platform has always been the inability to create a zip file. It’s been bugging me for some time since it’s the only way for &lt;a href=&#34;https://www.oxymoronical.com/web/firefox/nightly&#34;&gt;Nightly Tester Tools&lt;/a&gt; to properly manage overriding compatibility for an individual extension install, without doing dangerous things like it used to. There’s been a &lt;a href=&#34;https://bugzilla.mozilla.org/show_bug.cgi?id=338987&#34;&gt;Google Summer of Code&lt;/a&gt; project on creating such functionality but it didn’t get all that far.&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
