How can a Firefox extension get its own version number programmatically?

firefox, firefox-addon, javascript

Solution

I've not got the full answer, but I found the Extended extension and had a look at the source code as it seemed like a good starting point, and from Googling some of the methods in that I found this snippet on MDC. The key bit of code would seem to be this:

var gExtensionManager = Components.classes["@mozilla.org/extensions/manager;1"]
                        .getService(Components.interfaces.nsIExtensionManager);
var current = gExtensionManager.getItemForID("extension@guid.net").version;

You would have to replace `extension@guid.net` with the appropriate ID for your extension.

Firefox 4 requires different code, see the other answer.

Problem

How do I programatically get my own Firefox extension's version number with Javascript? My extension has an install.rdf file containing the version number similar to below. I want to extract the contents of the `<em:version>` tag. ``` <?xml version="1.0" encoding="UTF-8"?> <RDF xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:em="http://www.mozilla.org/2004/em-rdf#"> <Description about="urn:mozilla:install-manifest"> ... <em:version>1.0</em:version> ... </Description> </RDF> ```

Original source