Le fichier install.rdf d'un paquet XPI permet au gestionnaire d'extension de spécifier les caractéristiques de votre extension. Xulfr.org met à votre disposition un générateur de fichier install.rdf.
<?xml version="1.0"?>
<RDF:RDF [[xmlns:RDF="http://www.w3.org/1999/02/22-rdf-syntax-ns#]]"
[[xmlns:em="http://www.mozilla.org/2004/em-rdf#"]]>
<RDF:Description RDF:about="[[urn:mozilla:install-manifest"]]>
<[[em:id>{daf44bf7-a45e-4450-979c-91cf07434c3d}</em:id]]>
<[[em:version>4.6</em:version]]>
<!-- Application à laquelle est destinée votre extension -->
<[[em:targetApplication]]>
<RDF:Description>
<[[em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id]]>
<[[em:minVersion>0.7</em:minVersion]]>
<[[em:maxVersion>1.2</em:maxVersion]]>
</RDF:Description>
</[[em:targetApplication]]>
<!-- Données principales de votre extension -->
<[[em:name>NewExt2</em:name]]>
<[[em:description>A]] test extension</[[em:description]]>
<[[em:creator>Joe]] Creator</[[em:creator]]>
<[[em:contributor>Jane]] Doe</[[em:contributor]]>
<[[em:homepageURL>http://www.bengoodger.com/</em:homepageURL]]>
<[[em:updateURL>http://www.bengoodger.com/software/mb/umo/update.rdf</em:updateURL]]>
<!-- Fichiers additionnels pour le gestionnaire d'extensions -->
<[[em:optionsURL>chrome://newext2/content/options.xul</em:optionsURL]]>
<[[em:aboutURL>chrome://newext2/content/about.xul</em:aboutURL]]>
<[[em:iconURL>chrome://newext2/skin/newext2.png</em:iconURL]]>
<!-- extensions requises pour faire fonctionner votre extension -->
<[[em:requires]]>
<RDF:Description>
<[[em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id]]>
<[[em:minVersion>0.7</em:minVersion]]>
<[[em:maxVersion>1.2</em:maxVersion]]>
</RDF:Description>
</[[em:requires]]>
<!-- Ce qui suit est obsolète depuis Gecko > 1.8 (Firefox 1.5 et +) -->
<!-- paquets, locale et skin que possède votre extension -->
<[[em:file]]>
<RDF:Description RDF:about="[[urn:mozilla:extension:file:newext2.jar"]]>
<[[em:package>content/newext2/</em:package]]>
<[[em:locale>locale/en-US/newext2/</em:locale]]>
<[[em:skin>skin/classic/newext2/</em:skin]]>
</RDF:Description>
</[[em:file]]>
</RDF:Description>
</RDF:RDF>
<RDF:Description RDF:about="[[urn:mozilla:install-manifest"]]>
<[[em:id>{daf44bf7-a45e-4450-979c-91cf07434c3d}</em:id]]>
<[[em:version>4.6</em:version]]>
<em:id> contient un identifiant unique pour votre extension. Il peut être généré par des outils comme uuidgen sous unix ou guidgen sous windows.
Cet identifiant peut:
Il existe aussi sur le chanel irc #mozilla de mozilla.org (irc://irc.mozilla.org/mozilla) un bot qui peut vous le donner. Il suffit d'entrer /msg firebot uuid. <em:id> est obligatoire.
<em:version> est la version de votre extension. Voir le paragraphe spécifique plus loin pour les numéros de versions. <em:version> est obligatoire. <[[em:targetApplication]]>
<RDF:Description>
<[[em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id]]>
<[[em:minVersion>0.7</em:minVersion]]>
<[[em:maxVersion>1.2</em:maxVersion]]>
</RDF:Description>
</[[em:targetApplication]]>
Cette section obligatoire indique à quelle application est destinée l'extension. Vous devez y indiquer l'identifiant de cette application, ainsi que la version minimum et maximum avec lesquelles l'extension est compatible. Il est recommandé de toujours mettre la dernière version courante comme numéro de version maximum, car vous ne savez pas comment l'application évoluera.
Voici les id des deux applications qui nous intéressent :
<[[em:name>NewExt2</em:name]]>
<[[em:description>A]] test extension</[[em:description]]>
<[[em:creator>Joe]] Creator</[[em:creator]]>
<[[em:contributor>Jane]] Doe</[[em:contributor]]>
<[[em:homepageURL>http://www.bengoodger.com/</em:homepageURL]]>
Ces balises parlent d'elles-mêmes. Elles doivent contenir respectivement le nom, une description et l'auteur de l'extension, ainsi qu'une adresse d'un site où l'on peut trouver l'extension ou celle de l'auteur.
Seule <em:name> est obligatoire parmi ce groupe de balises.
Il peut y avoir plusieurs balises contributor.
Indique l'url d'un fichier update.rdf qui sert au gestionnaire d'extension pour savoir si une mise à jour est disponible (voir plus loin pour le contenu de update.rdf).
<[[em:updateURL>http://www.bengoodger.com/software/mb/umo/update.rdf</em:updateURL]]>
<em:updateURL> peut contenir des motifs spécifiques qui seront remplacés par des valeurs correspondantes, par le gestionnaire d'extension :
; %ITEM_ID% : sera remplacé par l'id de l'extension installée
Cela permet donc d'avoir un URL qui pointe, non pas vers un fichier update.rdf statique, mais vers un script (PHP par exemple) qui va générer dynamiquement le contenu d'un fichier update.rdf. On pourrait donc mettre :
<[[em:updateURL>http://www.foo.com/myext/update.php?id=%ITEM_ID%&version=%ITEM_VERSION%</em:updateURL]]>
<[[em:optionsURL>chrome://newext2/content/options.xul</em:optionsURL]]>
<[[em:aboutURL>chrome://newext2/content/about.xul</em:aboutURL]]>
<[[em:iconURL>chrome://newext2/skin/newext2.png</em:iconURL]]>
Ces informations indiquent au gestionnaire d'extension la présence d'un fichier xul pour que l'utilisateur puisse paramètrer les options de l'extension, un fichier XUL affichant une boîte "à propos de ", et enfin d'une icône.
<[[em:hidden>true</em:hidden]]>
À utiliser pour la réalisation d'application standalone en général. Permet d'indiquer au gestionnaire d'extension de ne pas afficher l'extension dans la liste.
<[[em:file]]>
<RDF:Description RDF:about="[[urn:mozilla:extension:file:newext2.jar"]]>
<[[em:package>content/newext2/</em:package]]>
<[[em:locale>locale/en-US/newext2/</em:locale]]>
<[[em:skin>skin/classic/newext2/</em:skin]]>
</RDF:Description>
</[[em:file]]>
Cette section est obligatoire dans gecko 1.7 (Firefox 1.0, Thunderbird 1.0..), mais inutile dans Gecko 1.8 (Firefox 1.5). Elle déclare le contenu de chaque fichier .jar de votre extension. Vous y indiquez donc le répertoire content, les versions de localisation et les thèmes graphiques proposés.
<[[em:requires]]>
<RDF:Description>
<[[em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id]]>
<[[em:minVersion>0.7</em:minVersion]]>
<[[em:maxVersion>1.2</em:maxVersion]]>
</RDF:Description>
</[[em:requires]]>
Cette section obligatoire liste les extensions requises pour faire fonctionner votre extension.
Pour Gecko 1.7, tout les numéros de versions utilisées doivent être de la forme :
majeur.mineur.release.build+
majeur, mineur, release et build doivent être des nombres. Ils sont tous facultatif sauf majeur. Le signe plus, facultatif lui aussi, indique une version de développement en général.
Pour Gecko 1.8, c'est un peu plus complexe. voir la page http://developer.mozilla.org/en/docs/Too(..)
Il y a des nouvelles balises que l'on peut mettre pour les extensions pour Firefox 1.5 etc.
spécifie le type des ajouts proposés par le fichier XPI. Il s'agit d'une des valeurs ci-dessous qui ne peuvent pas être combinées :
(sert surtout pour le site addons.mozilla.org ?)
Dans une url de la balise updateURL, on peut mettre deux masques supplementaires :
<[[em:targetPlatform>Linux</em:targetPlatform]]>
Indique la plateforme sur laquelle peut tourner l'extension. À indiquer normalement quand il y a des fichiers ou des composants spécifiques à une plateforme. Vous pouvez mettre plusieurs balises targetPlateform.
Le nom que vous indiquez est le nom de la plateforme suivi éventuellement par un caractère souligné et le nom du compilateur/architecture prise en charge.
Copyright © 2003-2013 association xulfr, 2013-2016 Laurent Jouanneau - Informations légales.
Mozilla® est une marque déposée de la fondation Mozilla.
Mozilla.org™, Firefox™, Thunderbird™, Mozilla Suite™ et XUL™
sont des marques de la fondation Mozilla.