Préface

Cette section concerne Gecko et la création de composants XPCOM pour des applications basées sur Gecko. Bien que l'accent soit mis sur les mesures concrètes que vous prenez pour créer un code C ++ valide dans un composant qui peut être utilisé dans Gecko, nous espérons que ces mesures nous donneront également l'occasion de discuter de tous les outils, les techniques et les technologies qui composent XPCOM. En conséquence, le livre est agencé de telle sorte que vous puissiez suivre et créer vos propres composants et en apprendre davantage sur XPCOM, comme dans un ouvrage de référence. Par exemple, l'introduction comprend une discussion sur les composants, et le premier chapitre - dans laquelle vous compilez le code de base et l'enregistrer avec Mozilla - éclair sur la relation entre les composants et les modules, les interfaces XPCOM et le processus d'enregistrement en général.

Le début de chaque chapitre fournit une liste des principaux sujets abordés. Des barres latérales sont incluses pour mettre en évidence les détails techniques. À la fin du livre, vous aurez appris comment construire un composant XPCOM et vous comprendrez sont fonctionnement dans Gecko.

Pour qui est ce tutoriel ?

La Création de composants XPCOM est destinée aux développeurs C ++. Bien que vous pouvez créer des composants XPCOM en JavaScript ou d'autres langages, le code de mise en œuvre des composants est écrit en C ++, et une grande partie de la discussion sur la façon de programmer un composant XPCOM utilise le C ++. Vous ne devez pas non plus être un expert C ++. Bien que les idées de base telles que l'héritage et l'encapsulation devraient vous être familiers. Leur utilisation est expliquée à chaque fois dans le tutoriel. En outre, beaucoup d'exemples sont en JavaScript,  utilisé dans Mozilla pour accéder aux composants XPCOM comme des objets scriptable, votre familiarité avec ce langage est également utile.

XPCOM pour Cross Platform Component Object Model est similaire à Microsoft COM. Si vous avez une expérience avec ces technologies, beaucoup d'entre elles peuvent être appliquées à XPCOM. Cependant, ce tutoriel ne suppose aucune connaissance préalable du COM - toutes les idées de base seront présentés.

Ce livre fournit un tutoriel sur la construction d'un composant XPCOM contrôlant le comportement d'un navigateur. Bien que XPCOM peux être utilisé dans de nombreux environnements qui sont sans rapport avec la navigation web, le principal client de XPCOM est Gecko. Il est open source, conforme aux standards, possède un navigateur Web embarquable, où il est plus facile et plus pratique d'illustrer les fonctionnalités d'XPCOM. Une description complète de ce composant peut être trouvé dans le chapitre ce que nous allons faire du didacticiel.

Malgré ce que dit le vieux document, XPCOM ne devrait pas être utilisé pour faire des plugins NPAPI scriptable. A partir de Gecko 1.7.5 (Firefox 1.0) une extension spéciale NPAPI pour scriptabilité est prise en charge, voir plugins Scripting.

Organisation du Tutoriel

La liste suivante donne un aperçu des étapes que nous allons suivre pour construire un composant XPCOM appelé WebLock, qui prévoit une fonctionnalité de blocage de sites pour les navigateurs basés sur Gecko. Chacune de ces étapes a son propre chapitre, dans lequel un certain nombre de sujets liés à l'étape sont abordés.

  • Créer un module de code générique pour le composant.
  • Utilisez les macros C++, particulièrement les classes string et pointeurs intelligents, pour optimiser votre code.
  • Définir la fonctionnalité pour le composant; créer une interface XPIDL pour cette fonctionnalité; créer le code de mise en œuvre spécifique à l'usage de l'interface du composant WebLock.
  • Terminer la mise en œuvre du composant WebLock: nsIContentPolicy , fichier I/O, de verrouillage, etc.
  • Création de l'interface utilisateur pour le composant de WebLock.
  • Emballage WebLock pour la distribution et l'installation.

Continuons avec des exemples

Il y a deux façons d'installer XPCOM sur votre machine pour que vous puissiez commencer à créer des composants. Si vous avez déjà Mozilla build ou le code source de Mozilla 1.2 ou ultérieure, vous pouvez utiliser le framework XPCOM disponible. Si non, la façon la plus simple d'obtenir et d'utiliser XPCOM est de télécharger le SDK Gecko, qui est un ensemble de bibliothèques et d'outils qui comporte le framework XPCOM.

Que vous compiliez le code source ou utilisiez le SDK Gecko, vous pouvez construire vos propres composants en utilisant les composants existant dans Gecko. Le composant WebLock que nous décrirons dans ce tutoriel met ceci en pratique (et, nous l'espérons, de façon utile) en plus de la manipulation du navigateur. Pour que cela fonctionne, votre code source SDK Gecko ou Mozilla doit être de version 1.2 ou ultérieure (l'interface XPCOM n'a pas été entièrement fixée dans les versions antérieures).

Ce livre suppose que vous utilisez SDK plutôt que de compiler le code source de Mozilla, bien que la différence entre ces deux approches soit minime. La construction, et l'obtention de l'accès à la programmation de composants Gecko est fournies en annexe à ce livre, Configuration du SDK Gecko .

Conventions

Les conventions de formats ci-dessous sont utilisées pour désigner des types d'informations spécifiques dans le livre et rendre les choses plus faciles à analyser. Le but est d'utiliser aussi peu de formats que possible, mais de distinguer clairement les différents types d'informations.

Format Description
gras noms des composants apparaissent en gras dans le texte
monospace lignes de code , noms d'interface et membres d'interfaces (par exemple, createInstance()) apparaissent avec cette police. Les lignes de code sont placées dans des encarts séparés. En outre, les noms de fichiers et de répertoires possèdent également cette police.
italique les variables apparaissent en italique. Les termes importants et les nouveaux concepts sont également en italique la première fois qu'ils apparaissent dans le texte. Ces termes sont expliqués soit immédiatement après leur citation, ou bien le lecteur est renvoyé à une section dans le livre où ils sont décrits en détail.
lien Références à d'autres sections, figures ou tableaux et leur liens vers ces articles.

Étiquettes et contributeurs liés au document

Étiquettes : 
 Contributeurs à cette page : Hell_Carlito, SphinxKnight, jmh
 Dernière mise à jour par : Hell_Carlito,