Écrit par Neil Deakin.
Traduit par Alain B. (01/03/2004).
Page originale :
http://www.xulplanet.com/tutorials/xultu/xpinstall.html
Ce chapitre va décrire le paquetage d'une application XUL dans un programme d'installation.
Mozilla propose un mécanisme qui peut être utilisé pour empaqueter des fenêtres XUL, des scripts, des thèmes graphiques et d'autres fichiers dans un seul installateur. Il suffit de placer le fichier d'installation quelque part où les utilisateurs pourront le télécharger. Un simple script peut être utilisé pour assurer le téléchargement et l'installation du paquetage. Ce mécanisme est appelé XPInstall (Cross Platform Install).
Les installateurs XPI sont empaquetés dans des fichiers JAR. A l'intérieur d'un fichier JAR, vous pouvez ajouter toutes sortes de fichiers que vous voulez voir installés. De plus, les installateurs doivent contenir un script (un fichier nommé install.js) qui décrit le processus d'installation. Ce script a accès à quelques fonctions d'installation qui peuvent être employées pour installer des fichiers et des composants.
Les fichiers d'installation JAR ont typiquement l'extension .xpi (prononcez zippy) pour les distinguer des autres fichiers d'archives. Les installateurs seront habituellement utilisés pour installer des composants Mozilla tels que des thèmes graphiques, des extensions et d'autres paquetages.
Il y a plusieurs étapes pour démarrer et installer les composants. Elles sont décrites pas à pas ci dessous :
Comme indiqué ci dessus, le processus d'installation est lancé
par un déclencheur d'installation. Cela requiert l'utilisation de
l'objet global spécial InstallTrigger
. Il contient un certain nombre de méthodes
qui peuvent être utilisées pour démarrer une installation.
Vous pouvez utiliser cet objet dans un contenu local ou à distance, ce qui signifie
que c'est adapté pour un téléchargement à partir d'un site Web.
Créons un exemple de déclencheur d'installation. Il nécessite
l'utilisation de la fonction InstallTrigger.install
. Cette fonction a
deux arguments, le premier est la liste des paquetages à installer,
et le second est la référence à une fonction de rappel
qui sera appelée lorsque l'installation est terminée. Voici
un exemple :
function doneFn ( name , result ){
alert("Le paquetage" + name + " a été installé avec un résultat de " + result);
}
var xpi = new Object();
xpi["Calendar"] = "calendar.xpi";
InstallTrigger.install(xpi,doneFn);
Premièrement, nous définissons la fonction doneFn
qui sera
appelée lorsque l'installation est terminée. Bien entendu,
vous pouvez nommer cette fonction comme vous le souhaitez. Cette fonction
a deux arguments. Le premier argument est le nom du paquetage qui vient
juste d'être installé. Celui ci est important si vous installez
de multiples composants. Le second argument est un code de résultat.
Un code de valeur 0 signifie que l'installation s'est terminée
avec succès. Si le code de résultat n'est pas nul, une erreur
a eu lieu et la valeur représente un code d'erreur. Ici, la fonction
doneFn
affiche simplement une boîte d'alerte à l'utilisateur.
Ensuite, nous créons un tableau xpi qui contient le nom (Calendar) et l'URL (calendar.xpi) du programme d'installation. Vous pouvez ajouter une ligne similaire pour chaque paquetage que vous souhaitez installer. Finalement, nous appelons la fonction d'installation.
Lorsque cette portion de script sera exécutée, le fichier calendar.xpi sera installé.
Essayons ceci avec notre exemple de recherche de fichiers.
function doneFn ( name , result ){
if (result) alert("L'erreur suivante a eu lieu:" + result);
}
var xpi = new Object();
xpi["Find Files"] = "findfile.xpi";
InstallTrigger.install(xpi,doneFn);
Le fichier d'installation XPI doit obligatoirement contenir au minimum un fichier appelé install.js qui est un fichier javascript exécuté lors de l'installation. Les autres fichiers sont les fichiers à installer. Ces derniers sont typiquement placés dans des répertoires de l'archive mais ils n'ont pas lieu de l'être. Pour des fichiers chrome, ils devraient être structurés comme le répertoire chrome.
Souvent, les seuls fichiers trouvés dans une archive XPI sont le script d'installation (install.js) et un fichier JAR. Ce fichier JAR contient tous les fichiers utilisés par votre application. Les composants de Mozilla sont installés de cette manière.
Parce que les fichier XPI ne sont rien d'autres que des fichiers ZIP, vous pouvez les créer en utilisant un utilitaire zip (NdT : les fichiers JAR sont également des fichiers ZIP).
Pour notre exemple de recherche de fichiers, nous créerons une structure dans l'archive comme ce qui suit :
install.js findfile content contents.rdf findfile.xul findfile.js skin contents.rdf findfile.css locale contents.rdf findfile.dtd
Un répertoire a été ajouté pour chaque partie du paquetage, pour le contenu, pour le thème graphique et pour la localisation. Des fichiers contents.rdf ont également été ajoutés car ils sont nécessaires pour l'enregistrement des fichiers chrome.
Dans le chapitre suivant, nous aborderons le script d'installation.