Talk made at meetup Mozilla Paris octobre 2017 by Christophe Villeneuve on "Introduction aux webExtensions".
La présentation a pour but d'aider à mieux appréhender ces nouvelles extensions, les impacts et les possibilités offertes dans le navigateur, les emplacements disponibles, le tout cadencé de cas exemples.
5. .
Rappel : Une extension ? (1/2)
●
Modules complémentaires au navigateur
●
Amélioration du navigateur
●
Fait partie de Firefox depuis l'origine
6. .
Rappel : Une extension ? (2/2)
●
Les projets Web
→ montrent l’importance des extensions dans Firefox
●
Important de montrer les API sont puissants
– 40 % des utilisateurs ont des extensions
– 32 000 modules complémentaires
– 19 000 développeurs d'extensions
– 15 millions d'utilisateurs mensuels sur Mozilla Add-ons
(AMO)
7. .
Roadmap
●
Firefox 48 : Release stable
– SDK avec extension WebExtensions déjà disponible
●
Firefox 53 : Conteneurs sécurisés
– Seulement WebExtensions accepté sur addons.mozilla.org
●
Firefox 57 – 14 novembre
– Uniquement WebExtension pour Firefox
– API du système de fichier
– Barre latérale et autres API d'élément d'interface utilisateur
– Expériences WebExtension pour créer de nouvelles API
14. .
Interface utilisateur (3/
Address bar suggestions (Suggestions
de la barre d'adresse)
Notifications (Notifications)
Bundled web pages (Page web
incluses)
17. .
Avant : XUL / XPCOM
●
XUL est une technologie XML
– Utilisée pour l'interface Firefox
●
XPPCOM est une structure JavaScript
– Interagir avec XUL
– Avec une API différente de la classique HTML5
●
Le développeur web doit respecter ces technologies
→ HTML classique, CSS, Javascript
●
Aujourd'hui
– Ne répond plus au attente
– Mises à jour / révisions… trop long
18. .
Les WebExtensions
●
Créer une API robuste
●
Parité avec extensions chrome api
●
Documentation
●
Prise en charge de Firefox pour Android
●
Technologie standard
24. .
Anatomie
Intéragir avec les pages Web
Contexte page
Bouton dans la barre d'outils
Bouton à la barre d'adresse
Définir une interface utilisateur
Contenu packagé accessible
25. .
Manifest.json (1/2)
●
Carte identité d'une extension
●
Script au format jSON
●
https://developer.mozilla.org/fr/Add-ons/WebExtensions
{
"manifest_version": 2,
"name": "Intro WebExtensions",
"version": "2.0",
"description": "The WebExtensions",
"icons": {
"19": "icons/icon-19.png",
"48": "icons/icon-48.png"
},
}
27. .
Manifest : Anatomie (1/7)
●
Script d'arrière plan
●
Indépendant
– Des pages web
– Fenêtres du navigateur
●
Exécuter dès que l'extension
est chargée
●
Permissions nécessaires
Background page
29. .
Manifest : Anatomie (2/7)
●
Scripts de contenu
●
Accéder et manipuler les
pages Web
●
Fonctionnement :
– Charger dans les pages Web
– Exécuter dans le contexte de
page particulière
●
Possible
– Manipuler le DOM de la
page
Background page
Content scripts
34. .
Manifest : Anatomie (4/7)
●
Action dans la barre de
navigation
●
Affiche sur un onglet activé
●
Action pas toujours
nécessaire
Background page
Content scripts
Browser action
Page action
40. .
Manifest : Anatomie (7/7)
●
Ressources incluses dans
l'extension (ex : images)
●
Accessible par
– Scripts de contenu
– Scripts de pages
●
Web-accessible
●
Utilisation d'un schéma URI
spécial
Background page
Content scripts
Browser action
Page action
Option page
Slide bar
Ressource
41. .
Ressources
●
Plus de 40 API en exemple
https://github.com/mdn/webextensions-examples
●
Documentation (MDN) en Anglais
– https://developer.mozilla.org/en-US/Add-ons/WebExtensions
●
Documentation (MDN) en Français
– https://developer.mozilla.org/fr/Add-ons/WebExtensions
●
Actualité Add-ons
– https://blog.mozilla.org/addons/
●
Actualité communauté
– https://blog.mozfr.org