Attention : Le contenu de ces pages n'a pas été mis à jour depuis longtemps. Il est probablement obsolète pour Firefox 4.0/Gecko 4.0 et supérieur. Pour du contenu plus récent, allez consulter developer.mozilla.org.

Fichier install rdf

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.

exemple

 <?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>

explications en détails

id et version

  <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:

  • être un GUID comme dans l'exemple
  • avoir la forme d'une adresse email.

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.

targetApplication

    <[[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 :

Firefox
{ec8030f7-c20a-464f-9b0e-13a3a9e97384}
Thunderbird
{3550f703-e582-4d05-9a08-453d09bdfdc6}

name, description, creator, contributor, homepageURL

    <[[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.

updateUrl

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
%ITEM_VERSION%
sera remplacé par le numéro de version de l'extension installée
%ITEM_MAXAPPVERSION%
la valeur de maxVersion de la section targetApplication
%APP_ID%
sera remplacé par l'id de l'application (celui de Firefox par ex)
; %APP_VERSION% : sera remplacé par la version de l'application

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]]>

Autres balises optionnelles : optionsURL, aboutURL, iconURL

    <[[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.

hidden

   <[[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.

Déclaration des fichiers jar

    <[[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.

requires

  <[[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.

Numéro de version

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(..)

Informations supplémentaires pour Gecko 1.8

Il y a des nouvelles balises que l'on peut mettre pour les extensions pour Firefox 1.5 etc.

type

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 :

  • 2 Extensions
  • 4 Themes
  • 8 Locale
  • 16 Plugin
  • 32 Paquetage complexe (plusieurs XPI dans une extension XPI)

(sert surtout pour le site addons.mozilla.org ?)

updateURL

Dans une url de la balise updateURL, on peut mettre deux masques supplementaires :

%APP_OS%
sera remplacé par le nom du système d'exploitation utilisé.
%APP_ABI%
sera remplacé par une chaîne indiquant le compilateur et l'architecture utilisée pour compiler l'application courante.

targetPlateform

   <[[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.