|
|
|
|
TUTORIEL CLIENTS WEB |
|
|
|
Les extensions Firefox (2) |
Après avoir construit une extension simple, nous l'étoffons ici de quelques fonctionnalités utiles : un système de mise à jour et une fenêtre d'infirmation.
(18/10/2005) |
|
Nous avons vu dans un précédent
article la méthode à suivre pour la création d'une extension
Firefox, et les différents fichiers impliqués (lire notre
article du 19/09/2005). Nous allons ici enrichir cette
première extension de nouvelles possibilités utiles à l'utilisateur
final.
Mise à jour
Une extension est rarement terminée : que ce soit pour corriger
un bogue, améliorer les capacités ou ajouter de nouvelles fonctionnalités,
il est très probable que votre travail ne restera pas en version
1.0 très longtemps. LEs concepteurs de Firefox ont prévu
ce cas de figure : plutôt que d'obliger l'utilisateur à vérifier
régulièrement s'il dispose bien de la dernière version, le navigateur
possède un système d'avertissement et de téléchargement
de mise à jour, qui s'applique autant à lui-même qu'aux extensions
et thèmes installés.
Telle quelle, notre première extension ne peut pas profiter
de ce système de mise à jour. Il faut pour cela ajouter un fichier
particulier : update.rdf. Ce
fichier doit se trouver sur le serveur de téléchargement de
l'extension. Il permet d'indiquer les nouvelles versions d'une
ou plusieurs extensions, sous une forme proche de celles de
install.rdf.
<?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#">
<!-- JDN Hello World -->
<r:Description about="urn:mozilla:extension:{ea979a68-2df8-4f1c-8edd-848cd44a9146}">
<updates>
<r:Seq>
<r:li>
<r:Description>
<version>0.2</version>
<targetApplication>
<r:Description>
<id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</id>
<minVersion>0.8</minVersion>
<maxVersion>1.9</maxVersion>
<updateLink>http://example.net/hello.xpi
</updateLink>
</r:Description>
</targetApplication>
</r:Description>
</r:li>
</r:Seq>
</updates>
<version>0.2</version>
<updateLink>http://example.net/hello.xpi</updateLink>
</r:Description>
Le premier
identifiant, placé dans la balise r:Description,
doit être le même que celui utilisé pour définir l'extension
dans son fichier install.rdf.
Le second, que l'ont trouve dans <id>,
doit pour sa part toujours correspondre à celui de Firefox.
La balise version doit contenir
la dernière version en cours - Firefox comparera cette chaîne
à celle de l'extension installée, et affichera un message en
cas d'incrémentation.
Les balises minVersion et maxVersion
s'appliquent pour leur part à Firefox lui-même. Certaines fonctionnalités
pour les extensions ne sont pas disponibles avant la 0.8, donc
il peut être utile de ne pas viser plus bas. Pareillement, pour
éviter de mettre à jour les extensions à chaque sortie d'un
nouveau Firefox, viser jusqu'à la v1.9 rend le développeur plus
tranquille.
Les URL, enfin, pointent sur le XPI, qui a été créé normalement.
Reste, finalement, à indiquer à Firefox que pour une extension
donnée, il peut aller vérifier l'existence de mises à jour.
Cela doit se faire dès la création de l'extension, en ajouter
la ligne suivante au fichier install.rdf,
au même niveau par exemple que <em:creator>
:
<em:updateURL>http://www.webserver.com/update.rdf</em:updateURL>
Fenêtre "À propos"
Autre ajout esthétique mais toujours utile, une fenêtre pour
que l'auteur de l'extension puisse se signaler à l'utilisateur.
Cela permet de voir comment implémenter des fenêtres XUL dans
un tel projet.
Car il ne s'agit plus ici d'afficher une alerte JavaScript,
comme le fait notre première extension, mais d'ouvrir une fenêtre
à part entière. Et sous Firefox, ces fenêtres sont déclarées
avec XUL. Le fichier en question est nommé apropos.xul,
mais il peut prendre n'importe quel nom ; le tout est de le
pointer correctement depuis le fichier install.rdf,
à savoir en utilisant la balise suivante :
<em:aboutURL>chrome://hello/content/apropos.xul</em:aboutURL>
Vous comprendrez en lisant l'URL que le fichier apropos.xul
se trouve dans le dossier content,
donc au même niveau que le fichier contents.rdf.
|
Forum |
|
Réagissez
dans les forums
de JDN Développeurs
|
La fenêtre elle-même est une simple question de développement
XUL, ce que nous avons déjà abordé dans plusieurs articles (voir
notre rubrique Client
Web). Voici néanmoins un exemple basique :
<?xml version="1.0" encoding="UTF-8"
?>
<?xml-stylesheet href="chrome://global/skin/" type="text/css"?>
<window class="dialog" title="A Propos de Hello!" onload="sizeToContent()"
xmlns="http://www.mozilla.org/keymaster/gatekeeper
/there.is.only.xul">
<vbox>
<text value="Hello World v1.0""/>
<text value="Une extension qu'elle
est originale"/>
<text value="from JDN with love"
/>
</vbox>
<hbox>
<button label="Fermer" oncommand="window.close();"/>
</hbox>
</window>
Nous obtenons une simple fenêtre, avec du texte libre
et un bouton de fermeture. |
|
|
|
|
|
Quand achetez-vous le plus en ligne ? |
|
|
|
|
|
|
|
|