2014 aura été une année déterminante pour Firefox, tant les changements techniques sous le capot ont été nombreux. Mais il reste un point sur lequel le navigateur est toujours attendu au tournant : l’utilisation des processus multiples. Quelques efforts ont été faits pour préparer le terrain, mais la question demeure : où en est le projet Electrolysis ?
Multiprocessus : Firefox à la traîne depuis des années
Dans le domaine des navigateurs, les améliorations de performances et de sécurité sont nombreuses et constantes. Il existe plusieurs leviers sur lesquels les développeurs peuvent jouer, notamment le ou les moteurs JavaScript, le moteur de rendu lui-même, ou encore la manière dont le navigateur sépare ses activités en différents processus.
La solution la plus utilisée aujourd’hui est une architecture multiprocessus. Elle a été initiée par Microsoft avec Internet Explorer 8, qui créait en moyenne un processus par groupe de trois ou quatre onglets ouverts. La version 9 a ramené ce chiffre à un ou deux onglets, jusqu’à ce que Chrome arrive et lance la règle « un onglet = un processus ». Les bénéfices étaient nombreux, notamment en termes de performances et de sécurité, puisque les processeurs à cœurs multiples étaient mieux exploités et les échanges entre les onglets étaient pour la plupart interdits. Le prix à payer était cependant une consommation de mémoire vive en légère hausse.
La situation s’est étendue par la suite à Safari par les travaux faits sur le moteur webkit2, et à Opera par son choix radical d’utiliser le moteur Blink de Google. Ce qui laissait Firefox à la traîne, bien que Mozilla ait déjà réalisé certaines opérations. Firefox ne fonctionne en effet plus depuis longtemps comme un processus monolithique, et tout ce qui touche par exemple au rendu de l’interface est calculé dans un processus secondaire. Les plugins subissent le même traitement, pour des raisons évidentes de sécurité, aucun éditeur de navigateur ne pouvant contrôler le code binaire fermé de ces modules (Flash, Java, Silverlight et ainsi de suite).
Le projet Electrolysis n'a pas été abandonné
Chez Mozilla, il existe pourtant depuis des années des travaux réunis au sein d’un projet nommé Electrolysis. L’objectif est précisément ce dont il est question ici : découper le traitement des sites contenus dans les onglets comme autant de processus. Où en est ce projet ? En fait, si Mozilla n’en parle pas, cela ne signifie pas que le travail a été abandonné. Et pour cause : le plan actuel est d’introduire la nouveauté dans Firefox 36.
Le projet chez Mozilla est simplement nommé « e10s » et n’importe qui peut actuellement le tester. Il suffit pour cela de récupérer la version Nightly la plus récente, de se rendre dans les options et d’activer la case « Enable E10S (multi-process) ». Mais attention : cette option est toujours vectrice de grande instabilité. D’une part, Firefox lui-même peut planter, car tout n’est pas encore prêt, le processus de l’interface allant chercher parfois des informations dans le processus du contenu web… sans tenir compte que ce dernier n’existe plus en tant que tel (puisqu’il est fractionné). D’autre part, une majorité d’extensions doit obligatoirement être mise à jour pour être compatible. Ce qui va donc demander encore de nombreuses modifications.
La fonctionnalité sera activée par défaut sur les Nightlies dans les jours qui viennent
Et c’est précisément pour cela que le mouvement va s’accélérer. Car Mozilla s’apprête à activer par défaut e10s dans les versions Nightly, ce qui signifie que les testeurs qui aiment à avoir toujours les dernières nouveautés (au prix de la stabilité) vont faire face à cette cassure majeure. La décision est évoquée dans le compte-rendu de la réunion de Mozilla sur ce thème. L’équipe estime que cela ne causera pas de problèmes majeurs dans la navigation elle-même, mais comme indiqué, Firefox peut planter, et de nombreuses extensions fonctionneront mal. Depuis cette page, on peut voir une liste de problèmes recensés, notamment avec Ghostery.
Une fois activée par défaut, la fonctionnalité va donc être testée de manière beaucoup plus approfondie. Lorsqu’elle aura atteint un stade de maturité suffisant, elle remonte le flot habituel des canaux de développement chez Mozilla : Aurora, puis Beta et enfin la version finale. Comme indiqué, c’est Firefox 36 qui devrait hériter en premier d’Electrolysis. La technologie constituerait alors de loin la nouveauté la plus importante de cette mouture prévue pour le printemps prochain.