Modules
=======

Les modules complémentaires (*add-ons*) permettent aux développeurs d'ajouter et de modifier les fonctionnalités de Firefox. Les modules sont écrits à l'aide de technologies web standard : JavaScript, HTML, et CSS - et d'API JavaScript spécifiques à ces modules. Un module complémentaire peut, par exemple, être utilisé pour :

* Modifier l'apparence ou le contenu de certains sites web
* Modifier l'interface utilisateur de Firefox
* Ajouter de nouvelles fonctionnalités à Firefox

Il y a plusieurs types de modules complémentaires *(add-ons)*, mais le plus courant est l'extension.

Développer des modules complémentaires
--------------------------------------

Par le passé, il a existé différents outils et formats pour développer des modules complémentaires pour Firefox. Cependant,depuis Novembre 2017, les WebExtensions sont devenues le format standard. Les autres outils (le SDK Add-On par exemple) sont maintenant dépréciés.

En savoir plus à propos des WebExtensions

Si vous développez un nouveau module complémentaire, nous vous recommandons d'utiliser WebExtension.

Les extensions qui respectent le format WebExtensions de Firefox sont conçues pour pouvoir être utilisées sur différents navigateurs. Les extensions WebExtensions écrites pour Firefox fonctionneront pour la plupart dans Chrome, Edge et Opera, nécessitant peu, si ce n'est aucun changements. Elles sont également compatibles avec le mode multi-processus de Firefox.

Voici la liste des API actuellement prises en charge par Firefox et les autres navigateurs. Nous continuons à concevoir et à implémenter de nouvelles API afin de répondre aux besoins des développeurs.

La plupart des API utilisées pour WebExtension sont également disponibles pour Firefox pour Android.

### L'atelier des extensions Firefox *(Extension Workshop)*

L'atelier des extensions firefox *(Extension Workshop)* est utile pour aider à développer une extension pour Firefox en offrant à l'utilisateur une façon simple et efficace de personnaliser sa navigatrion sur internet. On peut notamment y trouver :

* Une vue d'ensemble des fonctionnalités des extensions Firefox
* Les outils et les procédés pour développer et tester son application
* Comment publier son extensions sur addons.mozilla.org et la distribuer
* Comment gérer son extension, une fois celle-ci publiée
* Guide pour développer et utiliser une extension pour les entreprises
* Comment développer un thème pour Firefox
* La communauté de Firefox (Firefox Community)
### Les extensions pour Firefox pour Android

En 2020, Mozilla sortira une nouvelle expérience Firefox pour Android. Le nouveau Firefox ultra-performant pour Android a été entièrement repensé avec GeckoView, le nouveau moteur de rendu pour mobiles de Mozilla. Nous travaillons actuellement à la création d'un support pour WebExtensions sur GeckoView.

### Migrer un module existant

Si vous maintenez un module complémentaire historique utilisant XUL ou le SDK Add-on, nous vous recommandons de le porter vers une extension WebExtensions. Voici quelques ressources MDN à propos du portage d'extension.

Nous avons rassemblé un ensemble de ressources sur un page wiki afin d'aider les développeurs pendant cette phase de transition. Pour commencer, vous pouvez utiliser l'outil Lookup afin de détecter si votre module complémentaire est impacté.

Publier des modules
-------------------

addons.mozilla.org, aussi appelé AMO, est le site officiel de Mozilla sur lequel sont publiés les modules complémentaires et que les utilisateurs peuvent parcourir pour découvrir de nouveaux modules. Publier un module complémentaire sur AMO permet d'entretenir la communauté d'utilisateurs et de créateurs de modules. C'est également une ressource essentielle pour qu'un module puisse être découvert.

Il n'est pas nécessaire que votre module soit publié sur AMO. En revanche, votre module doit être signé par Mozilla afin que les utilisateurs puissent l'installer.

Dans cet article, vous trouverez différentes informations relatives au processus de publication de son module.

Les autres types de modules
---------------------------

Généralement, lorsqu'on évoque les modules complémentaires, on parle des extensions. Ceci étant dit, il existe d'autres types de modules qui permettent aux utilisateurs de personnaliser Firefox. Ces modules peuvent être :

* Des thèmes légers : un outil simple qui permet de personnaliser Firefox de façon limitée
* Les modules mobiles : des modules complémentaires destinés à Firefox pour Android. Attention, certaines des API utilisées pour ces modules sont dépréciées (ou le seront dans un avenir proche). Par la suite, Firefox pour Android prendra pleinement en charge le format WebExtension
* Des plugins pour les moteurs de recherche qui permettent d'ajouter de nouveaux moteurs de recherche à la barre de recherche du navigateur
* Des dictionnaires utilisateur qui permettent d'utiliser la vérification orthographique dans différentes langues
* Des packs de langues qui permettent de traduire l'interface de Firefox dans plus de langues.
Nous contacter
--------------

Vous pouvez utiliser les liens qui suivent pour demander de l'aide, être tenu-e informé-e des actualités concernant les modules complémentaires et nous fournir vos retours.

### Forum

Le forum Discourse dédié aux modules complémentaires est un lieu où discuter du développement de modules complémentaires et où demander de l'aide.

### Liste de diffusion

La liste de diffusion **dev-addons** (anglophone) est utilisée afin de discuter du développement des modules complémentaires et de leur environnement. Les thèmes abordés incluent le format WebExtensions et AMO (https://addons.mozilla.org) :

* Informations sur la liste dev-addons
* Archives de la liste dev-addons
### IRC

Si vous utilisez IRC, vous pouvez utiliser ces canaux (anglophones) :

* #addons (discussions sur l'écosystème des modules complémentaires)
* #extdev (discussions sur le développement des modules complémentaires)
* #webextensions (discussion sur les modules de type WebExtensions)