Visit Mozilla.org

Paquetage multi extensions

Un article de MDC.

Cette page vient d'être traduite, mais elle a besoin d'un relecteur différent du traducteur. Pensez également à toujours vérifier le contenu avec sa toute dernière version en anglais.

Un paquetage multi extensions fournit la possibilité de conditionner plusieurs paquets installables qui peuvent alors être chargés et installés par un utilisateur, ou fournis pré-empaquetés avec une application ou un programme externe. Chaque paquetage multi extensions doit utiliser un fichier install.rdf et a les mêmes exigences qu'une extension, à l'exception de l'annotation ci-dessous.

Il n'y a actuellement aucune facilité pour empêcher ou avertir l'utilisateur lors de l'installation d'une version précédente d'une extension.

Sommaire

[modifier] Structure d'un paquetage multi extensions

La structure d'un paquetage multi extensions est la forme simplifiée d'un paquet installable et requiert un fichier avec l'extension .xpi. Un paquetage multi extensions peut contenir aussi bien des extensions (fichiers .xpi) que des thèmes (fichiers .jar). La structure de base est indiquée ci-dessous:

/install.rdf                        Manifeste d'installation
/extension1.xpi                     Extension
/extension2.xpi                     Extension
/theme1.jar                         Theme
/theme2.jar                         Theme
...

Le gestionnaire d'extension lira le manifeste d'installation pour déterminer si c'est un paquetage multi extensions et démarrera alors automatiquement l'installation de chaque paquet qu'il contient. Aucuns autres fichiers, hormis le manifeste d'installation et les fichiers .jar ou .xpi, ne seront extraits ou utilisés.

[modifier] install.rdf

Un paquetage multi extensions n'a pas les mêmes obligations qu'une extension pour son manifeste d'installation. Les seuls éléments requis sont em:id, em:targetApplication, et em:type.

Pour que les gestionnaires d'extensions de Firefox et Thunderbird 1.5 déterminent la nature du paquetage multi extensions, l'élément em:type spécifié dans votre install.rdf doit être à 32 et indiqué comme <em:type NC:parseType="Integer">32</em:type>. L'espace de nommage XML xmlns:NC="http://home.netscape.com/NC-rdf#" doit aussi être déclaré dans votre install.rdf comme indiqué ci-dessous:

...
<RDF xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
     xmlns:NC="http://home.netscape.com/NC-rdf#"
     xmlns:em="http://www.mozilla.org/2004/em-rdf#">

  <Description about="urn:mozilla:install-manifest">
    <!-- nsIUpdateItem type for a Multiple Item Package -->
    <em:type NC:parseType="Integer">32</em:type>
...

Pour les gestionnaires d'extensions de Firefox et Thunderbird 2.0, vous pouvez utiliser la précedente syntaxe ou <em:type>32</em:type> comme indiqué ci-dessous:

...
<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">
    <!-- nsIUpdateItem type for a Multiple Item Package -->
    <em:type>32</em:type>
...

En spécifiant em:targetApplication, l'élément minVersion indiqué doit être l'élément minVersion le plus élevé et l'élément maxVersion indiqué doit être l'élément maxVersion le plus bas de tous les paquets installables par le paquetage multi extensions pour l'élément em:targetApplication. Sinon chaque paquets qui n'est pas compatible ne sera pas installé, à moins qu'un test de compatibilité découvre une information de compatibilité mise à jour qui le rendrait compatible.

[modifier] Installation

L'installation peut être effectuée en utilisant les méthodes existantes pour les extensions/thèmes et la même interface utilisateur est employée pour un paquetage multi extensions (les paquets contenus dans le paquetage multi extensions ne seront pas listés). Cela permet aussi d'afficher l'information de signature pour le paquetage multi extensions.

Si un gestionnaire (le gestionnaire d'extensions/thèmes par exemple) est affiché après le chargement du paquetage multi extensions, le gestionnaire affichera chaque paquet contenu dans celui-ci, de la même manière que si l'utilisateur avait choisi d'installer plusieurs paquets simultanément. Le gestionnaire n'affichera pas le paquetage multi extensions dans la liste des paquets, un fois le chargement terminé du paquetage multi extensions.

[modifier] Références officielles de l'API du toolkit