Qu'est-ce qu'une extension Firefox ?
Les extensions ajoutent de nouvelles fonctionnalités à des applications Mozilla telles que Firefox et Thunderbird. Elles peuvent ajouter n'importe quoi depuis le bouton d'une barre d'outils à une fonctionnalité entièrement nouvelle. Ils permettent à l'application d'être personnalisée pour répondre aux besoins personnels de chaque utilisateur en fonctionnalités supplémentaires, tout en gardant des applications légères à télécharger.
Telle que décrit dans le texte cité, une extension est une petite application qui ajoute quelque chose de nouveau à une ou plusieurs applications Mozilla. Ce tutoriel se concentre sur des extensions pour Firefox, mais les mêmes (ou très similaires) principes s'appliquent à la création d'extensions pour d'autres applications comme Thunderbird, SeaMonkey, et Flock.
Il est également intéressant de noter qu'il existe des différences entre la définition d'extension et de module complémentaire. Toutes les extensions sont des modules complémentaires, mais des modules complémentaires peuvent également être des thèmes, des plugins, ou paquetages de langue. Ce tutoriel porte sur le développement d'extensions, mais les thèmes et les paquetages de langues sont développés de manière très similaire. Les plugins sont tout à fait différents, et ils ne seront pas abordés dans ce tutoriel. Vous pourrez en savoir plus sur les plugins et leur développement dans la page Plugins.
Firefox fournit une architecture très riche et flexible qui permet aux développeurs d'extensions d'ajouter des fonctionnalités avancées, de personnaliser l'expérience de l'utilisateur, et de remplacer ou d'enlever complètement des parties de votre navigateur. Le référentiel Mozilla Add-ons (AMO) regroupe un grand nombre d'extensions ayant une grande variété de fonctions : le filtrage de contenu (AdBlock Plus, NoScript), l'interaction d'application Web (Delicious Bookmarks, eBay Companion), le développement Web (DOM Inspector, Firebug) et la protection de l'enfance (Glubble pour les familles). Il s'agit d'extensions très avancées et complexes, et vous apprendrez plus qu'il n'en faut pour créer des extensions comme celles-ci (Glaxstar participe à 3 de celles qui sont énumérées).
Nous commencerons par examiner une extension très simple.
L'extension Hello World
Nos exemples d'extensions et ce tutoriel sont en général destinés à la version Firefox 3 et plus, mais la plupart fonctionne aussi sur les versions précédentes de Firefox. Nous essaierons de le préciser lorsque nous discuterons d'une fonction qui ne fonctionne que sur certaines versions de Firefox.
Nous allons maintenant commencer par une extension basique "Hello World". Commençons par l'installation de l'extension. Cliquez sur le lien ci-dessous.
L'extension suivante servant d'exemple n'est pas signée numériquement. Pour pouvoir l'activer, vous devez disposer de Firefox Developer Edition et désactiver le controle de la signature numérique.
Ce lien déclenchera une installation ou un téléchargement de fichier, en fonction du Content-type utilisé par le serveur Web. Le type de contenu approprié pour déclencher une installation est application/x-xpinstall. Dans ce cas, un téléchargement de fichier doit se produire.
Si le type de contenu est défini correctement, vous serez informé que le site n'est pas autorisé à installer des modules complémentaires sous Firefox. Il s'agit d'une mesure de sécurité qui empêche des sites d'installer des extensions sans le consentement de l'utilisateur. Cela est nécessaire car les extensions malveillantes peuvent avoir le même niveau de dommage que tout programme malveillant : le vol de données, l'effacement ou le remplacement des fichiers, et entraîner des comportements indésirables en général. AMO est le seul site de pré-autorisés car tous les modules complémentaires publiés sur l'AMO sont passés par un processus d'examen qui comprend des contrôles de sécurité.
Après avoir téléchargé le fichier, vous pouvez le faire glisser et le déposer dans la zone de contenu Firefox, et l'installation devrait commencer.
Vous verrez une fenêtre vous indiquant que vous êtes sur le point d'installer une extension, avec quelques informations supplémentaires telles que le nom de son auteur. Vous verrez un message disant que l'auteur ne peut être vérifié. Seules les extensions signées avec un certificat numérique peuvent être authentifiées. Les extensions signées sont rares, mais nous allons aborder la façon de les signer plus tard.
Cliquez sur le bouton Installer maintenant. Après que l'extension soit installée, il vous sera demandé de redémarrer Firefox. L'installation, la désinstallation, l'activation et la désactivation des modules complémentaires (exceptés les plugins) nécessitent un redémarrage pour terminer, et il n'y a pas d'autre moyen de faire. C'est un point important à garder à l'esprit si vous construisez une extension qui manipule les autres extensions ou des thèmes. Il y a un bug très ancien qui permet de suivre cette question.
Maintenant, après le redémarrage du navigateur, vous verrez la fenêtre du Gestionnaire de modules complémentaires, montrant le nom de l'extension, sa version, et une brève description.
Fermez le Gestionnaire de modules complémentaires. Regardez la fenêtre principale de Firefox et voyez si vous remarquez quelque chose de différent.
L'avez-vous vu ? Il y a un nouveau menu dans la barre de menu principal, intitulé «Hello World!». Si vous ouvrez le menu, puis la sélection du menu surgissant, vous verrez un chouette message d'alerte. Cliquez sur le bouton OK pour le fermer.
C'est tout ce que l'extension fait. Maintenant, nous allons y regarder de plus près.
Contenus d'une extension
Vous avez peut être remarqué que le fichier de l'extension que vous avez installé est nommé xulschoolhello1.xpi. XPI (prononcez "zippy") est synonyme de d'installeur multi plate-formes (NdT : Cross-Platform Installer), car le même fichier d'installation peut fonctionner sur les principales plates-formes, et c'est le cas pour la plupart des extensions XPI. Les fichiers XPI sont tout simplement des fichiers compressés au format ZIP, mais Firefox les reconnaît comme extension et déclenche le processus d'installation quand un lien XPI est cliqué.
Pour regarder dans le fichier XPI, vous avez besoin de le télécharger d'abord sans l'installer. Si le serveur déclenche une installation en cliquant sur un lien ou sur un bouton, vous devez faire un clic droit sur le lien d'installation, puis cliquez sur l'option Enregistrer le lien sous….
Ensuite, nous allons décompresser le fichier XPI. Une façon de faire est de renommer le fichier afin qu'il ait l'extension zip au lieu de xpi. Une autre façon est d'ouvrir le fichier en utilisant un utilitaire ZIP. La plupart des systèmes d'exploitation dispose d'un utilitaire de compression ZIP, et il existe des outils plus avancés disponibles en ligne. Faites votre choix, et décompressez le fichier dans un emplacement qui vous convient. Vous devriez voir une structure similaire à celle-ci :
xulschoolhello1
-
- chrome.manifest
- install.rdf
- chrome
- xulschoolhello.jar
Le fichier JAR contient la majorité du code, alors nous devrons également en extraire son contenu. Tout comme pour les XPI, vous n'avez besoin que d'un utilitaire ZIP pour décompresser le fichier. Après avoir fait cela, vous aurez quelque chose comme ceci :
xulschoolhello1
-
- chrome.manifest
- install.rdf
- chrome
- xulschoolhello.jar
- xulschoolhello
- content
- browserOverlay.xul
- browserOverlay.js
- locale
- en-US
- browserOverlay.dtd
- browserOverlay.properties
- en-US
- skin
- browserOverlay.css
- content
Cela fait beaucoup de fichiers pour quelque chose de si simple ! Eh bien, rassurez-vous, nous allons bientôt détailler tous ces fichiers et réaliser que c'est assez simple. Dans la section suivante nous allons examiner ces fichiers et voir ce qu'ils font.
This tutorial was kindly donated to Mozilla by Appcoast.