== A quick outline of Firefox extension structure [[Yesterday|FiddlingFirefoxFiles]] I mentioned Firefox extensions in passing. Let's fill in the blanks. Firefox extensions come as _.xpi_ files, which are just yet another extension for ZIP archives. Unpacked, extensions live in their own directory in the _extensions/_ subdirectory in your Firefox profile directory. Firefox profile directories live under _~/.mozilla/firefox_; the default profile is in _.default_. (Firefox randomizes the name of the profile directory, I believe due to security concerns.) The actual name of an extension's directory is mostly opaque; it is '_[[{}|]]_', where __ bit is the UUID (nee GUID) for the extension. The easiest way to find out which is which is to skim the _install.rdf_ file from each directory, looking for the _em:description_ or _em:name_ attributes. (Alternately, you can look at '_ls -lt_' and remember the order in which you installed extensions.) Most extensions stick their _.jar_ files in their own _chrome/_ subdirectory. Using _.jar_ files is not mandatory, and some extensions ship with their files fully exploded. (This is simpler on the developer but takes more space.) The _em:maxVersion_ field in appropriate bits of _install.rdf_ control what the highest version of Firefox the extension can be installed on. However, if this matters to you you probably want to install the [[Nightly Tester Tools|http://users.blueprintit.co.uk/~dave/web/firefox/buildid/nightly.html]] which let you just override it when necessary. (For more information on the code structure of extensions and how they work, see the [[knowledge base|http://kb.mozillazine.org]].)