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.

Bindings

Les composants XpCom peuvent être développé en C++, mais aussi dans d'autres langages.

Premièrement, le JavaScript, qui est utilisable en natif. Voir le livre Creating Applications With Mozilla.

Il y a ensuite le Python, Perl, et Ruby. Afin d'ajouter des languages binding au système XpCom, il faut en général recompiler XulRunner ou Firefox avec les sources des bindings en question.

Développer en Python

Le binding de Python, fut à l'origine PyXpcom, réalisé par Activestate et anciennement disponible sur http://public.activestate.com/pyxpcom/. Ce binding est depuis 2004 ou 2005 intégré dans les sources de Mozilla.

Ce binding sera probablement disponible en natif en 2007 dans XulRunner 1.9. En attendant, il faut compiler les sources de Mozilla (XulRunner ou Firefox) en rajoutant l'extension Python. Dans le fichier mozconfig, il faut donc rajouter "python", sur la ligne :

 ac_add_options  --enable-extensions=....,python

Il y a des explications supplémentaires sur PyXPCOM sur Devmo : http://developer.mozilla.org/en/docs/PyX(..)

À noter que l'outil de messagerie instantanée SkyMessenger utilise le binding Python.

Développer en Java

Il n'existe pas pour le moment de vrai binding Java. On ne peut pour le moment pas appeler un xpcom fait en java à partir d'une application Mozilla. En effet, le code permettant d'enregistrer un composant Java et de pouvoir l'exploiter dans une instance de XulRunner ou Firefox n'est pas encore disponible.

Cependant, il existe JavaXPCOM, réalisé entre autre par IBM. Ce projet ne permet que d'exploiter des composants XPCom dans un environnement Java, à partir d'une application purement Java. Il est possible de coder ses propres composants en Java et de les exploiter en interaction avec des composants en C++ ou en JavaScript.

Cela veut dire que vous pouvez embarquer Gecko dans une application Java, et d'appeler dans votre programme Java tous les composants livrés avec Gecko (et donc de piloter Gecko).

JavaXPCOM est livré avec XulRunner 1.8.0.1 et ses sources sont disponibles dans les sources de mozilla.

Un exemple de code Java exploitant des XpCom sur http://lxr.mozilla.org/mozilla1.8.0/sour(..).

Historiquement, il y a eu plusieurs projet de binding Java, dont un projet datant de 2001, blackwood, réalisé par Sun. Mais il n'était pas terminé et est maintenant abandonné.

Developper en C# avec Mono

Dans les sources de Mozilla, il y a une extension pour pouvoir développer des composants XPCOM via Mono. Dans le fichier mozconfig, il faut donc rajouter "mono", sur la ligne :

 ac_add_options  --enable-extensions=....,mono

Cependant, il semblerait que cela reste plus ou moins expérimental. À tester.

Developper en Perl

Le binding pour Perl est un projet externe à Mozilla. Voir le site http://plxpcom.mozdev.org/. Il semble ne plus être actif depuis début 2005 et il ne compile plus avec Gecko 1.9.

Developper en Ruby

Le binding pour ruby est un projet externe à Mozilla. Voir le site http://rbxpcom.mozdev.org/.

Il semble ne plus être actif depuis 2002 et il ne compile plus avec Gecko 1.9.

Développer en PHP

Il n'existe pas à l'heure actuelle de binding pour PHP.


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.