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.

Compilation

Pour la réalisation d'extensions ou d'applications XulRunner, il est peut être nécessaire d'avoir à créer et compiler un composant XPCOM en C++.

Ne pas compiler avec le SDK

Le premier reflexe qui vient souvent est de récupèrer le SDK de Gecko et de l'utiliser pour vos développements. Mais ce n'est pas une bonne idée dans la mesure où il n'est pas livré avec tous les fichiers d'entêtes et tous les fichiers IDL des composants disponibles dans Firefox, Thunderbird ou XulRunner. N'est livré avec le SDK que les fichiers IDL des interfaces déclarées "frozen" (gelées). De ce fait, votre composant ne pourra pas faire appel à beaucoup d'autres composants, certains pourtant pouvant être trés utiles.

De plus, il n'y a plus de SDK officiel depuis la sortie de Gecko 1.8 (Firefox 1.5), à cause justement de ces fichiers manquants. Vous pourriez récupérer une version "nightly build" mais qui peut comporter des incompatibilités (puisque c'est un SDK basé sur le tronc).

En fait Le SDK de Gecko est surtout fait pour ceux qui veulent juste intégrer Gecko dans leur application non XUL. Il n'est pas vraiment fait pour ceux qui veulent créer des composants pour Firefox ou Thunderbird.

Compilation avec les sources de Mozilla

Pour pouvoir créer des composants C++, il faut donc récupérer puis compiler les sources de Firefox ou de Thunderbird.

Résumé

Vous allez donc compiler votre composant avec les sources d'une application Mozilla. Si vous faites un composant pour Firefox, vous prendrez les sources de Firefox. Si vous en faites un pour XulRunner, vous prendrez les sources de XulRunner etc..

Vous pouvez les récuperer sur le serveur ftp : http://ftp.mozilla.org/pub/mozilla.org/.

La marche à suivre ensuite est la suivante :

  1. Création d'un répertoire pour vos composants, dans mozilla/extensions/
  2. vous y mettez vos sources, fichiers IDL etc
  3. vous y mettez également les fichiers Makefile.in.
  4. vous lancez ensuite la compilation de Firefox/XulRunner comme à l'habitude, en ajoutant dans le fichier .mozconfig la ligne ac_add_options --enable-extensions=default,monextension
  5. cela va vous créer entre autre tout vos fichiers d'entete d'IDL dans le repertoire cible de compilation
  6. si vous devez recompilez, vous avez juste à taper make dans le repertoire cible de compilation au niveau de la copie de votre répertoire.

Création de votre répertoire

ToDo : à continuer...

En attendant, vous avez un tutoriel en anglais sur devmo : http://developer.mozilla.org/en/docs/Cre(..)

Installation

Une fois compilé, il faut installer le composant dans le repertoire components de l'extension ou de l'application (ainsi que les fichiers xpt si vous avez créée de nouvelles interfaces)

Si vous n'arrivez pas à accéder au composant, à l'instancier :

  • verifiez bien que vous avez fait une factory et qu'elle est ok
  • effacez le fichier compreg.dat de votre profile et redémarrez Firefox
  • ou créer un fichier ".autoreg" dans le repertoire de Firefox et redémarrez le

Ressources

Vous trouverez certaines informations conçernant l'utilisation avec VC++ sur la page EpeiosOrg.

Chapitre XpCom


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.