Firefox Versioning is Out of Hand

I’m a Firefox user since the 1.0 days. I did my part for the campaign when working at Emerson College helpdesk and getting people away from IE 6.

Since then I have moved on to Chrome as my primary browser, but I still use Firefox for the Something Awful forums extension, various HTML developer extensions, and my Ümloud! logins (preventing acidental personal posts). I also started using 1Password (a future post!) for better security across all my browsers. The key component to my Firefox use are the extensions (also known as Add-ons).

When Firefox first rolled out extensions, the API asked developers to limit what version the extension would work for. An extension for Firefox 3 wouldn’t work on 4. This forced developers to test the new browser and for users to update when needed. That way extensions wouldn’t soft-fail on users, causing them to think the browser is broken when the fault was the extension. This process was fine when major Firefox releases were around a year or more.

Recently Firefox started going on a version number release schedule similar to Chrome: Release early and very often. Major version number updates occur in a span of months or weeks. This is fine, but flies against extensions. An extension that got updated for the shipping version won’t work on a beta. The updating messages aren’t removable; just “ask later”. Now I have to pick between seeing update messages every time I launch, or break extension support.

So we need two things to happen here:

  • Make a third “wait till it’s released, not beta” option.
  • Extensions move away from version numbers and more to capability testing.

While the “not beta” option should be there in any case, we’re starting to see a change that the old versioning system isn’t paired with the change of development schedule. Without knowing too much about the extension system, I can’t help but think of the disastrous history of using User Agent strings to assume capabilities. The better approach is using something like Modernizr1 which tests what a browser can do, rather than the name/version of a browser. That way when a browser with a different name, but capable of the require actions, can still work. Past, present, and future.

Sadly, I can’t wait for these things to happen. Which sadly means on my Mac, I’ll be using Safari as my Ümloud! browser and only venturing into Firefox when I absolutely need to use an extension, assuming it still works…

1 Shout out to Faruk Ateş!