Firefox 57, ou Quantum, est là, et c’est une énorme amélioration. Firefox a enfin rattrapé Chrome en termes de vitesse, l’interface est beaucoup plus propre et il y a de nouvelles fonctionnalités intéressantes à démarrer. Il n’y a pas grand-chose à redire ici.
Je rigole. Sur Internet, il y a toujours de quoi se plaindre.
Avec Firefox Quantum, la plainte de jour est que certaines extensions ne fonctionnent plus. De nombreuses extensions de haut niveau, y compris DownThemAll et Greasemonkey, ne fonctionnent actuellement pas avec Quantum. D’autres, y compris Firebug et ScrapBook, ne fonctionneront probablement plus jamais.
C’est frustrant si vous êtes un utilisateur de l’un de ces services, et vous pourriez penser que c’est quelque peu arbitraire. Ça ne l’est pas. Qu’on le veuille ou non, Mozilla a estimé qu’ils n’avaient pas d’autre choix que d’abandonner ce qu’il appelle les modules complémentaires «hérités» pour aller de l’avant. Voici pourquoi.
Fonctionnement des anciennes extensions Firefox
Les extensions traditionnelles de Firefox étaient généralement écrites en langage XUL (XML User Interface Language). C’est le langage avec lequel l’interface utilisateur de Firefox est construite, et les extensions basées sur XUL pourraient modifier cette interface directement. Ces modules complémentaires avaient également un accès presque complet à XPCOM, le puissant modèle d’objet composant utilisé par Firefox.
Si cela vous a dépassé, sachez ceci: les extensions Firefox avaient une capacité plus ou moins totale de changer votre navigateur, et elles ont effectué ces modifications directement. C’est pourquoi ces extensions étaient si puissantes: il n’y avait pas un ensemble prescrit de choses qu’elles pouvaient et ne pouvaient pas changer. C’est aussi pourquoi ces extensions avaient tendance à rompre avec les nouvelles versions de Firefox.
Les extensions pour Chrome ou Safari ne fonctionnent pas de cette façon. Ces navigateurs offrent aux développeurs d’extensions des API spécifiques qu’ils peuvent utiliser, ce qui signifie qu’il existe une liste définie de choses que les extensions peuvent et ne peuvent pas contrôler. Depuis deux ans maintenant, Firefox propose une API similaire appelée WebExtensions, qu’il encourage les développeurs à adopter.
Les extensions traditionnelles rendent difficile l’amélioration de Firefox
Firefox Quantam n’est pas la première mise à jour à casser une extension: c’est un problème récurrent depuis des années. Étant donné que les extensions de Firefox pouvaient affecter Firefox si directement, il était possible que des modifications, même mineures, de Firefox lui-même cassent complètement les modules complémentaires, ou introduisent simplement des bogues qui réduisent les performances.
Les utilisateurs de Firefox, ne sachant pas que les extensions causaient le problème, supposeraient que la nouvelle version de Firefox est boguée, et de leur point de vue elle l’était. L’équipe Firefox ferait de son mieux pour s’assurer que les extensions populaires fonctionnent avant de pousser une nouvelle version, mais il est facile d’imaginer tout cela ralentir le développement.
L’API WebExtensions facilite tout cela en définissant spécifiquement ce que les extensions peuvent faire et comment elles peuvent le faire. Cela signifie que les développeurs doivent uniquement s’assurer que l’API fonctionne correctement, et ne pas craindre qu’une modification des performances ou une modification de l’interface utilisateur ne casse des extensions particulières. Le résultat devrait être moins d’extensions cassées à long terme, mais pour rendre cela possible, Mozilla a dû abandonner l’ancien écosystème d’extensions.
Le changement rend également possible certaines des meilleures fonctionnalités de Quantam. La capacité multi-processus, par exemple, est une grande partie de l’augmentation de la vitesse de Firefox Quantam. Quatre processus distincts gèrent l’interface et les onglets de Firefox, ce qui signifie que Firefox peut utiliser les quatre cœurs de votre processeur au lieu d’un seul. C’est une réalité pour laquelle l’écosystème d’extension traditionnel n’a tout simplement pas été conçu, et il est difficile d’imaginer le faire fonctionner sans beaucoup de couches d’abstraction qui ralentiraient inévitablement les choses. De nombreux changements à venir de Firefox étaient de même retenus par les modules complémentaires existants, ce qui signifie que l’écosystème a dû changer pour que Firefox évolue.
La compatibilité multiplateforme était un problème
Il était une fois, les modules complémentaires donnaient aux gens une raison convaincante d’utiliser Firefox sur Chrome. Ces jours-ci, Chrome est de loin le leader en termes de modules complémentaires, tandis que Firefox peut se sentir comme un cimetière d’extensions non entretenues des années passées.
Bien sûr, il existe quelques extensions Firefox que vous ne pouvez pas obtenir dans Chrome, mais Chrome possède de loin le plus grand écosystème. La nouvelle API WebExtensions ne résoudra pas ce problème du jour au lendemain, mais cela rend beaucoup plus facile le portage des extensions Chrome sur Firefox car le langage utilisé pour écrire les extensions est suffisamment similaire pour rendre le portage superficiel. Dans de nombreux cas, seuls quelques ajustements sont nécessaires pour qu’une extension Chrome s’exécute dans Firefox, ce qui signifie qu’il n’y a aucune raison pour que vos extensions Chrome préférées ne puissent pas accéder à Firefox maintenant si vous le demandez suffisamment au développeur. Cela devrait conduire à un flot de nouvelles extensions dans un écosystème qui pourrait franchement l’utiliser.
Firefox perdait déjà des utilisateurs
Certains peuvent affirmer que Firefox perdra des utilisateurs à cause d’extensions cassées, mais il convient de noter que Firefox perdait déjà des utilisateurs au profit de Chrome à un rythme alarmant, et ce depuis des années. La vitesse comparative et le manque de certains modules complémentaires n’aidaient pas sur ce front, et Firefox Quantum vise à résoudre ces deux problèmes.
Y a-t-il une chance que cela se retourne contre vous? Sûr. Certaines personnes quitteront Chrome et d’autres rechercheront d’anciennes fourches qui maintiennent l’ancien écosystème d’extension. Mais ce n’est pas comme si les choses allaient bien avant. Firefox avait besoin d’évoluer pour rester pertinent, et c’est ainsi qu’ils ont décidé de le faire.
Les développeurs ont eu le temps de passer à la nouvelle API
Certains utilisateurs ne remarqueront même pas que ce changement s’est produit, car les extensions avec lesquelles ils travaillent utilisent déjà l’API WebExtension. Les autres extensions n’ont pas changé.
Cela peut être dû au fait que le développeur a abandonné l’extension il y a longtemps ou qu’il n’a pas envie de la réécrire pour utiliser l’API. Dans certains cas, l’API n’offre pas suffisamment de contrôle pour recréer l’extension d’origine, de sorte que les développeurs abandonnent leurs projets. Et dans de nombreux cas, la conversion n’est tout simplement pas encore terminée.
Quoi qu’il en soit, les extensions ne se cassent pas car Mozilla a changé quelque chose tout d’un coup. WebExtensions fait partie de Firefox depuis deux ans et la date limite de mise à jour des extensions était annoncé il y a un an:
D’ici la fin de 2017, et avec la sortie de Firefox 57, nous passerons exclusivement aux WebExtensions et arrêterons de charger tous les autres types d’extensions sur le bureau.
Il manque toujours une extension dont vous dépendez? Ce document Google suit plusieurs extensions populaires, et propose des alternatives à plusieurs applications courantes. Cette liste est également utile.