Attention : Le contenu de ces pages n'a pas été mis à jour depuis longtemps. Il est probablement obsolète pour Firefox 4.0/Gecko 4.0 et supérieur. Pour du contenu plus récent, allez consulter developer.mozilla.org.

Se documenter

Vous êtes coincé ? Votre code ne fonctionne pas ? Vous ne savez pas comment faire telle ou telle opération en XUL ou en Javascript ?

Cette page a pour but de vous aider dans votre recherche de solution à vos problèmes lors de développement XUL, Javascript ou XPCom.

Avant de poser une question sur le forum, la mailing list ou sur IRC, voici quelques étapes importantes.

Bien identifier le problème !

Tout bug est associé à une erreur.

1) Assurez vous de bien avoir précisé dans votre pref.js:

 user_pref("nglayout.debug.disable_xul_cache", true); // désactive le cache XUL
 user_pref("nglayout.debug.disable_xul_fastload", true); // lié au précédent, facultatif
 user_pref("javascript.options.strict", true); // active l'affichage de toutes les erreurs d'exécutions
 user_pref("javascript.options.showInConsole", true); // active l'affichage de toutes les erreurs de syntaxe
 user_pref("browser.dom.window.dump.enabled", true); // active le dump sur la console

2) Vérifier bien votre console JavaScript.

3) faites des alert, catcher vos erreurs JavaScript:

 try {
 //Mon code JS
 } catch(e) {alert(e);}

Lire la foire aux questions

La page FaqDev liste les questions les plus fréquentes, et leur solution. N'hésitez pas à la consulter avant de poser une question sur le forum !!

Vous ne savez pas comment faire une opération ?

Lectures

Consultez toutes les ressources à votre disposition !

  • Le tutoriel XUL est une mine d'information pour les débutants. À lire absolument !
  • Le wiki peut réceler des pépites d'or malgré son contenu d'apparence chaotique. N'hesitez pas à faire une recherche.
  • De nombreux bouts de codes sont présents dans la rubrique RessourcesLibs

XulPlanet

Pour tout ce qui est documentation de référence (méthodes, propriétés des balises, composants XPCOM) un passage par XulPlanet est obligatoire ! XULPlanet est la référence. Ce site vous permet de naviguer dans les différents types d'objets de Mozilla. Vous aurez certainement repérer la zone de recherche. Il faut en abuser !

Savoir naviguer dans XulPlanet est très important.

Si vous souhaitez par exemple comprendre comment travailler avec les mails, sans avoir d'idée précise sur ce qu'il faut utiliser, il parait évident que passer par le système de recherche ne sera pas très intéressant. Pour cela, il y a les références (XUL/Objets/XPCom) en bas à gauche du site. En allant sur la référence XPCom, on pourra voir que tout est segmenté en sous sections, par exemple, il y a une section mail.

Mais souvent, une simple recherche suffit. Petit exemple. Vous voulez travailler avec le Smtp.

  • On fait une recherche sur "smtp".
  • On a 2 types de résultats: Components et Interface. Pour commencer, on se contente des interfaces.
  • On voit donc qu'il y a une interface nsISmtpService.
  • Sur la page de nsISmtpService, on comprend que cette interface est implémentée par 2 composants, qu'elle hérite de nsISupports. On découvre surtout toutes les méthodes et attributs qu'elles proposent.
  • La méthode SendMailMessage peut nous intéresser. On sait quels types d'arguments elle prend en paramètre et quels sont leurs définissions (un lien vers nsIFileSpec par exemple).
  • Connaissant les composants, l'interface et la méthode qui nous intéresse, si on ne sait pas trop comment les utiliser, on va faire un tour sur le MXR et on aura des exemples de codes en Javascript et en C++.

Autres sites :

  • http://developer.mozilla.org : connu sous le nom de devmo, c'est un gros Wiki, dont une partie est en français. Abusez de la recherche.
  • http://www.hevanet.com/acorbin/xul/top.x(..)
  • http://google.com : si aucun de ces sites ne répond à vos besoins ;-) Juste une petite remarque à propos de google, vous remarquerez que vous pouvez aussi chercher dans les newsgroups, où les discussions sont souvent plus pertinantes qu'une simple page google.

Si vous avez échoué dans toutes vos recherches, vous pouvez poster vos questions dans le forum ;-)

Utiliser du code existant

Vous cherchez à faire un opération et vous savez qu'une extension ou que Firefox ou Thunderbird est dans la mesure de le faire ?

Avant de vous lancer dans la lecture du code source, posez vous la question si en utilisant simplement le DOMInspector vous ne trouverez pas votre solution. Par exemple, chargez l'URL chrome://browser/content, et vous pourrez naviguer dans le code XUL de firefox et même d'une extension.

Lire un code source JavaScript et XUL n'est pas très compliqué. Pour lire le code source d'une extension, il suffit de la télécharger (clic droit, Enregister la cible du lien sous...), déziper le xpi, et ensuite déziper les .jar. Le fichier .manifest peut vous aider à trouver une URL chrome de l'extension que vous pourrez utiliser dans le DOMInspector. Pour lire le code source de Firefox, il est conseillé de passer par le MXR, et d'ouvrir le fichier concerné dans les sources XUL de Firefox.

  • *Attention** : si vous recopiez du code à la virgule prés, soyez sûr que la licence sous laquelle il a été écrit est bien compatible avec la licence sous laquelle vous distribuerez votre code ! Et si tel est le cas, respectez là, indiquer l'origine du bout de code etc !

Copyright © 2003-2013 association xulfr, 2013-2016 Laurent Jouanneau - Informations légales.

Mozilla® est une marque déposée de la fondation Mozilla.
Mozilla.org™, Firefox™, Thunderbird™, Mozilla Suite™ et XUL™ sont des marques de la fondation Mozilla.