The document provides instructions for creating the folder structure and files needed to develop a basic Firefox browser extension. It explains how to create an install.rdf file to define metadata and configuration settings for the extension. It also discusses creating XUL and JavaScript files to define the user interface and logic of the extension, including how to add menu items, buttons and modify web page content.
4. How to Write Your First Extension
1. Create development proďŹle
2. ConďŹguration settings
3. Pointing extension to your dev directory
4. Creating folder structure & ďŹles
5. Packaging & installing
6. Distributing your add-on
7. Windows:
Start menu > Run (Windows key + R).
Write firefox -P and press click OK.
Mac OS X (in Terminal):
Type in /Applications/Firefox.app/
Contents/MacOS/firefox -
profilemanager
Linux (in a terminal):
Use cd to navigate to your Firefox directory and
then enter ./firefox -profilemanager
33. em:id
Your unique developer id, of your own choosing. Has to be the same as the pointer
ďŹle you previously created, i.e. brucewillis@robertnyman.com
em:name
The name of your extension.
em:version
Current version of your extension.
em:type
The type declares that it is an extension, as opposed to, for instance, a theme.
em:creator
You!
em:description
Describes your extension functionality. Will be shown in the Tools > Add-ons window.
em:homepageURL
The URL of your extensionâs web site.
em:optionsURL
The URL to where you will have your ďŹle for editing options/preferences.
35. em:id
The actual id of Firefox: {ec8030f7-c20a-464f-9b0e-13a3a9e97384}. Exchange
this to develop for another app, like Thunderbird.
em:minVersion
The minimum version number of Firefox to run the extension.
em:maxVersion
The maximum version number of Firefox to run the extension.
Valid alternatives for Firefox, Thunderbird etc and their corresponding versions
36. <?xml version="1.0"?>
<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:id>brucewillis@robertnyman.com</em:id>
<em:name>Bruce Willis demo extension</em:name>
<em:version>1.0</em:version>
<em:type>2</em:type>
<em:creator>Robert Nyman</em:creator>
<em:description>Finds document headings and replaces them with Die
Hard movie titles</em:description>
<em:homepageURL>http://www.robertnyman.com/</em:homepageURL>
<em:optionsURL>chrome://brucewillis/content/preferences.xul</
em:optionsURL>
<em:targetApplication>
<Description>
<em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id>
<em:minVersion>2.0</em:minVersion>
<em:maxVersion>3.1b2</em:maxVersion>
</Description>
</em:targetApplication>
</Description>
</RDF>
86. ZIP the contents of your extension folder
(only the contents, NOT the folder itself)
87. Windows:
Mark all ďŹles, right-click and choose:
Send To > Compressed
Rename ZIP ďŹle to .xpi
Mac OS X/Linux (in Terminal):
Navigate to your extension ďŹles. Type in:
zip -r BruceWillis.xpi *