On peut dire que je me serais pris la tête avec ça. La dernière mouture de Firefox (1.5) a des caractéristiques très différentes de l’ancienne. Malheureusement, la documentation sur le web n’est pas toujours à jour, loin s’en faut. J’ai fini par trouver ce qu’il me fallait. Voici la marche à suivre (minimale) :
- dans votre répertoire de développement, créez l’arborescence suivante : chrome/{votre extension}/content/
- disposez vos fichiers dans le dernier dossier
- créez à la racine de votre répertoire de développement (ie au même niveau que le dossier chrome) un fichier chrome.manifest au sein duquel vous écrirez la ligne suivante : content {votre extension} chrome/{votre extension}/content/
- rendez-vous dans votre répertoire de profil firefox. Dans le dossier extensions, créez un fichier texte à l’intérieur duquel vous écrirez le chemin menant à votre répertoire de développement. Renommer le fichier avec l’ID de votre extension (par exemple {c038d16a-4251-d331-98ea-264154db38c0}).
- redémarrez firefox, tapez l’url pour accéder à votre extension : chrome://{votre extension}/content/ et hop, magie, ça fonctionne.
NB : pas besoin de fermer et redémarrer firefox à chaque modification dans vos fichiers pour qu’il les prenne en compte.



En effet, le packaging des extensions XUL est une vraie saloperie. La version 1.5 n’a pas vraiment simplifié les choses. Y’a qu’à voir le nombre de pages sur le net qui tentent d’expliquer ca. Personne ne semble le prendre au sérieux chez Mozilla, mais je suis d’avis que ce genre de conneries freine énormément le développement de nouvelles extensions. Beaucoup doivent être découragés par les abérations comme les fichiers de config en RDF : Déjà que je trouvais que des fichiers de config en XML était une erreur.
Et puis firefox est vraiment avare de message d’erreurs. Pas un avertissement en cas d’erreur de syntaxe sur un install.rdf ou un chrome.manifest. Merci pour débugger ! J’ai déjà reporté le problème mais il s’est noyé dans le flot des priorités.
Bref, je viens apporter mon petit grain de sable.
Dans mon cas, rajouter simplement un fichier {id} dans mon répertoire d’extensions ne suffit pas à l’installer automatiquement.
Il semble que firefox impose la présence d’un fichier install.rdf minimal lors du premier accès à ce répertoire pour l’enregistrer dans son registre.
Quelques précisions :
o La structure bancale et lourde chrome/content/ … n’est pas
nécessaire. On peut mettre ses fichiers n’importe ou. Un répertoire
‘stuff’ fait l’affaire
o L’Id de l’application est soit de la forme {uuid} (ou uuid est
généré) ou bien sous forme d’url : truc@bidule.machin
(à préférer pour s’y retrouver)
o Il est indispensable d’ajouter un ‘/’ Ã la fin du chemin dans le chrome.manifest
ex : content mon-appli stuff/
"mon-appli" peut etre n’importe quoi, le chrome.manifest est juste un mapping d’URL.
Il redirigera ensuite
"chrome://mon-appli/content" vers "stuff/"
Voila
vraiment super utile ca !!!
parce que dès qu’on veut faire des tests ca prennait 10 ans …
merci !