FAQ XULConsultez toutes les FAQ

Nombre d'auteurs : 2, nombre de questions : 23, dernière mise à jour : 30 mars 2017 

 
OuvrirSommaireExtensions pour les outils Mozilla

Les extensions pour les outils de la fondation Mozilla sont contenues dans des archives *.xpi (compressées au format ZIP), dont l'arborescence respecte une structure commune, dont nous allons vous présenter les éléments courants ici.

  • Le fichier install.rdf contient les informations nécessaires pour l'installation et la recherche des mises à jour de l'extension ;
  • Le fichier chrome.manifest contient les informations nécessaires pour intégrer l'extension dans l'outil ;
  • Le répertoire chrome contient tous les fichiers nécessaires pour décrire le fonctionnement de l'extension (fenetres en XUL, images, feuilles de style, etc) ;
  • Le répertoire components contient les composants XPCOM développés spécifiquement pour cette extension.

Etant donné le nombre important de fichiers qu'il peut contenir, le contenu du répertoire chrome peut être stocké dans une archive *.jar (compressés au format ZIP).

 
Sélectionnez

./ -- install.rdf
   -- chrome.manifest
   -- chrome/
       -- content/
       -- skin/
   -- components/
Créé le 14 mai 2008  par Nicolas Vallee

Vous trouverez ci-dessous un exemple de fichier install.rdf ; il vous suffira de reprendre ce modèle en personnalisant quelques balises...

  • em:id contient un identifiant unique pour votre extension ;
  • em:name contient le nom de votre extension ;
  • em:version contient la version de votre extension ;
  • em:targetApplication contient les informations nécessaires pour valider l'utilisation de votre extension sur l'un des outils Mozilla ;
    • em:id est l'identifiant de l'application : {ec8030f7-c20a-464f-9b0e-13a3a9e97384} pour Firefox
    • em:minVersion et em:maxVersion servent à signaler les versions de l'application pour lesquelles l'extension est utilisable ;
  • em:updateURL contient l'url à laquelle se trouve un mise nécessaire pour la mise à jour de votre extension.
 
Sélectionnez

<?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">
 
        <!-- Required Items -->
        <em:id>extension_identifiant</em:id>
        <em:name>extension_nom</em:name>
        <em:version>extension_version</em:version>
 
        <em:targetApplication>
            <Description>
                <em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id>
                <em:minVersion>1.5</em:minVersion>
                <em:maxVersion>3.0a1</em:maxVersion>
            </Description>
        </em:targetApplication>
 
        <!-- Optional Items -->
        <em:creator>Nicolas Vallée</em:creator>
        <em:description>extension_descriptif</em:description>
        <em:contributor>gorgonite</em:contributor>
        <em:homepageURL>http://mon-domaine.com/extension/</em:homepageURL>
        <em:updateURL>http://mon-domaine.com/extension/update.rdf</em:updateURL>
 
    </Description>
</RDF>
Créé le 14 mai 2008  par Nicolas Vallee

Ce fichier est lu dès qu'on veut cherche une éventuelle mise à jour de l'extension, son url est stockée dans le fichier install.rdf
Vous pouvez vous baser sur le modèle ci-dessous, et il suffit de personnaliser deux balises :

  • updateLink contient le lien vers le fichier de la dernière version de l'extension ;
  • version indique le numéro de version, qui faut absolument incrémenter si vous souhaitez que la mise à jour ait lieu.
 
Sélectionnez

<?xml version="1.0"?>
<r:RDF xmlns:r="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
       xmlns="http://www.mozilla.org/2004/em-rdf#">
<!-- Foo Widget Extension -->
<r:Description about="urn:mozilla:extension:mon-extension@mon-domaine.com">
  <updates>
    <r:Seq>
      <r:li>
        <r:Description>
          <version>extension_version</version>
          <targetApplication>
 
            <r:Description>
              <id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</id>
              <minVersion>1.5</minVersion>
              <maxVersion>9.9</maxVersion>
              <updateLink>http://mon-domaine.com/extension/mon-extension.xpi</updateLink>
            </r:Description>
          </targetApplication>
 
        </r:Description>
      </r:li>
    </r:Seq>
  </updates>
  <version>extension_version</version>
  <updateLink>http://mon-domaine.com/extension/mon-extension.xpi</updateLink>
</r:Description>
</r:RDF>
Créé le 14 mai 2008  par Nicolas Vallee

Ce fichier gère l'intégration d'une extension dans l'outil Mozilla. Il y a trois principaux paramètres :

  • content indique le répertoire contenant les fenêtres de l'extension ;
  • skin indique le répertoire contenant les feuilles de style et les images pour votre extension ;
  • overlay indique le fichier indiquant s'il faut ajouter des entrées à un menu, à une barre de status ou à une barre de tache.
 
Sélectionnez

content extension_url  chrome/content/
skin    extension_url  classic       chrome/skin/
overlay chrome://browser/content/browser.xul chrome://extension_url/content/mon-extension.xul
Créé le 14 mai 2008  par Nicolas Vallee

Dans votre outil Mozilla, lorsque vous visualisez votre extension dans le gestionnaire de modules complémentaires, il est possible d'afficher des informations complémentaires.

  • accéder à la configuration de votre extension
 
Sélectionnez

<em:optionsURL>chrome://mon-extension/content/preferences.xul</em:optionsURL>
  • afficher un logo
 
Sélectionnez

<em:iconURL>chrome://mon-extension/skin/logo.png</em:iconURL>
Créé le 15 mai 2008  par Nicolas Vallee

Tout d'abord, pensez à vérifier la présence de ceci dans votre install.rdf

 
Sélectionnez

<em:type>2<em:type>

Ensuite, sachez que Firefox 3 oblige désormais à disposer de mises à jour sécurisées... donc cela implique que :

  • soit vous devez disposer d'un serveur https avec un certificat valide pour héberger votre update.rdf
  • soit vous devez signer vos fichiers install.rdf et update.rdf ; pour cela utilisez le logiciel mccoy
Créé le 14 mai 2008  par Nicolas Vallee

Lien : Pour plus d'informations

Ce document est sous licence Creative Commons - Paternité 2.5 Générique