Parmi les différentes API de Firefox, c’est un peu le bordel. Il y a :

— XPCOM, c’est l’API bas niveau, deprecated(?) mais utilisable (il y a
beaucoup choses là-dedans, semble-t-il).
— Overlay-XUL, ancienne manière de concevoir une interface. Deprecated.
— Bootstrapped, je ne sais pas trop ce que c’est, je n’y ai pas mis le nez.
Deprecated.
— SDK, haut niveau et bas niveau, l’API actuelle.
— WebExtension, la nouvelle API, en cours de construction, non finalisée.

Grammalecte n’utilise quasiment que l’API SDK haut niveau, qui sera
maintenue même quand WebExtension sera finalisée. J’utilise peut-être une
chose ou deux de l’API SDK bas niveau, qui sera abandonnée, sauf ce qui est
le plus utilisé (Mozilla a demandé aux dévs d’extensions ce qu’ils voulaient
voir maintenu hors de l’API SDK haut niveau). Ce point ne posera pas de
problème, je pense.

Grammalecte utilise aussi, un peu mais c’est essentiel, l’API XPCOM. On
n’est plus censé l’utiliser, mais il y a là-dedans un peu tout ce qu’on ne
trouve pas ailleurs, puisque c’est l’API bas niveau. Mozilla voudrait qu’on
ne l’utilise plus pour des questions de sécurité, je crois. Bref…

Ce que Grammalecte utilise de cette API, c’est un accès vers Hunspell :
— pour ajouter/ôter les dictionnaires orthographiques,
— pour récupérer les suggestions orthographiques des mots inconnus.
On peut arriver à s’en passer, et on va essayer de le faire dans la durée.

Grammalecte utilise aussi ce qu’on appelle un PromiseWorker (dérivé de
ChromeWorker), qui est en gros un moyen de faire tourner du code en tâche de
fond. Ce qu’utilise Grammalecte pour la correction grammaticale. C’est
indispensable à la fois parce que ça évite de bloquer Firefox pendant que le
correcteur travaille et parce que l’exécution du code y est 20 fois plus
rapide. J’utilise aussi un bout d’API qui s’appelle “Tasks” qui permet de
chaîner les promesses (Promises) et d’envoyer le résultat au fur et à mesure
que la correction avance (grâce à cela, on n’est pas obligé d’attendre que
tout le texte soit corrigé pour afficher le résultat). “Tasks” ne sera plus
nécessaire avec l’arrivée de JavaScript ES7 qui apportera, je crois, les
instructions async/await qui permettront de faire la même chose. Quant au
PromiseWorker, je présume que ce ne sera pas abandonné sans être remplacé
par une chose équivalente. Espérons-le, sinon Grammalecte va connaître un
gros problème.

Olivier



--
View this message in context: 
http://nabble.documentfoundation.org/Grammalecte-v0-5-tp4183712p4183826.html
Sent from the Discuss mailing list archive at Nabble.com.

-- 
Envoyez un mail à discuss+unsubscr...@fr.libreoffice.org pour savoir comment 
vous désinscrire
Les archives de la liste sont disponibles à 
http://listarchives.libreoffice.org/fr/discuss/
Tous les messages envoyés sur cette liste seront archivés publiquement et ne 
pourront pas être supprimés

Répondre à