Mauvaise nouvelle pour les adeptes d’un Firefox gavé aux extensions en tout genre : d’ici un an à un an et demi, les extensions actuelles disponibles pour le navigateur au panda ne seront plus compatibles avec les nouvelles versions.
Mozilla a en effet annoncé l’abandon de deux API fondamentales utilisées par quasiment toutes les extensions : XUL, qui permet aux extensions de manipuler des éléments d’interface via des descripteurs en XML et XPCOM qui permet d’intégrer du code bas niveau dans les extensions.
Ces deux API seront remplacées par une nouvelle API, WebExtensions, déjà disponible dans les versions développeurs de Firefox. Visant une amélioration de la stabilité, des performances et de la sécurité, cette nouvelle API nécessitera un gros travail de réécriture, et sera en outre plus limitée, ce qui fait que certaines extensions actuelles ne pourront pas être portées vers WebExtensions. En contrepartie, les développeurs d’extensions pourront plus facilement porter leurs produits de Chrome vers Firefox (et inversement), WebExtensions étant inspiré de l’API d’extensions de Chrome.
Mozilla a également précisé être en discussion avec d’autres éditeurs de navigateurs pour faire de l’API WebExtensions un standard permettant de réaliser des extensions universelles, compatibles avec plusieurs navigateurs, plutôt que de devoir réaliser une version de l’extension pour chaque navigateur.
Si la date de cette petite révolution dans le modèle d’extension de Firefox n’est pas encore fixée, un premier coup de semonce sera par contre donné à la mi-décembre avec l’arrivée de Firefox 43, qui risque également de perdre la compatibilité avec bon nombre d’extensions, à cause d’un changement d’architecture du navigateur : Mozilla va enfin mettre en place une architecture multi-processus dans Firefox. Un processus sera dédié au rendu de l’interface du navigateur, tandis que chaque onglet aura son propre processus, pour augmenter la stabilité et la sécurité. Les extensions devront donc être adaptés à ce nouveau mode de fonctionnement, puisqu’elles devront être capables de communiquer avec les différents processus dont elles ont besoin.
À terme, tous ces changements pourront également permettre la transition du moteur de rendu Gecko vers le moteur de rendu Servo, développé expérimentalement par Mozilla depuis quelques temps grâce à un langage de programmation conçu spécifiquement pour l’occasion (Rust), et qui promet une bien meilleur parallélisation des tâches de rendu pour mieux profiter des processeurs multi-cœurs. Espérons toutefois qu’il n’y aura pas trop de casse d’ici là, la richesse de la bibliothèque d’extension étant un des gros atouts de Firefox…
Une réflexion sur « Firefox va casser la compatibilité avec ses extensions »