Les extensions peuvent étendre et modifier les capacités d'un navigateur. Les extensions pour Firefox sont construites en utilisant l'API WebExtensions, un système de navigation croisée pour le développement d'extensions. Dans une large mesure, le système est compatible avec l' API d'extension supportée par Google Chrome et Opera et le W3C Draft Community Group.
Les extensions écrites pour ces navigateurs fonctionneront dans la plupart des cas dans Firefox ou Microsoft Edge avec seulement quelques changements. L'API est également entièrement compatible avec Firefox multiprocessus.
Si vous avez des idées ou des questions, ou si vous avez besoin d'aide pour migrer un add-on existant pour utiliser les API WebExtensions, vous pouvez nous joindre sur la liste de diffusion dev-addons ou #webextensions sur IRC.
Démarrage
- Que sont les WebExtensions ?
- Votre première WebExtension
- Votre seconde WebExtension
- Anatomie d'une WebExtension
- Aperçu du flux de travail Firefox
- Exemples de WebExtensions
- Que faire ensuite ?
Concepts
- Utilisation des API JavaScript
- Scripts de contenu
- Motifs (Match patterns)
- Travailler avec les fichiers
- Internationalisation
- Bonnes pratiques de sécurité
- Politique de sécurité du contenu
- Messages natifs
- Utilisation des API devtools
- Manifests Natif
- Actions utilisateur
- Bonnes pratiques en matière de prolongation du cycle de vie
Interface utilisateur
- Introduction
- Bouton de la barre d'outils
- Bouton de la barre d'outils avec un popup
- Bouton de la barre d'adresse
- Bouton de la barre d'adresse avec un popup
- Elements du menu contextuel
- Barres laterales
- Options page
- Extension pages
- Notifications
- Suggestions de la barre d'adresse
- Panneaux devtools de développement
- Styles des navigateurs
Mode d'emploi
- Intercepter les requêtes HTTP
- Modifier une page web
- Ajouter un bouton à la barre d'outils
- Mettre en place une page de paramètres
- Interagir avec le presse-papier
- Travailler avec l'API Tabs
- Travailler avec l'API Bookmarks
- Travailler avec l'API Cookies
- Travailler avec des identités contextuelles
- Travailler avec userScripts
- Insérer un contenu externe
Portage
- Différenciateurs Firefox
- Porter une extension Google Chrome
- Porter une ancienne extension Firefox
- Développer pour Firefox pour Android
- Développer pour Thunderbird
- WebExtensions intégrées
- Comparaison avec le Add-on SDK
- Comparaison avec les extensions XUL/XPCOM
- Incompatibilités avec Chrome
- Différence entre le bureau et l'Android
- Différences entre les implémentations d'API
Déroulement avec Firefox
- Interface utilisateur
- Installation
- Débogage
- Test des fonctionnalités persistantes et de redémarrage
- Démarrer avec web-ext
- Détail de la commande web-ext
- Les WebExtensions et l'ID Add-on
- Options de distribution
- Demander les bonnes permissions
- Partage d'objets avec des scripts de page
- Retrait de votre extension
- Trucs et astuces
- Publier votre WebExtension
- Outils de développement d'extension de navigateur
Références
Les APIs JavaScript
- Approvisionnement PKCS
- alarms
- bookmarks
- browserAction
- browserSettings
- browsingData
- clipboard
- commands
- contentScripts
- contextualIdentities
- cookies
- devtools.inspectedWindow
- devtools.network
- devtools.panels
- dns
- downloads
- events
- extension
- extensionTypes
- find
- history
- i18n
- identity
- idle
- management
- menus
- notifications
- omnibox
- pageAction
- permissions
- privacy
- proxy
- runtime
- search
- sessions
- sidebarAction
- storage
- tabs
- theme
- topSites
- types
- userScripts
- webNavigation
- webRequest
- windows
Clés de Manifest
- author
- background
- browser_action
- browser_specific_settings
- chrome_settings_overrides
- chrome_url_overrides
- commands
- content_scripts
- content_security_policy
- default_locale
- description
- developer
- devtools_page
- dictionaries
- externally_connectable
- homepage_url
- icons
- incognito
- manifest_version
- name
- offline_enabled
- omnibox
- optional_permissions
- options_page
- options_ui
- page_action
- permissions
- protocol_handlers
- short_name
- sidebar_action
- theme
- theme expérimentation
- user_scripts
- version
- version_name
- web_accessible_resources