SlideShare a Scribd company logo
1 of 40
Download to read offline
Les écrans animés
dans les navigateurs
@hellosct1
@hellosct1@mamot.fr
Cookie Partie 9 décembre 2017
Christophe Villeneuve
Hello / Sector one
.Cookie Party 2017 -
Tag : mozilla reps - firefox - B2GOS - ausy - afup – lemug.fr – mysql –
mariadb – drupal – demoscene – addons - WebExtensions – drupagora –
phptour – forumphp – linux magazine - Libre@toi – eyrolles – editions eni
– programmez – linux pratique – webriver – phptv – elephpant - owasp -
security
Qui ???
Christophe
Villeneuve
Contributeur / Réalisation
Contributor / Realization
.Cookie Party 2017 -
Today...
●
Are you ready !!!
●
The Add-ons compatibility
●
And the next
.Cookie Party 2017 -
Firefox ‘Quantum’ 57
Le partage
.Cookie Party 2017 -
Les WebExtensions
●
Créer une API robuste
●
Parité avec extensions chrome api
●
Documentation
●
Prise en charge de Firefox pour Android
●
Technologie standard 
.Cookie Party 2017 -
Compatibilité
●
Edge / Opera / Chrome / Firefox
●
Compatible Qtwebkit
Demo : Screen Saver
https://addons.mozilla.org/fr/firefox/addon/screen-saver/
.Cookie Party 2017 -
Economisateur d’écran
●
Proposé par la WebExtension
●
Le votre : Personnalisé
.Cookie Party 2017 -
Interface utilisateur (1/
L'utilisation d'une extension s'effectue par...
Page action (bouton barre d'adresse)
Browser action (bouton barre d'outils)
.Cookie Party 2017 -
Interface utilisateur (2/
Sidebar (barre latérale)
Context menu items (Elément du
menu contextuel)
.Cookie Party 2017 -
Interface utilisateur (3/
Address bar suggestions (Suggestions
de la barre d'adresse)
Notifications (Notifications)
Bundled web pages (Page web
incluses)
.Cookie Party 2017 -
Interface utilisateur (4/
Developer tools panels (Panneaux
d'outils de développement)
Options page (Page d'options)
.Cookie Party 2017 -
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
.Cookie Party 2017 -
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": "WebExtensions",
"version": "2.0",
"description": "The WebExtensions",
"icons": {
"19": "icons/icon-19.png",
"48": "icons/icon-48.png"
},
}
.Cookie Party 2017 -
Manifest.json (2/2)
●
Permission
"permissions": [
"*://developer.mozilla.org/*",
"webRequest"
]
activeTab
alarms
bookmarks
browsingData
contextMenus
contextualIdentities
cookies
downloads
downloads.open
history
identity
idle
management
nativeMessaging
notifications
sessions
storage
tabs
topSites
webNavigation
webRequest
webRequestBlocking
.Cookie Party 2017 -
Manifest : Anatomie (1/6)
●
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
.Cookie Party 2017 -
Background : Exemple
// manifest.json
"background": {
"scripts": [
"loader.js",
"loader_anim.js",
]
}
Possible
"scripts": ["loader.html"]
.Cookie Party 2017 -
Manifest : Anatomie (2/6)
●
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
.Cookie Party 2017 -
Content scripts : Exemple (1/2)
// manifest.json
"content_scripts": [{
"matches": [
"*://mozilla.com/*",
"*://votreURL.org/*",
"*://localhost/*"
],
"js": [
"js/injection-demo.js"
]
}],
.Cookie Party 2017 -
Content scripts : Exemple (2/2)
// manifest.json
"content_scripts": [{
"matches": [
"<all_urls>"
],
"exclude_matches": [
"*://www.mozilla.org/*",
"*://*.votreURL.org/*"
],
"js": [
"background/all-sites.js"
]
}],
.Cookie Party 2017 -
Manifest : Anatomie (3/6)
●
Action du navigateur
<> des navigateurs
●
Accès par un icône
– Barre d'outils navigateur
●
Possible de définir
– Fenêtre contextuelle
●
Langage :
– HTML / CSS / JS
Background page
Content scripts
Browser action
.Cookie Party 2017 -
Browser action : Exemple
// manifest.json
"browser_action": {
"default_icon": {
"19": "button/geo-19.png",
"38": "button/geo-38.png"
},
"default_title": "Whereami?",
"default_popup": "popup/popup.html"
}
.Cookie Party 2017 -
Manifest : Anatomie (4/6)
●
Action dans la barre de
navigation
●
Affiche sur un onglet activé
●
Action pas toujours
nécessaire
Background page
Content scripts
Browser action
Page action
.Cookie Party 2017 -
Page action : Exemple
// manifest.json
"page_action": {
"browser_style": true,
"default_icon": {
"19": "button/geo-19.png",
"38": "button/geo-38.png"
},
"default_title": "Whereami?",
"default_popup": "popup/popup.html"
}
.Cookie Party 2017 -
Manifest : Anatomie (5/6)
●
Définir des préférences en
plus
●
Accès par les add-ons du
navigateur
●
Paramètres mémorisés
Background page
Content scripts
Browser action
Page action
Option page
.Cookie Party 2017 -
Option page : Exemple
// manifest.json
"options_ui": {
"page": "options.html"
},
.Cookie Party 2017 -
Manifest : Anatomie (6/6)
●
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
Ressource
.Cookie Party 2017 -
Incompatibilités API Javascript
Source : https://developer.mozilla.org/en-US/Add-ons/WebExtensions/Browser_support_for_JavaScript_APIs
Expérimental
.Cookie Party 2017 -
Barre latérale (Slide Bar)
●
Action barre latérale
●
Action du navigateur
<> des navigateurs
●
Accès par un icône
●
Langage :
– HTML / CSS / JS
anim1
.Cookie Party 2017 -
Ressource : Exemple
// manifest.json
"slidebar_action": [
"default_icon" : "icons/icon.png",
"default_title" : "barre verticale",
"default_panel": "slidebar/anim-feu.html"
], Sidebar (barre latérale)
.Cookie Party 2017 -
DevTools
●
Anciennement
– Firebug
●
API
anim2
.Cookie Party 2017 -
Ressource : Exemple
// manifest.json
"devtools_page": "devtools/devtools-page.html",
Developer tools panels (Panneaux
d'outils de développement)
.Cookie Party 2017 -
Thème
●
Thème
●
Firefox 58 et +
anim3
.Cookie Party 2017 -
Ressource : Exemple
// manifest
"theme":
{
"images":
{
"headerURL": "background.png",
"additional_backgrounds": [ "atari.svg","atari2.svg"]
},
"properties":
{
"additional_backgrounds_alignment": [ "right top", "right top" ],
"additional_backgrounds_tiling": [ "repeat" ]
},
"colors": { "accentcolor": "#ffAA00", "textcolor": "#0099FF", }
},
.Cookie Party 2017 -
Ressource : Exemple 2 : Animation
●
Animation d’un thème
●
SVG animé
●
Firefox 59 et +
●
Animation disponible
https://github.com/hellosct1/theme-animation
.Cookie Party 2017 -
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
.Cookie Party 2017 -
Et pour terminer
●
Un écran animé de greetings dans le navigateur
.Cookie Party 2017 -
Merci
Questions
Christophe Villeneuve
@hellosct1

More Related Content

What's hot

Firefox OS 1.1 L'autre systeme pour smartphone
Firefox OS 1.1 L'autre systeme pour smartphoneFirefox OS 1.1 L'autre systeme pour smartphone
Firefox OS 1.1 L'autre systeme pour smartphoneChristophe Villeneuve
 
Développer une application Chrome avec AngularJs (Google Développers Group Sa...
Développer une application Chrome avec AngularJs (Google Développers Group Sa...Développer une application Chrome avec AngularJs (Google Développers Group Sa...
Développer une application Chrome avec AngularJs (Google Développers Group Sa...DEFO KUATE Landry
 
Haxe, le graal du développeur touche-à-tout
Haxe, le graal du développeur touche-à-toutHaxe, le graal du développeur touche-à-tout
Haxe, le graal du développeur touche-à-toutFrançois Barbut
 

What's hot (6)

Le portage des WebExtensions
Le portage des WebExtensionsLe portage des WebExtensions
Le portage des WebExtensions
 
Firefox OS 1.1 L'autre systeme pour smartphone
Firefox OS 1.1 L'autre systeme pour smartphoneFirefox OS 1.1 L'autre systeme pour smartphone
Firefox OS 1.1 L'autre systeme pour smartphone
 
Développer une application Chrome avec AngularJs (Google Développers Group Sa...
Développer une application Chrome avec AngularJs (Google Développers Group Sa...Développer une application Chrome avec AngularJs (Google Développers Group Sa...
Développer une application Chrome avec AngularJs (Google Développers Group Sa...
 
Navigateurs alternatifs de Comodo
Navigateurs alternatifs de ComodoNavigateurs alternatifs de Comodo
Navigateurs alternatifs de Comodo
 
Firefox extensions vpdf
Firefox extensions vpdfFirefox extensions vpdf
Firefox extensions vpdf
 
Haxe, le graal du développeur touche-à-tout
Haxe, le graal du développeur touche-à-toutHaxe, le graal du développeur touche-à-tout
Haxe, le graal du développeur touche-à-tout
 

Similar to Les écrans animés dans les navigateurs

Habillez votre navigateur avec les webextensions
Habillez votre navigateur avec les webextensionsHabillez votre navigateur avec les webextensions
Habillez votre navigateur avec les webextensionsChristophe Villeneuve
 
Confoo - 2012-02-27 au 2012-02-28 - HTML5 workshop
Confoo - 2012-02-27 au 2012-02-28 - HTML5 workshopConfoo - 2012-02-27 au 2012-02-28 - HTML5 workshop
Confoo - 2012-02-27 au 2012-02-28 - HTML5 workshopFrédéric Harper
 
L'histoire d'html5 pour les développeurs windows phone 8
L'histoire d'html5 pour les développeurs windows phone 8L'histoire d'html5 pour les développeurs windows phone 8
L'histoire d'html5 pour les développeurs windows phone 8davrous
 
La boîte à outils de développements dans Firefox
La boîte à outils de développements dans FirefoxLa boîte à outils de développements dans Firefox
La boîte à outils de développements dans FirefoxChristophe Villeneuve
 
RMLL 2011 - L'accessibilité Web des CMS
RMLL 2011 - L'accessibilité Web des CMSRMLL 2011 - L'accessibilité Web des CMS
RMLL 2011 - L'accessibilité Web des CMSYannick Pavard
 
Rendre son CMS conforme au SGQRI 008 en 20 étapes
Rendre son CMS conforme au SGQRI 008 en 20 étapesRendre son CMS conforme au SGQRI 008 en 20 étapes
Rendre son CMS conforme au SGQRI 008 en 20 étapesConFoo
 
L'accessibilité en 20 étapes pour TYPO3 et Wordpress
L'accessibilité en 20 étapes pour TYPO3 et WordpressL'accessibilité en 20 étapes pour TYPO3 et Wordpress
L'accessibilité en 20 étapes pour TYPO3 et WordpressYannick Pavard
 
Utiliser et ameliorer firefox avec les webextensions
Utiliser et ameliorer firefox avec les webextensionsUtiliser et ameliorer firefox avec les webextensions
Utiliser et ameliorer firefox avec les webextensionsChristophe Villeneuve
 
Mobiz - 2012-11-15 - HTML5, une révolution à plusieurs niveaux
Mobiz - 2012-11-15 - HTML5, une révolution à plusieurs niveauxMobiz - 2012-11-15 - HTML5, une révolution à plusieurs niveaux
Mobiz - 2012-11-15 - HTML5, une révolution à plusieurs niveauxFrédéric Harper
 
Outils Indispensables pour vs navigateurs web
Outils Indispensables pour vs navigateurs webOutils Indispensables pour vs navigateurs web
Outils Indispensables pour vs navigateurs webYannick Pavard
 
Les extensions Firefox et Google Chrome pour naviguer efficacement
Les extensions Firefox et Google Chrome pour naviguer efficacementLes extensions Firefox et Google Chrome pour naviguer efficacement
Les extensions Firefox et Google Chrome pour naviguer efficacementURFIST de Paris
 
Nouveautés 2009
Nouveautés 2009Nouveautés 2009
Nouveautés 2009XWiki
 
Construire une PWA connectée à WordPress
Construire une PWA connectée à WordPressConstruire une PWA connectée à WordPress
Construire une PWA connectée à WordPressBenjamin LUPU
 
[AzureCamp 24 Juin 2014] Azure Media Services par Xavier Pouyat
[AzureCamp 24 Juin 2014] Azure Media Services par Xavier Pouyat[AzureCamp 24 Juin 2014] Azure Media Services par Xavier Pouyat
[AzureCamp 24 Juin 2014] Azure Media Services par Xavier PouyatMicrosoft Technet France
 
Introduction au développement windows 8 modern ui avec html5 et javascript
Introduction au développement windows 8 modern ui avec html5 et javascriptIntroduction au développement windows 8 modern ui avec html5 et javascript
Introduction au développement windows 8 modern ui avec html5 et javascriptdavrous
 
Introduction au développement Windows 8 ModernUI avec HTML5 et JavaScript
Introduction au développement Windows 8 ModernUI avec HTML5 et JavaScriptIntroduction au développement Windows 8 ModernUI avec HTML5 et JavaScript
Introduction au développement Windows 8 ModernUI avec HTML5 et JavaScriptMicrosoft
 

Similar to Les écrans animés dans les navigateurs (20)

The hidden side of webExtensions
The hidden side of webExtensionsThe hidden side of webExtensions
The hidden side of webExtensions
 
Habillez votre navigateur avec les webextensions
Habillez votre navigateur avec les webextensionsHabillez votre navigateur avec les webextensions
Habillez votre navigateur avec les webextensions
 
Nouveaux apis
Nouveaux apisNouveaux apis
Nouveaux apis
 
La face cachee des web extensions
La face cachee des web extensionsLa face cachee des web extensions
La face cachee des web extensions
 
Confoo - 2012-02-27 au 2012-02-28 - HTML5 workshop
Confoo - 2012-02-27 au 2012-02-28 - HTML5 workshopConfoo - 2012-02-27 au 2012-02-28 - HTML5 workshop
Confoo - 2012-02-27 au 2012-02-28 - HTML5 workshop
 
L'histoire d'html5 pour les développeurs windows phone 8
L'histoire d'html5 pour les développeurs windows phone 8L'histoire d'html5 pour les développeurs windows phone 8
L'histoire d'html5 pour les développeurs windows phone 8
 
La boîte à outils de développements dans Firefox
La boîte à outils de développements dans FirefoxLa boîte à outils de développements dans Firefox
La boîte à outils de développements dans Firefox
 
RMLL 2011 - L'accessibilité Web des CMS
RMLL 2011 - L'accessibilité Web des CMSRMLL 2011 - L'accessibilité Web des CMS
RMLL 2011 - L'accessibilité Web des CMS
 
Rendre son CMS conforme au SGQRI 008 en 20 étapes
Rendre son CMS conforme au SGQRI 008 en 20 étapesRendre son CMS conforme au SGQRI 008 en 20 étapes
Rendre son CMS conforme au SGQRI 008 en 20 étapes
 
L'accessibilité en 20 étapes pour TYPO3 et Wordpress
L'accessibilité en 20 étapes pour TYPO3 et WordpressL'accessibilité en 20 étapes pour TYPO3 et Wordpress
L'accessibilité en 20 étapes pour TYPO3 et Wordpress
 
Utiliser et ameliorer firefox avec les webextensions
Utiliser et ameliorer firefox avec les webextensionsUtiliser et ameliorer firefox avec les webextensions
Utiliser et ameliorer firefox avec les webextensions
 
Mobiz - 2012-11-15 - HTML5, une révolution à plusieurs niveaux
Mobiz - 2012-11-15 - HTML5, une révolution à plusieurs niveauxMobiz - 2012-11-15 - HTML5, une révolution à plusieurs niveaux
Mobiz - 2012-11-15 - HTML5, une révolution à plusieurs niveaux
 
Outils Indispensables pour vs navigateurs web
Outils Indispensables pour vs navigateurs webOutils Indispensables pour vs navigateurs web
Outils Indispensables pour vs navigateurs web
 
Les extensions Firefox et Google Chrome pour naviguer efficacement
Les extensions Firefox et Google Chrome pour naviguer efficacementLes extensions Firefox et Google Chrome pour naviguer efficacement
Les extensions Firefox et Google Chrome pour naviguer efficacement
 
Nouveautés 2009
Nouveautés 2009Nouveautés 2009
Nouveautés 2009
 
Presentation platform flash
Presentation platform flashPresentation platform flash
Presentation platform flash
 
Construire une PWA connectée à WordPress
Construire une PWA connectée à WordPressConstruire une PWA connectée à WordPress
Construire une PWA connectée à WordPress
 
[AzureCamp 24 Juin 2014] Azure Media Services par Xavier Pouyat
[AzureCamp 24 Juin 2014] Azure Media Services par Xavier Pouyat[AzureCamp 24 Juin 2014] Azure Media Services par Xavier Pouyat
[AzureCamp 24 Juin 2014] Azure Media Services par Xavier Pouyat
 
Introduction au développement windows 8 modern ui avec html5 et javascript
Introduction au développement windows 8 modern ui avec html5 et javascriptIntroduction au développement windows 8 modern ui avec html5 et javascript
Introduction au développement windows 8 modern ui avec html5 et javascript
 
Introduction au développement Windows 8 ModernUI avec HTML5 et JavaScript
Introduction au développement Windows 8 ModernUI avec HTML5 et JavaScriptIntroduction au développement Windows 8 ModernUI avec HTML5 et JavaScript
Introduction au développement Windows 8 ModernUI avec HTML5 et JavaScript
 

More from Christophe Villeneuve

controler vos donnees éthiques dans le web
controler vos donnees éthiques dans le webcontroler vos donnees éthiques dans le web
controler vos donnees éthiques dans le webChristophe Villeneuve
 
Open Source et contribution : Une association gagnante
Open Source et contribution : Une association gagnanteOpen Source et contribution : Une association gagnante
Open Source et contribution : Une association gagnanteChristophe Villeneuve
 
Peur de la migration vers l’open source ?
Peur de la migration vers l’open source ?Peur de la migration vers l’open source ?
Peur de la migration vers l’open source ?Christophe Villeneuve
 
La sécurité applicative par le design
La sécurité applicative par le designLa sécurité applicative par le design
La sécurité applicative par le designChristophe Villeneuve
 
Mozilla french speaking community activites
Mozilla french speaking community activitesMozilla french speaking community activites
Mozilla french speaking community activitesChristophe Villeneuve
 
Monitoring dynamique : Grafana et Microsoft
Monitoring dynamique : Grafana et MicrosoftMonitoring dynamique : Grafana et Microsoft
Monitoring dynamique : Grafana et MicrosoftChristophe Villeneuve
 
Le futur de l'authentification webAuthn
Le futur de l'authentification webAuthnLe futur de l'authentification webAuthn
Le futur de l'authentification webAuthnChristophe Villeneuve
 
Tests d'accessibilite par la pratique
Tests d'accessibilite par la pratiqueTests d'accessibilite par la pratique
Tests d'accessibilite par la pratiqueChristophe Villeneuve
 
La réalité mélangée dans vos applications
La réalité mélangée dans vos applicationsLa réalité mélangée dans vos applications
La réalité mélangée dans vos applicationsChristophe Villeneuve
 

More from Christophe Villeneuve (20)

MariaDB une base de donnees NewSQL
MariaDB une base de donnees NewSQLMariaDB une base de donnees NewSQL
MariaDB une base de donnees NewSQL
 
pister les pisteurs
pister les pisteurspister les pisteurs
pister les pisteurs
 
controler vos donnees éthiques dans le web
controler vos donnees éthiques dans le webcontroler vos donnees éthiques dans le web
controler vos donnees éthiques dans le web
 
Infrastructure as code drupal
Infrastructure as code drupalInfrastructure as code drupal
Infrastructure as code drupal
 
Mariadb une base de données NewSQL
Mariadb une base de données NewSQLMariadb une base de données NewSQL
Mariadb une base de données NewSQL
 
Open Source et contribution : Une association gagnante
Open Source et contribution : Une association gagnanteOpen Source et contribution : Une association gagnante
Open Source et contribution : Une association gagnante
 
Pentest bus pirate
Pentest bus piratePentest bus pirate
Pentest bus pirate
 
Peur de la migration vers l’open source ?
Peur de la migration vers l’open source ?Peur de la migration vers l’open source ?
Peur de la migration vers l’open source ?
 
La sécurité applicative par le design
La sécurité applicative par le designLa sécurité applicative par le design
La sécurité applicative par le design
 
Foxfooding semaine 3
Foxfooding semaine 3Foxfooding semaine 3
Foxfooding semaine 3
 
Foxfooding
FoxfoodingFoxfooding
Foxfooding
 
Accessibilite web wcag rgaa
Accessibilite web wcag rgaaAccessibilite web wcag rgaa
Accessibilite web wcag rgaa
 
Mozilla french speaking community activites
Mozilla french speaking community activitesMozilla french speaking community activites
Mozilla french speaking community activites
 
Monitoring dynamique : Grafana et Microsoft
Monitoring dynamique : Grafana et MicrosoftMonitoring dynamique : Grafana et Microsoft
Monitoring dynamique : Grafana et Microsoft
 
Etes vous-pret pour php8 ?
Etes vous-pret pour php8 ?Etes vous-pret pour php8 ?
Etes vous-pret pour php8 ?
 
Le futur de l'authentification webAuthn
Le futur de l'authentification webAuthnLe futur de l'authentification webAuthn
Le futur de l'authentification webAuthn
 
Send large files with addons
Send large files with addonsSend large files with addons
Send large files with addons
 
Tests d'accessibilite par la pratique
Tests d'accessibilite par la pratiqueTests d'accessibilite par la pratique
Tests d'accessibilite par la pratique
 
Donnez la voix aux machines
Donnez la voix aux machinesDonnez la voix aux machines
Donnez la voix aux machines
 
La réalité mélangée dans vos applications
La réalité mélangée dans vos applicationsLa réalité mélangée dans vos applications
La réalité mélangée dans vos applications
 

Les écrans animés dans les navigateurs

  • 1. Les écrans animés dans les navigateurs @hellosct1 @hellosct1@mamot.fr Cookie Partie 9 décembre 2017 Christophe Villeneuve Hello / Sector one
  • 2. .Cookie Party 2017 - Tag : mozilla reps - firefox - B2GOS - ausy - afup – lemug.fr – mysql – mariadb – drupal – demoscene – addons - WebExtensions – drupagora – phptour – forumphp – linux magazine - Libre@toi – eyrolles – editions eni – programmez – linux pratique – webriver – phptv – elephpant - owasp - security Qui ??? Christophe Villeneuve Contributeur / Réalisation Contributor / Realization
  • 3. .Cookie Party 2017 - Today... ● Are you ready !!! ● The Add-ons compatibility ● And the next
  • 4. .Cookie Party 2017 - Firefox ‘Quantum’ 57
  • 6. .Cookie Party 2017 - Les WebExtensions ● Créer une API robuste ● Parité avec extensions chrome api ● Documentation ● Prise en charge de Firefox pour Android ● Technologie standard 
  • 7. .Cookie Party 2017 - Compatibilité ● Edge / Opera / Chrome / Firefox ● Compatible Qtwebkit
  • 9. .Cookie Party 2017 - Economisateur d’écran ● Proposé par la WebExtension ● Le votre : Personnalisé
  • 10. .Cookie Party 2017 - Interface utilisateur (1/ L'utilisation d'une extension s'effectue par... Page action (bouton barre d'adresse) Browser action (bouton barre d'outils)
  • 11. .Cookie Party 2017 - Interface utilisateur (2/ Sidebar (barre latérale) Context menu items (Elément du menu contextuel)
  • 12. .Cookie Party 2017 - Interface utilisateur (3/ Address bar suggestions (Suggestions de la barre d'adresse) Notifications (Notifications) Bundled web pages (Page web incluses)
  • 13. .Cookie Party 2017 - Interface utilisateur (4/ Developer tools panels (Panneaux d'outils de développement) Options page (Page d'options)
  • 14. .Cookie Party 2017 - 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
  • 15. .Cookie Party 2017 - 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": "WebExtensions", "version": "2.0", "description": "The WebExtensions", "icons": { "19": "icons/icon-19.png", "48": "icons/icon-48.png" }, }
  • 16. .Cookie Party 2017 - Manifest.json (2/2) ● Permission "permissions": [ "*://developer.mozilla.org/*", "webRequest" ] activeTab alarms bookmarks browsingData contextMenus contextualIdentities cookies downloads downloads.open history identity idle management nativeMessaging notifications sessions storage tabs topSites webNavigation webRequest webRequestBlocking
  • 17. .Cookie Party 2017 - Manifest : Anatomie (1/6) ● 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
  • 18. .Cookie Party 2017 - Background : Exemple // manifest.json "background": { "scripts": [ "loader.js", "loader_anim.js", ] } Possible "scripts": ["loader.html"]
  • 19. .Cookie Party 2017 - Manifest : Anatomie (2/6) ● 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
  • 20. .Cookie Party 2017 - Content scripts : Exemple (1/2) // manifest.json "content_scripts": [{ "matches": [ "*://mozilla.com/*", "*://votreURL.org/*", "*://localhost/*" ], "js": [ "js/injection-demo.js" ] }],
  • 21. .Cookie Party 2017 - Content scripts : Exemple (2/2) // manifest.json "content_scripts": [{ "matches": [ "<all_urls>" ], "exclude_matches": [ "*://www.mozilla.org/*", "*://*.votreURL.org/*" ], "js": [ "background/all-sites.js" ] }],
  • 22. .Cookie Party 2017 - Manifest : Anatomie (3/6) ● Action du navigateur <> des navigateurs ● Accès par un icône – Barre d'outils navigateur ● Possible de définir – Fenêtre contextuelle ● Langage : – HTML / CSS / JS Background page Content scripts Browser action
  • 23. .Cookie Party 2017 - Browser action : Exemple // manifest.json "browser_action": { "default_icon": { "19": "button/geo-19.png", "38": "button/geo-38.png" }, "default_title": "Whereami?", "default_popup": "popup/popup.html" }
  • 24. .Cookie Party 2017 - Manifest : Anatomie (4/6) ● Action dans la barre de navigation ● Affiche sur un onglet activé ● Action pas toujours nécessaire Background page Content scripts Browser action Page action
  • 25. .Cookie Party 2017 - Page action : Exemple // manifest.json "page_action": { "browser_style": true, "default_icon": { "19": "button/geo-19.png", "38": "button/geo-38.png" }, "default_title": "Whereami?", "default_popup": "popup/popup.html" }
  • 26. .Cookie Party 2017 - Manifest : Anatomie (5/6) ● Définir des préférences en plus ● Accès par les add-ons du navigateur ● Paramètres mémorisés Background page Content scripts Browser action Page action Option page
  • 27. .Cookie Party 2017 - Option page : Exemple // manifest.json "options_ui": { "page": "options.html" },
  • 28. .Cookie Party 2017 - Manifest : Anatomie (6/6) ● 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 Ressource
  • 29. .Cookie Party 2017 - Incompatibilités API Javascript Source : https://developer.mozilla.org/en-US/Add-ons/WebExtensions/Browser_support_for_JavaScript_APIs
  • 31. .Cookie Party 2017 - Barre latérale (Slide Bar) ● Action barre latérale ● Action du navigateur <> des navigateurs ● Accès par un icône ● Langage : – HTML / CSS / JS anim1
  • 32. .Cookie Party 2017 - Ressource : Exemple // manifest.json "slidebar_action": [ "default_icon" : "icons/icon.png", "default_title" : "barre verticale", "default_panel": "slidebar/anim-feu.html" ], Sidebar (barre latérale)
  • 33. .Cookie Party 2017 - DevTools ● Anciennement – Firebug ● API anim2
  • 34. .Cookie Party 2017 - Ressource : Exemple // manifest.json "devtools_page": "devtools/devtools-page.html", Developer tools panels (Panneaux d'outils de développement)
  • 35. .Cookie Party 2017 - Thème ● Thème ● Firefox 58 et + anim3
  • 36. .Cookie Party 2017 - Ressource : Exemple // manifest "theme": { "images": { "headerURL": "background.png", "additional_backgrounds": [ "atari.svg","atari2.svg"] }, "properties": { "additional_backgrounds_alignment": [ "right top", "right top" ], "additional_backgrounds_tiling": [ "repeat" ] }, "colors": { "accentcolor": "#ffAA00", "textcolor": "#0099FF", } },
  • 37. .Cookie Party 2017 - Ressource : Exemple 2 : Animation ● Animation d’un thème ● SVG animé ● Firefox 59 et + ● Animation disponible https://github.com/hellosct1/theme-animation
  • 38. .Cookie Party 2017 - 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
  • 39. .Cookie Party 2017 - Et pour terminer ● Un écran animé de greetings dans le navigateur
  • 40. .Cookie Party 2017 - Merci Questions Christophe Villeneuve @hellosct1