Préface

  • Raccourci de la révision : Documentation_API_Greffons_Gecko/Préface
  • Titre de la révision : Préface
  • ID de la révision : 270541
  • Créé :
  • Créateur : Demos
  • Version actuelle ? Non
  • Commentaire 1 words added, 1 words removed

Contenu de la révision

{{ Traduction_a_relire() }}

{{ Next("Documentation_API_Greffons_Gecko/Les Bases des Greffons") }} {{ Npapiref() }}

À propos de ce guide

La documentation de l'API Greffons (plugins) de Gecko décrit les interfaces de programmation d'application (APIs) des greffons Netscape Gecko et fournit les informations d'utilisation de ces interfaces pour créer des greffons d'applications fondées sur Gecko telles que Firefox, Mozilla, Netscape 6+, etc.

L'introduction générale située dans {{ Npapi-page("Les Bases des Greffons") }} ainsi que le chapitre intitulé {{ Npapi-page("Aperçu du Développement de Greffons") }} forment le début de ce manuel. Une série de chapitre sur différents sujets spécifiques de programmation tels que {{ Npapi-page("Initialisation et Destruction") }}, {{ Npapi-page("Flux") }}, et {{ Npapi-page("URLs") }}, fournit de plus amples détails concernant des aspects techniques pour la création et la gestion de greffons.

La documentation de l'API, dans sa deuxième moitié, est divisée en deux principales sections, {{ Npapi-page("L'API Greffons côté Greffons") }} et {{ Npapi-page("L'API Greffons côté Navigateur") }}, à l'image des documentations matérielles additionnelles concernant les {{ Npapi-page("Structures") }} et les {{ Npapi-page("Constantes") }}.

Ce manuel est structuré de façon à ce que les développeurs débutants avec les greffons Gecko puissent se familiariser avec les APIs certains aspects particuliers du processus de développement (e.g., {{ Npapi-page("Drawing and Event Handling") }}) mais aussi qu'ils accèdent rapidement aux caractéristiques matérielles de l'API dont ils ont besoin.

À qui est destiné ce guide

La documentation de l'API Greffons de Gecko est adaptée aux développeurs de greffons. Bien qu'elle en fournisse un aperçu élémentaire et leur fonctionnement au sein du navigateur, cette doc est faite pour que vous compreniez comment les greffons marchent, comment ils gèrent et affiche les médias, et l'architecture élémentaire que requiert un navigateur pour pouvoir les utiliser.

Ce guide suppose que vous sachiez utiliser des APIs, que vous ayez de l'expérience dans le développement de logiciels pour navigateurs comme des greffons, des composants ou des extensions, que vous soyez familiarisés avec C/C++ (le(s) langage(s) avec lequel la librairie a été créée et de tous les exemples).

Le kit de développement de greffons (SDK)

Un kit de développement de greffons (SDK) est disponible pour les développeurs de greffons Gecko. Il se trouve dans les sources de Mozilla : {{ Source("modules/plugin/sdk/") }}. Vous pouvez l'utiliser depuis l'arborescence des sources Mozilla ou le compiler puis l'exploiter en dehors. Dans tous les cas, l'arbre des sources est requis pour commencer le développement de greffons. Vous pouvez aussi accéder aux exemples du SDK Greffons et leurs sources grâce à l'afficheur-web de sources : {{ Source("modules/plugin/sdk/") }}.

Ce SDK repose sur l'API développée à l'origine pour les navigateurs Netscape (2.x et supérieures). Plusieurs évolutions sont apparues avec Netscape 3.x puis Netscape 4.x. Le SDK actuel a subi d'autres modifications majeures relatives aux fondements du code de Mozilla : LiveConnect pour la scriptabilité des greffons n'est plus supportée, ceux existants doivent être légèrement modifiés pour être à nouveau scriptables ; les services du navigateur sont désormais accessibles aux greffons via le gestionnaire de services.

L'objectif du SDK est d'aider à la création de greffons généralisés pour leur exploitation par Mozilla sans pour autant avoir l'ensemble des sources de Mozilla présentes et compilées.

Le répertoire Common contient des bouts d'implémentation des méthodes de la NPAPI. Il est inutile de modifier les fichiers qu'il contient, il suffit de les inclure dans vos projets. Ce n'est pas pour autant nécessaire, certains exemples ou greffons utilisent le propre implémentation, ces fichiers sont juste une illustration d'une possible manière de faire.

A l'heure actuelle, le répertoire samples contient les exemple de greffons suivant :

Greffon Basic

Il montre le squelette d'une librairie dynamique de greffon (so, dll, ...). Il ne fait rien de plus qu'un "Hello, World". Le greffon Basic illustre comment la librairie dynamique du greffon est invoquée et comment les méthodes NPAPI sont appelées. Il peut servir de modèle de base pour écrire vos propres greffons.

Greffon Simple

Cet exemple de greffon illustre certains traits du code de base de Mozilla. Il est scriptable via JavaScript et utilise les services fournis par le navigateur.

Les interfaces XPCOM sont implémentées dans le greffon Simple donc le navigateur est conscient de ses capacités. Le greffon ne dessine pas dans la fenêtre native mais utilise à la place une boite JavaScript pour afficher ses résltats. Aussi, il n'y a pas de projets pour des plateformes différentes dans cet exemple.

Greffon Scriptable

C'est un autre exemple de greffon scriptable. Il implémente deux méthodes natives appelables depuis JavaScript et il dessine dans une fenêtre native. De plus, il utilise des projets différents selon les plateformes.

Greffon Windowless

Le greffon Windowless est un exemple n'utilisant pas le mécanisme de communication avec les fenêtres natives et n'échange qu'exclusivement via NPP_HandleEvent pour récupérer les messages de l'interface graphique (GUI) et dessiner, etc. Il dessine simplement un rectangle gris dans l'espace occupé.

Les exemples de greffons scriptables nécessitent que vous génériez des librairies de type pour plateformes croisées (XPT) et les mettiez dans le répertoire Plugins de Mozilla avec les librairies dynamiques (Par contre, pour la rétrocompatibilité avec les versions pré-Mozilla 1.0 et Netscape 6.x, il faut placer les librairies de type (XPT) dans le dossier Components). Pour plus d'information sur les librairies de type et les chemins des greffons, allez voir {{ Npapi-section("Les Bases des Greffons", "Détection de Greffons") }}.

Pour s'assurer que Mozilla est conscient de nouveau fichiers .xpt, vous pouvez consulter le fichier généré xpti.dat où les librairies de type sont listées. Si besoin, vous pouvez appeler navigator.plugins.refresh() pour détecter de nouveaux XPT ou greffons.

Les développeurs de greffons trouveront utile de désactiver le mécanisme de capture d'exceptions actuellement implémenté dans les fenêtres Mozilla pour le débeugage. Pour ce faire, ajoutez la ligne suivante dans votre fichier prefs.js :

user_pref("plugin.dont_try_safe_calls", true);

{{ Next("Gecko Plugin API Reference:Plug-in Basics") }}

 

{{ languages( { "ja": "ja/Gecko_Plugin_API_Reference/Preface", "pl": "pl/Dokumentacja_wtyczek_Gecko/Przedmowa", "en": "en/Gecko_Plugin_API_Reference/Preface" } ) }}

Source de la révision

<div style="background-color: rgb(255, 255, 255); font: normal normal normal 14px/1.7 Verdana, Tahoma, sans-serif; color: rgb(37, 34, 29); font-family: Times; line-height: normal; font-size: medium; ">{{ Traduction_a_relire() }}
<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1.7em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">{{ Next("Documentation_API_Greffons_Gecko/Les Bases des Greffons") }} {{ Npapiref() }}</p>
<h3 name="About_this_guide">À propos de ce guide</h3>
<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1.7em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">La documentation de l'API Greffons (plugins) de Gecko décrit les interfaces de programmation d'application (APIs) des greffons Netscape Gecko et fournit les informations d'utilisation de ces interfaces pour créer des greffons d'applications fondées sur Gecko telles que Firefox, Mozilla, Netscape 6+, etc.</p>
<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1.7em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">L'introduction générale située dans {{ Npapi-page("Les Bases des Greffons") }} ainsi que le chapitre intitulé {{ Npapi-page("Aperçu du Développement de Greffons") }} forment le début de ce manuel. Une série de chapitre sur différents sujets spécifiques de programmation tels que {{ Npapi-page("Initialisation et Destruction") }}, {{ Npapi-page("Flux") }}, et {{ Npapi-page("URLs") }}, fournit de plus amples détails concernant des aspects techniques pour la création et la gestion de greffons.</p>
<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1.7em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">La documentation de l'API, dans sa deuxième moitié, est divisée en deux principales sections, {{ Npapi-page("L'API Greffons côté Greffons") }} et {{ Npapi-page("L'API Greffons côté Navigateur") }}, à l'image des documentations matérielles additionnelles concernant les {{ Npapi-page("Structures") }} et les {{ Npapi-page("Constantes") }}.</p>
<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1.7em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">Ce manuel est structuré de façon à ce que les développeurs débutants avec les greffons Gecko puissent se familiariser avec les APIs certains aspects particuliers du processus de développement (e.g., {{ Npapi-page("Drawing and Event Handling") }}) mais aussi qu'ils accèdent rapidement aux caractéristiques matérielles de l'API dont ils ont besoin.</p>
<h3 name="Who_should_read_this_guide">À qui est destiné ce guide</h3>
<p>La documentation de l'API Greffons de Gecko est adaptée aux développeurs de greffons. Bien qu'elle en fournisse un aperçu élémentaire et leur fonctionnement au sein du navigateur, cette doc est faite pour que vous compreniez comment les greffons marchent, comment ils gèrent et affiche les médias, et l'architecture élémentaire que requiert un navigateur pour pouvoir les utiliser.</p>
<p>Ce guide suppose que vous sachiez utiliser des APIs, que vous ayez de l'expérience dans le développement de logiciels pour navigateurs comme des greffons, des composants ou des extensions, que vous soyez familiarisés avec C/C++ (le(s) langage(s) avec lequel la librairie a été créée et de tous les exemples).</p>
<h3 name="The_Plug-in_software_development_kit">Le kit de développement de greffons (SDK)</h3>
<p>Un kit de développement de greffons (SDK) est disponible pour les développeurs de greffons Gecko. Il se trouve dans les sources de Mozilla : {{ Source("modules/plugin/sdk/") }}. Vous pouvez l'utiliser depuis l'arborescence des sources Mozilla ou le compiler puis l'exploiter en dehors. Dans tous les cas, l'arbre des sources est requis pour commencer le développement de greffons. Vous pouvez aussi accéder aux exemples du SDK Greffons et leurs sources grâce à l'afficheur-web de sources : {{ Source("modules/plugin/sdk/") }}.</p>
<p>Ce SDK repose sur l'API développée à l'origine pour les navigateurs Netscape (2.x et supérieures). Plusieurs évolutions sont apparues avec Netscape 3.x puis Netscape 4.x. Le SDK actuel a subi d'autres modifications majeures relatives aux fondements du code de Mozilla : LiveConnect pour la scriptabilité des greffons n'est plus supportée, ceux existants doivent être légèrement modifiés pour être à nouveau scriptables ; les services du navigateur sont désormais accessibles aux greffons via le gestionnaire de services.</p>
<p>L'objectif du SDK est d'aider à la création de greffons généralisés pour leur exploitation par Mozilla sans pour autant avoir l'ensemble des sources de Mozilla présentes et compilées.</p>
<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1.7em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">Le répertoire Common contient des bouts d'implémentation des méthodes de la NPAPI. Il est inutile de modifier les fichiers qu'il contient, il suffit de les inclure dans vos projets. Ce n'est pas pour autant nécessaire, certains exemples ou greffons utilisent le propre implémentation, ces fichiers sont juste une illustration d'une possible manière de faire.</p>
<p>A l'heure actuelle, le répertoire samples contient les exemple de greffons suivant :</p>
<h5 name="Basic_plug-in">Greffon Basic</h5>
<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1.7em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">Il montre le squelette d'une librairie dynamique de greffon (so, dll, ...). Il ne fait rien de plus qu'un "Hello, World". Le greffon Basic illustre comment la librairie dynamique du greffon est invoquée et comment les méthodes NPAPI sont appelées. Il peut servir de modèle de base pour écrire vos propres greffons.</p><h5 name="Simple_plug-in">Greffon Simple</h5>
<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1.7em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">Cet exemple de greffon illustre certains traits du code de base de Mozilla. Il est scriptable via JavaScript et utilise les services fournis par le navigateur.</p>
<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1.7em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">Les interfaces XPCOM sont implémentées dans le greffon Simple donc le navigateur est conscient de ses capacités. Le greffon ne dessine pas dans la fenêtre native mais utilise à la place une boite JavaScript pour afficher ses résltats. Aussi, il n'y a pas de projets pour des plateformes différentes dans cet exemple.</p>
<h5 name="Simple_plug-in">Greffon Scriptable</h5>
<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1.7em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">C'est un autre exemple de greffon scriptable. Il implémente deux méthodes natives appelables depuis JavaScript et il dessine dans une fenêtre native. De plus, il utilise des projets différents selon les plateformes.</p>
<h5 name="Simple_plug-in">Greffon Windowless</h5>
<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1.7em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">Le greffon Windowless est un exemple n'utilisant pas le mécanisme de communication avec les fenêtres natives et n'échange qu'exclusivement via NPP_HandleEvent pour récupérer les messages de l'interface graphique (GUI) et dessiner, etc. Il dessine simplement un rectangle gris dans l'espace occupé.</p>
<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1.7em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">Les exemples de greffons scriptables nécessitent que vous génériez des librairies de type pour plateformes croisées (XPT) et les mettiez dans le répertoire Plugins de Mozilla avec les librairies dynamiques (Par contre, pour la rétrocompatibilité avec les versions pré-Mozilla 1.0 et Netscape 6.x, il faut placer les librairies de type (XPT) dans le dossier Components). Pour plus d'information sur les librairies de type et les chemins des greffons, allez voir {{ Npapi-section("Les Bases des Greffons", "Détection de Greffons") }}.</p>
<p>Pour s'assurer que Mozilla est conscient de nouveau fichiers .xpt, vous pouvez consulter le fichier généré xpti.dat où les librairies de type sont listées. Si besoin, vous pouvez appeler <code style="color: inherit; font-weight: inherit; ">navigator.plugins.refresh()</code> pour détecter de nouveaux XPT ou greffons.</p>
<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1.7em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">Les développeurs de greffons trouveront utile de désactiver le mécanisme de capture d'exceptions actuellement implémenté dans les fenêtres Mozilla pour le débeugage. Pour ce faire, ajoutez la ligne suivante dans votre fichier prefs.js :</p>
<pre class="eval" style="margin-top: 0px; margin-right: 0px; margin-bottom: 1.7em; margin-left: 0px; padding-top: 10px; padding-right: 10px; padding-bottom: 10px; padding-left: 10px; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(223, 236, 241); border-right-color: rgb(223, 236, 241); border-bottom-color: rgb(223, 236, 241); border-left-color: rgb(223, 236, 241); overflow-x: auto; overflow-y: auto; font: normal normal normal 12px/normal 'Courier New', 'Andale Mono', monospace; color: rgb(37, 34, 29); ">user_pref("plugin.dont_try_safe_calls", true);
</pre>
<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1.7em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">{{ Next("Gecko Plugin API Reference:Plug-in Basics") }}</p>
</div>
<p> </p>
<p>{{ languages( { "ja": "ja/Gecko_Plugin_API_Reference/Preface", "pl": "pl/Dokumentacja_wtyczek_Gecko/Przedmowa", "en": "en/Gecko_Plugin_API_Reference/Preface" } ) }}</p>
Revenir à cette révision