Cherche aide pour faire débugguer un paquet XPI

Vous vous penchez sur le développement d'applications ou d'extensions pour Mozilla ? C'est alors vers ce forum que se dirigeront naturellement vos requêtes...
Répondre
Scoubidou57
Arias
Messages : 9
Inscription : 15 juil. 2010, 23:03

Cherche aide pour faire débugguer un paquet XPI

Message par Scoubidou57 »

Bonjour,

J'ai développé une petite extension pour Firefox qui s'appelle compilibre.xpi. Elle s'installe dans Firefox 3.6.6 mais une partie du programme ne fonctionne pas, apparemment l'appel à des fonctions javascript inclues dans l'extension jslib que j'installe avant d'installer mon extension.
Après l'installation, si je fais la bidouille suivante, mon extension marche bien :
- décompresser le fichier ~/.mozilla/firefox/p36rvo6y.default/extensions/{DF8E5247-8E0A-4de6-B393-0735A39DFD80}/chrome/compilibre.jar
- remplacer dans le fichier ~/.mozilla/firefox/p36rvo6y.default/extensions/{DF8E5247-8E0A-4de6-B393-0735A39DFD80}/chrome.manifest :
content compilibre jar:chrome/compilibre.jar!/content/
locale compilibre fr-FR jar:chrome/compilibre.jar!/locale/fr-FR/
locale compilibre en-EN jar:chrome/compilibre.jar!/locale/en-EN/
skin compilibre global jar:chrome/compilibre.jar!/skin/
par :
content compilibre chrome/content/
locale compilibre fr-FR chrome/locale/fr-FR/
locale compilibre en-EN chrome/locale/en-EN/
skin compilibre global chrome/skin/

Par contre, si je crée un fichier compilibre.xpi sans fichier jar dedans et avec le fichier chrome.manifest modifié comme ci-dessus, l'extension ne s'installe pas!
Je m'arrache les cheveux depuis des mois, je n'ai aucune erreur dans la console d'erreur de Firefox. Quelqu'un aurait une idée pour m'aider à trouver d'où ça vient?
Merci d'avance.
commando
Lézard à collerette
Messages : 304
Inscription : 05 janv. 2009, 15:23

Re: Cherhce aide pour faire débugguer un paquet XPI

Message par commando »

Bonjour.

A première vue, je dirai que t'es tombé sur le même problème que moi à mes tout début: la compression jar qui ne s'est pas faite proprement.

Si c'est ça, voici le sujet de ma demande dessus, et qui est dans le bon sous-forum pour ce genre de sujet: http://www.geckozone.org/forum/viewtopi ... =9&t=83948
Tu verras, on a des avis divergeant sur la méthode, mais comme ça il y a toutes les possibilités :D .

Si ce n'est pas ça, ou si tu penses que ce n'est pas ça, moi faut que je "touche" pour voir mieux (avec ta permission). Mais essaye déjà de changer de méthode pour compresser en jar.

Par contre, je voudrais savoir quelque chose: DF8E5247-8E0A-4de6-B393-0735A39DFD80 et le GUID de ton extension ou de l'autre? Et pourquoi ne pas inclure l'autre extension à la tienne? Car une extension qui en appelle une autre, ça ressemble à une sur-couche de sur-couche: pas top.
Scoubidou57
Arias
Messages : 9
Inscription : 15 juil. 2010, 23:03

Re: Cherche aide pour faire débugguer un paquet XPI

Message par Scoubidou57 »

Tiens oui, mon post est passé de la catégorie Mozilla Firefox à une autre catégorie, j'ai fait une fausse manipulation. Je ne trouve pas comment déplacer mon message.
Pour répondre à tes questions :
Je génère mon fichier jar puis mon fichier XPI avec zip sous GNU/Linux ou avec 7-Zip sous Windows, le problème reste le même.
DF8E5247-8E0A-4de6-B393-0735A39DFD80 et le GUID de mon extension.
L'autre extension est la bibliothèque jslib : http://jslib.mozdev.org/ . Cette extension doit être aussi installée. Le fichier compilibre.js qui est dans mon extension appelle des fonctions de cette bibliothèque pour lister des fichiers dans des répertoires par exemple.
Je peux t'envoyer mon extension si tu veux, ainsi que la doc d'installation et une copie d'écran de l'application avant et après la bidouille manuelle. Je suis joignable à vantyghemd arobase wanadoo.fr.
commando
Lézard à collerette
Messages : 304
Inscription : 05 janv. 2009, 15:23

Re: Cherhce aide pour faire débugguer un paquet XPI

Message par commando »

Ok, c'est que je ne suis pas expert en JS, mais le problème n'a pas l'air d'être dans le JS.

As-tu passé ton extension au validateur de module (https://addons.mozilla.org/fr/developers/addon/validate , nécessite un compte)? Y a-t-il des erreurs?
Ça ne vérifie pas grand chose, mais s'il y a déjà des erreurs à ce niveau, faudra les corriger.

PS: pour le sujet, je pense que c'est un admin ou un modo qui l'a déplacé au bon endroit. Relaxe :wink: .
Scoubidou57
Arias
Messages : 9
Inscription : 15 juil. 2010, 23:03

Re: Cherhce aide pour faire débugguer un paquet XPI

Message par Scoubidou57 »

Je ne connaissais pas ce validateur, merci j'ai ajouté dans mes marque-pages.
J'ai une erreur ("Tests JavaScript non concluants") qui se répète 3 fois dans mon fichier XUL à la ligne :
<iframe flex="1" id="doc"/>

Correction suggérée :
Toute instance des éléments iframe ou browser sans un attribut "type" est notifiée. Si ces éléments sont là pour charger des URLs distantes ou des URLs locales qui ne nécessitent pas les privilèges chrome, alors type="content" doit être défini de sorte à maintenir la sécurité. Dans les autres cas, l'adresse chrome peut être définie clairement dans l'attribut src, ou des commentaires doivent être présents à proximité pour garantir l'innocuité de l'utilisation.

C'est peut-être lié, je continue à chercher. J'ai remplacé par <iframe flex="1" id="doc" type="content"/> et il n'y a plus d'erreur détectée par le validateur. Mais toujours la même chose, l'extension s'installe, elle marche partiellement (les appels aux fonctions de jslib ne donnent rien) puis complètement si je décompresse à la main le fichier jar et modifie le fichier chrome.manifest. On dirait un problème d'accès aux fonctions de jslib ou à d'autres fichiers à cause de chrome. J'ai peut-être une mauvaise déclaration quelque part. Snif.
commando
Lézard à collerette
Messages : 304
Inscription : 05 janv. 2009, 15:23

Re: Cherhce aide pour faire débugguer un paquet XPI

Message par commando »

Quelle est l'arborescence de ton extension ?

Exemple:
-- extension.xpi
...-- install.rdf
...-- chrome.manifest
...-- chrome/
......| -- extension.jar
..........| -- content/
..........|-- skin/
...-- components/
etc
Scoubidou57
Arias
Messages : 9
Inscription : 15 juil. 2010, 23:03

Re: Cherhce aide pour faire débugguer un paquet XPI

Message par Scoubidou57 »

-- extension.xpi
...-- install.rdf
...-- chrome.manifest
...-- chrome/
......| -- extension.jar
..........| -- content/
..........|-- skin/
..........|-- locale

J'ai tout mis en ligne sur http://www.compilibre.org/compilibre-source.tgz, l'extension XPI est dans le dossier compilibre/Extension
Quand je fais la bidouille après installation de l'extension XPI (décompression du fichier jar puis modification du chrome.manifest pour ne plus utiliser le fichier .jar mais les fichiers décompressés), ça fonctionne bien, l'appel aux fonctions de la jslib marchent.
Je pense qu'il y a une façon d'inclure la jslib et d'appeler ses fonctions que je fais mal.
commando
Lézard à collerette
Messages : 304
Inscription : 05 janv. 2009, 15:23

Re: Cherhce aide pour faire débugguer un paquet XPI

Message par commando »

Bonne idée de mettre en ligne. Comme ça, si quelqu'un d'autre veut bien se pencher dessus, ce ne sera pas de refus.

De mon côté, je n'ai (encore) presque rien fait. Même pas un profil compatible, donc je met également en ligne une toute première proposition d'aide, sans garantie: http://www.aidesetastuces.fr.nf/compilibre.xpi
Est-ce mieux ou statu quo ?
Scoubidou57
Arias
Messages : 9
Inscription : 15 juil. 2010, 23:03

Re: Cherche aide pour faire débugguer un paquet XPI

Message par Scoubidou57 »

Bonjour commando,

Pas de changement, l'installation se fait mais toujours pas d'appel aux fonctions de jslib.
Un diff -r sous GNU/Linux m'indique que tu n'as rien modifié dans les fichiers. C'est la compression qui est différente?
Avant la fin de cette semaine, je vais mettre une version opérationnelle de COMPILIBRE ( http://www.compilibre.org/data/compilibre.zip ), prête à transférer sur clé USB ou à exécuter sur le PC (il faudra juste prendre le contenu du répertoire BaseDisk/ dans cette archive). Tu pourras essayer de suite ce que COMPILIBRE peut faire.
Scoubidou57
Arias
Messages : 9
Inscription : 15 juil. 2010, 23:03

Re: Cherhce aide pour faire débugguer un paquet XPI

Message par Scoubidou57 »

J'ai trouvé l'erreur! La fonction readDir de jslib ne peut tout simplement pas lire un répertoire ou un fichier qui sont dans une archive compressée .jar! Il faudrait que ces fonctions comprennent par exemple que compilibre.jar!/content/ est une archive zip et puisse voir le contenu de cette archive.
C'est pour ça que mon extension ne marche que quand je ne zippe pas content, skin et locale dans une archive jar.
commando
Lézard à collerette
Messages : 304
Inscription : 05 janv. 2009, 15:23

Re: Cherhce aide pour faire débugguer un paquet XPI

Message par commando »

Scoubidou57 a écrit :C'est la compression qui est différente?
C'est cela, oui. Tout à fait.
C'était pour vérifier mon hypothèse du début. Mais c'est pas ça le soucis. D'ailleurs, entre temps, tu l'as trouvé.
Scoubidou57 a écrit :J'ai trouvé l'erreur! La fonction readDir de jslib ne peut tout simplement pas lire un répertoire ou un fichier qui sont dans une archive compressée .jar! Il faudrait que ces fonctions comprennent par exemple que compilibre.jar!/content/ est une archive zip et puisse voir le contenu de cette archive.
C'est pour ça que mon extension ne marche que quand je ne zippe pas content, skin et locale dans une archive jar.
Bien, l'erreur est déjà trouvée. Maintenant, pour un correctif, il faudrait voir si on peut mettre une partie (ou le total) du content en dehors du jar. Je sais que c'était possible dans les 1° versions de FF. Mais maintenant... je n'en mettrai pas ma main à couper...
Bonne programmation pour le correctif.
Goofy
Iguane
Messages : 593
Inscription : 23 juil. 2004, 22:39

Re: Cherhce aide pour faire débugguer un paquet XPI

Message par Goofy »

1. Dans le chrome.manifest on trouve en-EN au lieu de en-US
2. Dans les fichiers de locale on trouve des fichiers .js ce qui est tout fait déconseillé. Pour localiser les chaînes d'un fichier js on fait comme ça http://www.babelzilla.org/index.php?opt ... 18&Itemid=
Pour le reste je ne sais pas.
- Pensez global, faites des locales -

Image
Scoubidou57
Arias
Messages : 9
Inscription : 15 juil. 2010, 23:03

Re: Cherche aide pour faire débugguer un paquet XPI

Message par Scoubidou57 »

Bon, je vais essayer d'améliorer pour la localisation.
Pour l'instant, je fais un truc moche : je fais une extension xpi avec une archive jar dedans -> ça s'installe. Ensuite, une fois l'extension installée, je vais dans le répertoire où elle est installée et je décompresse l'archive jar puis je modifie le fichier chrome.manifest pour qu'il n'utilise plus le fichier jar.
Je voudrais me passer complètement du fichier jar et faire en sorte que l'extension s'installe lorsqu'elle ne contient pas d efichier jar.
Goofy
Iguane
Messages : 593
Inscription : 23 juil. 2004, 22:39

Re: Cherche aide pour faire débugguer un paquet XPI

Message par Goofy »

Scoubidou57 a écrit :Bon, je vais essayer d'améliorer pour la localisation.
Pour l'instant, je fais un truc moche : je fais une extension xpi avec une archive jar dedans -> ça s'installe. Ensuite, une fois l'extension installée, je vais dans le répertoire où elle est installée et je décompresse l'archive jar puis je modifie le fichier chrome.manifest pour qu'il n'utilise plus le fichier jar.
Je voudrais me passer complètement du fichier jar et faire en sorte que l'extension s'installe lorsqu'elle ne contient pas d efichier jar.
Le fichier .jar est recommandé (à l'intérieur du dossier chrome) mais pas du tout obligatoire. L'extension s'installera très bien tout de même.

exemple ici http://www.babelzilla.org/index.php?opt ... nsion=3772
- Pensez global, faites des locales -

Image
Répondre

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 32 invités