[tuto] Créer une extension pour Google Chrome

Depuis la version 4, Chrome gère des extensions tout comme Firefox le faisait déjà depuis quelques temps. Ces extensions sont programmées en HTML/Javascript avec une API supplémentaire pour contrôler certaines fonctionnalités du navigateur.

Extension pour Google Chrome – Le principe

Le principe est simple et clair, en 4 parties :

  • une page HTML de “background”
  • un script Javascript sera exécuté sur les pages concernées pour ajouter des fonctionnalités à cette même page.
  • éventuellement une page d’options
  • une page HTML “popup” avec une icône associée

Le tout organisé grâce à un fichier JSON pour régulariser l’extension.

Créer une extension

Préparer le navigateur

Premièrement, il faut passer le navigateur en mode développeur :

tapez chrome://extensions/ dans la barre d’adresses

Puis ouvrez le mode développeur :

De là, il sera possible de charger l’extension en mode développeur.

Ensuite, une fois que vous aurez chargé l’extension il sera possible de la recharger, la désactiver ou la désinstaller. D’autres informations complémentaires sont affichées :

Décrire l’extension

L’extension doit être décrite dans un fichier JSON appelé Manifest.

http://code.google.com/chrome/extensions/manifest.html

Ce fichier Manifest contient les informations qui font des pages HTML et des fichier Javascript une extension et non une simple page web.

Le nom, le contexte d’application, l’icône… tout est décrit ici.

Construire l’extension

Le centre reste le fichier Javascript qui s’appliquera à l’ensemble des pages décrites dans le Manifest. Le navigateur intègre le script dans toutes les pages. Les possibilités du Javascript sont énormes à condition seulement de connaitre les pages auxquelles elles s’appliquent. Il faut réfléchir à des méthodes simples et efficaces pour relever les évènements de la page ou retrouver une zone de texte à remplir.

Par exemple, évitez de vous baser sur l’ID ou le nom d’un élément (zone de texte, bouton, balise div, …) qui est susceptible de changer. Si des outils tels que le GWT (Google Web Toolkit) ou JSQuery ont été utilisés, cette technique ne fonctionnera pas.

L’API de Chrome vous permettra, par exemple, d’accéder à l’onglet actif ou encore de manipuler la barre omnibox :http://code.google.com/chrome/extensions/api_index.html

La page popup peut utiliser le même fichier Javascript que celui qui servira à toutes les pages.

Quelques conseils

Pour construire une extension, il ne faut pas voir ça comme une page web malgré le fait que ce soit du HTML et du Javascript.

Si vous faites une extension qui agit sur des pages, elle doit plutôt être construite comme un programme qui doit analyser et modifier une page existante. Par exemple, récupérer un clic sur un zone de texte ou encore une combinaison de touches. L’extension est un greffon qui se base à l’origine sur une page web chargée par le navigateur.

Attention aux boucles infinies et aux doublons par rapport à des fonctions javascript existantes. Une extension ne doit pas ralentir le navigateur ou même tuer l’intérêt d’une page ou d’une application web.

Le navigateur Chrome est simple, l’API et le développement d’extensions sont simples. Par conséquent, une extension doit être simple et se contenter d’une seule fonctionnalité. Pour des choses plus complexes, il existe les Applications Web dans Chrome que je décrirai plus tard.

Un tutoriel complet est présent sur le site Zengularity

A propos Mathieu Passenaud

Passionné de technologies Web, diplômé d'informatique embarquée et actuellement dans le développement d'applications en Cloud Computing.

Je vous propose également...

La Google-car tourne dans Caen

Hier, j’ai pris la google-car en flag dans la rue près de mon boulot. Avec …

Signature HTML dans Mail Mac OS X Mavericks

Les méthodes changent entre les différentes version d’OS Apple pour intégrer une signature html dans …

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.