Présentation effectuée pour Root66 sur le thème "Utiliser et ameliorer firefox avec les webextensions" par Christophe Villeneuve .
La conférence donne une situation globale des WebExtensions, des possibilités d'interrargir avec le navigateur et les différentes API
7. Root66 -
Depuis le lancement
● 1ère étape : compatibilité avec Chrome
– Atteint le niveau de compatibilité pertinante
● 99% des 100 meilleurs API
● 91% des 250 meilleurs API
● 2ème étape : Au delà de Chrome
– API les onglets contextuels
● Ex : Facebook container
– API afficher / cacher les onglets
● Ex : session MGMT, groupes d'onglets...
– API thème
– ...
8. Root66 -
Croissance des extensions
● Firefox 57
– 6 589 WebExtensions
● Firefox 62
– 13 655 WebExtensions
https://addons.mozilla.org/en-US/firefox/tag/firefox57
14 novembre 2017
20 octobre 2018
12. Root66 -
Firefox 63
● 23 octobre 2018
● Important pour les WebExtensions
● Evolutions des API
– Presse-papiers (Clipboard API)
– Sélection de plusieurs onglets (Tabs API)
– Moteur de recherche (Search API)
– Thème (theme API)
– Onglet contextuelle (Menus API)
– Type de connexion (WebRequest & Proxy)
14. Root66 -
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
15. Root66 -
Les WebExtensions
● Créer une API robuste
● Parité avec extensions chrome api
● Documentation
● Prise en charge de Firefox pour Android
● Technologie standard
19. Root66 -
Interface utilisateur (3/
Address bar suggestions (Suggestions
de la barre d'adresse)
Notifications (Notifications)
Bundled web pages (Page web
incluses)
21. Root66 -
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
36. Root66 -
Thèmes statiques (2/
● Personas Plus → Firefox Color
– https://testpilot.firefox.com/experiments/color
37. Root66 -
Thème dynamiques
● Les permissions d'hôte = URL
*://developer.mozilla.org/*
● Les permissions API
– Associés à une autre API (Alarms, background...)
● La permission activeTab
– Onglet actif
38. Root66 -
Exemple par le code
{
"colors": {
"accentcolor": "tomato",
"textcolor": "white",
"toolbar": "#444",
"toolbar_text": "lightgray",
"toolbar_field": "black",
"toolbar_field_text": "white"
}
"images": {
"headerURL": "img/header.jpg"
}
}
42. Root66 -
Exemple : Effet jour : nuit
● API WebExtensions utilisées
– Windows
– Alarms
Quantum Lights
Extension : Quantum Lights
43. Root66 -
Containers
● = onglets contextuels
● Ceux sont :
– Onglets normaux
– Accès à une portion limitée de stockage
● Vos sessions enregistrées
– pas de pistages des données
● Aucun contenu externe ne sera importé
– Ex : Facebook container
44. Root66 -
Exemple : Container visible
● API WebExtensions utilisées
– contextualIdentities
– Windows
– Tabs
Extension : Containers Theme
51. Root66 -
Confiance aux WebExtensions (1/
● Demandes aux accès spéciaux de l’extension
● Déclaration dans manifest.json
● La clé peut contenir plusieurs types
d'autorisations
"permissions": [
"*://developer.mozilla.org/*",
"webRequest"
]
https://developer.mozilla.org/fr/Add-ons/WebExtensions/manifest.json/permissions
52. Root66 -
Confiance aux WebExtensions (2/
● La permission d’hôte
● Les permissions API
"*://developer.mozilla.org/*"
activeTab
alarms
bookmarks
browsingData
contextMenus
contextualIdent
ities
Cookies
downloads
downloads.open
history
identity
idle
management
NativeMessaging
notifications
proxy
sessions
search
storage
tabs
topSites
webNavigation
webRequest
webRequestBlocking
53. Root66 -
Confiance aux WebExtensions (3/
● La permission activeTab
– Spécifique aux onglets
– Utilisation interaction utilisateur
● Background, Browser Action, Page Action…
● Accès aux presse-papiers
– Interagir avec le presse papiers
"permissions": ["tabs"]
"permissions": [
"*://developer.mozilla.org/*",
"tabs"]
ou
56. Root66 -
Portage d'une extension Google Chrome
https://developer.mozilla.org/fr/Add-ons/WebExtensions/Porting_a_Google_Chrome_extension
57. Root66 -
Portage d'une ancienne extension
https://developer.mozilla.org/fr/Add-ons/WebExtensions/Portage_d_une_extension_Firefox_heritee
58. Root66 -
Ressources
● Plus de 60 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