2/25/2011

Growl Mac pour l'API de notification Google Chrome (poc)

Extension Google Chrome Growl pour les notifications web
Peut-être avez-vous vu passé ce tweet:
Je comprends tout à fait que le staff en charge de Chrome ne souhaite pas développer des extensions spécifiquement pour Mac (ou Windows ou Linux). Mais même si Growl n'est pas intégré en natif sous Mac, il est dommage de ne pas en profiter lorsqu'il est présent sur la machine. L'autre raison de cette non implémentation est que Growl ne gère pas les notifications de type HTML alors que ce type de notification est possible via l'API Web Notification.

Enfin si aucune extension Google Chrome pour Growl Mac n'existe c'est parce qu'il est impossible d'appeler un exécutable (dans notre cas Growlnotify) depuis une extension (pour des raisons de sécurité bien évidement).

Il faudrait donc pouvoir exécuter un exécutable depuis une extension Google Chrome. Une solution possible est de communiquer via websocket avec un serveur NodeJS local qui se chargera d'exécuter Growlnotify:


L'extension ChromeGrowl surcharge la méthode createNotification ainsi que createHTMLNotification de l'API de notification. Voici l'extension en action:


Le support de createHTMLNotification est pour le moment quasiment inexistant car dans la majorité des cas une requête cross-domain est requise. La solution serait d'envoyer l'url au serveur node qui téléchargerait le contenu puis après analyse afficherait le plus d'informations possible via Growl.

Le code est disponible sur mon GitHub Chrome-Growl-Notification. Il s'agit d'un proof of concept réalisé en quelques heures n'hésitez pas à le forker pour l'améliorer ou corriger de possibles bugs.

EDIT: Je viens de découvrir qu'il faut payer une taxe de 5$ pour pouvoir publier des plugins sur le Google Chrome Extensions Directory. Je ne compte pas verser le moindre $ pour un petit POC, néanmoins si l'envie vous en dit vous pouvez toujours faire un don :).

Sources:
« »
 
 
Made with on a hot august night from an airplane the 19th of March 2017.