Utiliser Google Calendar dans Thunderbird 60

Comment afficher l'agenda Google Calendar dans la version Thunderbird 60 ?

9 décembre 2018

Introduction

Suite à la mise à jour de Thunderbird 60, l'extension Google Calendar Tab utilisée jusqu'alors ne fonctionne plus.

Cette extension, qui permet d'ouvrir Google Calendar dans un onglet de Thunderbird a été développée avec XUL, n'est plus maintenue par son auteur et le projet est archivé sur GitHub.

Avant l'abandon total de XUL pour être remplacé par les WebExtensions, il est encore possible de faire fonctionner une extension basée sur XUL dans la version 60 en y apportant des modifications.

Nous l'avons donc forké et créé une nouvelle extension sous le nom de Open Google Calendar mise à jour pour fonctionner avec la version 60 de Thunderbird.

Voici les différentes étapes de cette mise à jour.

Afficher les erreurs d'incompatibilités

Pour afficher les éventuelles erreurs de compatibilité, il faut configurer Thunderbird afin d'accepter les extensions incompatibles en mettant la clé extensions.strictCompatibility à false dans l'éditeur de configuration.

Comme pour un navigateur internet, il est possible de visualiser les erreurs à partir à partir de : Menu Tools -> Developer Tools -> Developper Toolbox.

L'erreur affichée dans notre cas indique que l'objet Application n'existe pas : Application is not defined.

Cet objet Application était utilisé dans les versions précédentes de Thunderbird pour accéder aux options enregistrées, en effet d'après la documentation des changement apportés à la version 60 il faut désormais utiliser l'objet Services : Services.prefs.getCharPref et Services.prefs.setCharPref.

La page des options ne s'affiche pas

À l'origine, il est possible de créer un sous-menu permettant d'afficher une boite de dialogue indépendante contenant les options de l'extension.

Mais avec la nouvelle version, les options de toutes les extensions sont rassemblées dans le gestionnaire des extensions.

Pour paramétrer les options dans le gestionnaire des extensions, nous avons ajouté le paramètre <em:optionsType>3</em:optionsType> dans le fichier install.rdf.

Le fichier options.xul qui décrit l'interface graphique des options a été également modifié.

Les liens internet s'affichent en dehors de Thunderbird

Par exemple, en cliquant sur Semaine précédente, la page s'affichait dans le navigateur par défaut et non dans l'onglet de Thunderbird.

Cela est un comportement normal, pour des raisons de sécurité.

Nous avons alors précisé les noms de domaines autorisés à s'ouvrir dans le même onglet à l'aide d'une expression régulière passée en option à la fonction d'affichage de Google Calendar.

this.regexp = new RegExp("^(https://accounts.google.com|https://calendar.google.com)");

Version simplifiée de Google Calendar au lieu de la version web app

Par défaut, après la connexion au compte, Google Calendar détecte que Thunderbird est un mobile classique (non smartphone sans javascript), et redirige automatiquement vers la version simplifiée de Google Calendar.

La solution trouvée est de préciser explicitement l'URL de la version web app : https://calendar.google.com/calendar/r que l'extension doit afficher.

Liens utiles

L'extension installable de Open Google Calendar
Le code source de l'extension Open Google Calendar