Programming - - By James Edwards

A Quick-And-Dirty Way To Update Your Firefox Extensions

Firefox logo (refreshed!)

As a Firefox user, it can be frustrating when a new build is released but your favourite extensions are not updated straight away.

But from an extension developer’s point of view, it’s not always possible to make updates available on the same schedule as Firefox itself. It takes time for new versions to be accepted, because every new upload has to be manually reviewed and approved, a process that typically takes several weeks.

However, in many cases, you’ll find that an extension will work perfectly well — or at least adequately well — in the new build, and that all it really needs for now is to be told that. With a little know-how this is something you can do yourself, by editing the extension’s install file to specify the latest build.

DIY

The first time you ran the new build it will have disabled any unsupported extensions, but left them still installed. So assuming that’s the case for the extension you want to update, here’s what you do:

  1. Locate your main extensions folder, which is directly inside your profile folder (how to find your profile folder).
  2. Identify the specific extension’s folder. The folder will be named after the extension’s unique ID, and if you’re lucky it will have an intuitive name (for example, Firebug’s folder is called “firebug@software.joehewitt.com”). However the name might be a GUID (a hex value in curly-brackets such as “{3c6e1eed-a07e-4c80-9cf3-66ea0bf40b37}”) and in this case you’ll have to look inside the folder itself to identify the correct extension — directly inside each folder will be a file called “install.rdf”, and this contains the extension’s core meta-data, including its name and description, which you can therefore use to identify the extension you want.
  3. Copy this folder to a temporary location, such as the desktop, then uninstall the extension from Firefox’s add-ons dialog; restart Firefox to complete the uninstall.
  4. In the copied folder, open the “install.rdf” file (making double-sure it’s the copy you just made, not the original), and look for a group of elements like this:
    <em:type>2</em:type>
    <em:targetApplication>
        <Description>
            <em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id>
            <em:minVersion>2.0</em:minVersion>
            <em:maxVersion>3.5.*</em:maxVersion>
        </Description>
    </em:targetApplication>

    In most cases there will only be one group of elements like that, but if the extension supports more than one device (such as Flock as well as Firefox) then there will be more than one group — one for each device. You need to locate the group of elements that corresponds with Firefox, which you can do either by identifying <em:id> as having the exact value "{ec8030f7-c20a-464f-9b0e-13a3a9e97384}", or by recognising <em:maxVersion> as being the last version of Firefox that the extension supported. So for example, if you’ve just updated from 3.5 to 3.6, then the <em:maxVersion> element will most likely have the value "3.5.*", indicating that its maximum support is any build in the 3.5 branch. So then, you’re going to want to change the max-version to match the Firefox update you just installed — so for Firefox 3.6 you would change it to "3.6.*".

  5. Once you’ve made this change, save and close the file, then move the folder back to its original location in your profile extensions directory.
  6. Restart Firefox once again to re-install the extension, and it will now accept what you specified as the latest supported build!

Overall then, all we did was tell the extension to support a later build. Of course this is no guarantee that it will actually work; or if it does, that it will work properly; in extreme cases it might actually make Firefox hang-up or crash, and in that situation you’ll have little choice but to disable it again.

But the chances are it will work just fine, and although it’s only a temporary solution, it will allow you to carry on using your favourite extensions while you wait for a proper update!

Further Reading

If any of this has whetted your appetite for delving into Firefox extensions more deeply, you’ll be happy to know that SitePoint has published an e-book, and a couple of follow-on articles, all about extension development:

Sponsors