Bonjour bonjour 😁,
L'article de la semaine vient d'un constat que j'ai fait récemment, avant dans Chrome, quand on passait sur un site qui propose OpenSearch, celui-ci l'ajoutait automatiquement aux moteurs de recherche du navigateur, et donc il suffisait en suite de taper "un mot clef" + espace et commencer a faire une recherche directement depuis l'omnibox du navigateur.
Ce comportement du navigateur a récemment changé (c'est peut-être pas plus mal, ça évite que tout et n'importe soit ajouter dans le navigateur).
Désormais dans Chromium (et donc Chrome et autres navigateurs basés dessus), il faut aller dans les paramètres pour activer à la main un moteur de recherche, pour quelqu'un qui a l'habitude avec l'informatique c'est simple, mais pour quelqu'un qui n'a pas l'habitude cela peut s'avérer compliqué.
Le but de cet article, va être de créer une extension Chrome, qui une fois installer "ajoute" le moteur de recherche à l'omnibox du navigateur, comme ça les utilisateurs n'auront qu'à installer cette extension pour accéder au moteur de recherche depuis leurs navigateurs.
OnpenSearch (pour les navigateurs) est un "standard" qui permet aux navigateurs web de découvrir les moteurs de recherche proposés par les différents sites.
Pour montrer aux navigateurs qu'un moteur de recherche est disponible, il faut ajouter une ligne dans le "head" des pages HTML :
Exemple de tag « opensearch »
Comme vous le voyez, ce tag fait appel au fichier à un fichier "/search.xml", que vous pouvez appeler autrement si vous le souhaitez.
Voici un exemple de ce que contient le fichier XML :
Exemple de fichier search.xml pour OpenSearch
Rien de bien sorcier, on définit, un mot clef, un nom, l'URL de la page de recherche ainsi qu'une URL pour l'auto complétion.
Pour voir le format que doit renvoyer votre URL d'autocomplétion, regardez simplement ici, oui, c'est un simple JSON.
Cela aura pour effet, par exemple sous Firefox, de vous proposer l'ajout d'un nouveau moteur de recherche dans la barre d'adresse et de recherche quand vous passez sur le site.
Vous pouvez voir sur cette capture d'écran, le petit logo de mon site avec un petit + en vert, en cliquant dessus, vous ajouterez le moteur de recherche à votre navigateur.
Cela va se faire en deux parties, le fichier manifeste, pour dire au navigateur quelles permissions nous avons besoin et le fichier background.js qui lui contient le code simple de l'extension.
Le manifeste est un simple fichier JSON :
Un fichier manifeste d'extension Chrome.
Ici, on voit que je demande la permission "activeTab" et que j'utilise le mot clef « ludo » pour déclencher l'extension dans la barre de recherche de Chrome.
La permission « activeTab », me permet de savoir si nous sommes dans un nouvel onglet ou non, elle me permet également de savoir si l'onglet courant est mon site, afin d'empêcher de réouvrir un nouvel onglet sur le site.
Maintenant, passons au code, ne vous inquiétez pas, rien de bien difficile
Code utilisant l'API "omnibox" des webextensions (Chrome).
Ici, on voit que j'utilise trois APIs : action, tabs et omnibox :
Voilà, il ne resterait plus qu'à publier cette extension sur les "store" des navigateurs pour la diffuser, je ne le ferais pas, car il n'y aurait pas grande utilité, moi, je l'ai surtout fait pour mon usage à moi 😄.
C'est tout pour cet article, à la prochaine 🙂.