Firefox Quantum : présentation
Une profonde réforme
Un mélodrame qui se joue discrètement depuis un an va atteindre son point d’orgue. Le 14 novembre sortira Firefox 57 (Firefox Quantum). Le navigateur libre aura une nouvelle interface, un nouveau moteur de rendu — également appelé Quantum — et, surtout, perdra la plus grande partie de ses extensions. Cela fait suite à une série de changements récents :
« La version 54 a ainsi accéléré le démarrage et généralisé le multiprocessus [ndlr : le multiprocessus de Firefox est différent de celui de Chrome] à l’ensemble des utilisateurs. Une étape cruciale puisque le navigateur était le dernier parmi les plus utilisés à ne pas proposer une telle architecture, apte à mieux tirer parti des cœurs multiples des processeurs. Il s’agit de la suite logique du projet Electrolysis, qui avait déjà séparé l’interface du rendu, chacun ayant son propre processus. La version 55 a suivi en promouvant le 64 bits par défaut sous Windows. »
Pour Mozilla, c’est le nouveau développement d’une réforme longue et complexe, qu’un de ses développeurs résume ainsi :
« Nous sommes passés pour la globalité du moteur d’un modèle à un processus au multiprocessus, ce qui est peut-être le remaniement le plus compliqué possible qu’une partie majeure d’un logiciel puisse subir. Nous avons ajouté un langage de programmation de niveau système entièrement nouveau et nous remplaçons des composants majeurs du moteur tels que les systèmes de style et de rendu. Il y a des changements substantiels de notre couche réseau et de nos couches de sécurité, ainsi que des composants entièrement nouveaux comme un nouvel écosystème d’extensions, une pile de réalité virtuelle et APZ. Nous avons ajouté un autre nouveau langage de programmation dans le cadre de notre moteur JS et remodelé significativement notre processus de production de versions et notre infrastructure permettant des tests rapides de fonctionnalités et des analyses de télémétrie pour comprendre comment nos changements touchent nos utilisateurs et beaucoup, beaucoup d’autres choses. »
Mais pour nombre d’usagers, la disparition des extensions traditionnelles (les extensions Legacy, ou, plus techniquement, XUL/XCOM) au profit des nouvelles Webextensions est probablement le plus grand bouleversement de l’histoire de Firefox : la performance d’un logiciel nous affecte moins que la remise en question de nos habitudes.
L’internaute pour qui le passage d’un navigateur à l’autre se résume à un changement de logo n’en sera pas chamboulé (40% des utilisateurs de Firefox n’ont pas d’extension). Le technophile qui a compris la dernière citation en est certainement enthousiaste. Ce billet est adressé, avant tout, aux types de mon genre, les geeks qui adorent bidouiller leur logiciel fétiche mais n’ont jamais appris à écrire une ligne de code, et pour qui les enjeux techniques d’Internet sont nimbés de mystère.
L’émoi
Si ce changement est aussi perturbant, c’est qu’il n’implique pas seulement une réécriture des extensions, mais aussi une nette diminution de leurs capacités. Vous pouvez voir ici ce qu’il en est exactement. Pour faire simple, les anciennes extensions pouvaient tout faire, et les nouvelles sont volontairement bridées. D’autre part, le potentiel des Webextensions dépend d’un ensemble d’API (des ressources par lesquelles « un logiciel offre des services à d’autres logiciels », selon Wikipédia) encore incomplet et amené à connaître un développement incertain, qui dépendra des demandes des développeurs et des stratégies de Mozilla.
Ainsi, on voit de vénérables extensions, sur lesquelles beaucoup d’internautes comptent depuis bien des années, être diminuées par leur mise à jour, déclarées infaisables sur le nouveau système, ou abandonnées par un développeur découragé. Et beaucoup ne comprennent pas ce qu’ils ressentent comme une grande régression. On reproche à Firefox d’être devenu un clone de Google Chrome, dépourvu d’intérêt propre.
Pourtant, la stratégie de Mozilla est rationnelle.
D’abord, ce petit traumatisme est voué à être le dernier : désormais, les extensions ne seront plus remises en cause par l’évolution du navigateur, ce qui permettra à Mozilla d’effectuer des mises à jour majeures sans s’inquiéter de leur impact sur le parc d’extensions. On argüe aussi que les extensions causent instabilité et lenteur — c’est vrai, mais c’est peut-être un sacrifice pertinent pour ceux qui les utilisent, et cela ne gêne pas les autres — et qu’elles favorisent les logiciels malveillants.
Surtout, la disparition des extensions XUL/COM permettra à l’électrolyse et au multiprocessus de fonctionner vraiment. Ce n’est pas une contrepartie négligeable : Mozilla revendique un navigateur deux fois plus rapide qu’il y a un an, et de 30% moins gourmand en mémoire vive que Chrome.
Reste que la transition n’est pas toujours facile.
Qu’est-ce qui va disparaître ?
Une feuille Excel communautaire, volumineuse quoiqu’incomplète, qui renseigne les utilisateurs sur l’avenir des extensions et leur éventuel remplacement, donne des statistiques qui semblent inviter au pessimisme.
Ces statistiques sont néanmoins faussées par une disparité : les extensions plus populaires sont les plus portées et les plus susceptibles, en cas d’impossibilité technique, d’obtenir de nouvelles API. Et les développeurs ayant tendance, comme tout un chacun, à ne travailler sérieusement que lorsqu’ils y sont obligés, on devrait assister à de nets progrès dans les prochaines semaines.
En ce qui me concerne, alors que 19 de mes 24 extensions étaient incompatibles début septembre, j’aurai récupéré mi-novembre l’essentiel des fonctionnalités qu’elles m’offraient. Je déplorerai encore la perte de Groupes d’onglets (probablement la meilleure extension après les bloqueurs de publicité), mais celui-ci a déjà un successeur désigné, Conex, qui le remplacera correctement quand il sera possible de masquer les onglets, ce dont Mozilla a fait une priorité.
Mozilla a-t-il mal géré la transition ?
Pour les développeurs, c’est une autre histoire. En janvier, le développeur de Groupes d’onglets, de Findbar Tweaks et d’autres extensions a posté un message amer.
Aurait-il fallu mieux accompagner la transition ? Allouer à la communauté une plus grande période de coexistence, attendre un meilleur système d’API ? Chez Mozilla, on fait valoir que les changements imminents sont prévus de longue date, et on soutient qu’on ne pouvait pas les retarder davantage (cela fait longtemps, après tout, que le multiprocessus existe sur Chrome).
Un changement de philosophie et des questions en suspens
Firefox est moins appropriable qu’à ses débuts (signalons tout de même que la nouvelle interface, Photon, est plus personnalisable qu’Australis, mis en place il y a quelques années). Mozilla a plus tendance à interdire à ses utilisateurs, même expérimentés, de prendre des risques, par exemple en supprimant l’entrée de la page about:config qui permettait l’utilisation d’extensions non vérifiées.
Il faut savoir quelle sécurité est en jeu. J’ai connu, comme beaucoup de gens, les fichiers d’installation véreux qui corrompent le navigateur, mais ils sont rarement méchants ; la réinstallation complète de Firefox est pénible, mais simplement fastidieuse, et le débarrasse de ce qui l’encombrait.
Le véritable risque, outre l’aggravation d’un espionnage auquel nous sommes tous exposés, c’est la collecte de données sensibles, telles que les coordonnées bancaires. Que permettent les Webextensions de ce côté-là ?
Je m’interroge aussi sur le développement des API. Le développeur d’une extension populaire verra probablement sa requête exaucée, mais quid de la personne qui n’a pas encore fait ses preuves, et a besoin de ressources pour réaliser une idée nouvelle ? Mozilla se contentera-t-il de répondre aux demandes des développeurs, ou cherchera-t-il à renforcer les API par lui-même ?
Revenons au reproche de « chromisation ». Il a un fondement : les Webextensions sont moins puissantes que les extensions XUL/XCOM, et parentes des extensions de Chrome. Mais elles sont tout de même plus puissantes que ces dernières, et cette supériorité est appelée à se renforcer.
De plus, cette nouvelle proximité entre les deux navigateurs permettra aux développeurs d’extensions qui ne travaillent qu’avec Chrome — et qui sont probablement plus nombreux — de porter facilement leur travail sur Firefox.
Je ne me hasarderai pas à prédire le résultat de cette entreprise. Il est possible que sa supériorité technique de Firefox, si elle est avérée, lui confère, grâce à un succès d’estime et une respectabilité supérieure, une belle part de marché. Il se peut également que Mozilla aliène une partie de ses fidèles, sans pour autant regagner les faveurs de ceux qui l’ont abandonné et dont la séduction nécessiterait une puissance de marketing que seul Google possède.
Que faire ?
Remplacer les anciennes extensions
Le tableau d’extensions évoqué plus haut est incomplet, mais d’une aide précieuse. Vous verrez que quelques fonctionnalités peuvent être rétablies à l’aide d’about:config.
Le fichier userchrome aussi est intéressant, notamment pour modifier l’apparence de Firefox. C’est un fichier textuel qui permet d’écrire des lignes de codes css. Il faut le créer soi-même : allez dans votre profil et suivez ces instructions.
Avantages : on compense la perte de certaines extensions, on ne dépend pas des développeurs, et on peut effectuer des changements simples sans alourdir le navigateur avec des modules.
Inconvénients : on ne peut plus compter sur les développeurs d’extensions, alors que Mozilla n’a rien prévu pour aider les « power users » incapables de développer des extensions à écrire des lignes de code simples ; la communauté peut-être d’une grande aide mais il est difficile, voire impossible, de trouver les renseignements que l’on cherche ; et il faut se modérer, car plus un code est complexe, plus il est susceptible de boguer et de devenir rapidement obsolète.
Exemples :
- placer la barre de recherche rapide en haut de l’écran
- Réduire davantage les onglets au lieu de les faire défiler quand ils sont trop nombreux :
.tabbrowser-tab {min-width: initial !important;}
.tab-content {overflow: hidden !important;}
- Rendre les onglets non chargés gris clair
.tabbrowser-tab:not([pending])
{background: #d9d9d9 !important;
color: black !important;}
- Masquer certaines entrées de menu (ex : masquer l’entrée de menu contextuel « envoyer la page à un appareil ») :
#context-sendimagetodevice {display: none !important;}
Cela nécessite de connaître l’ID des entrées. L’extension Menu Wizard la donne, mais, las ! elle n’est pas compatible avec le nouveau Firefox, et la page « menus » de MDN web docs est très incomplète. Du coup, je n’ai pas trouvé l’ID de l’entrée « take a screenshot ». Il faut dire que cela ne semble pas intéresser grand-monde…
Le développeur de Classic Theme Restorer a proposé un code userchrome qui reprend la plus grande partie de son code — quoiqu’il soit dorénavant impossible d’ajouter de nouveaux boutons ou barres d’outils — mais je n’ai pas réussi à le faire fonctionner correctement
Je conseille à ceux qui prévoient de longues séances de bidouillage d’essayer sans tarder Quantum avec Firefox Bêta (pré-version stable) ou Nightly (pré-version plutôt instable). Cela permet de bien voir ce qui change et ce qu’on peut changer, et d’effectuer en toute simplicité des aller-retours entre l’ancien et le nouveau Firefox.
Peut-on garder l’ancien Firefox ?
Il y a plusieurs solutions. La première est de bloquer toute mise à jour. Mozilla vous laisse le faire, indéfiniment, mais cela pose d’évidents problèmes de sécurité.
La seconde est de recourir à Firefox ESR (Extended Support Release). C’est un Firefox qui ne reçoit que des mises à jour de sécurité. La version actuelle, qui est basée sur Firefox 52, n’est pas compatible avec toutes les extensions actuelles, et supportera les extensions XUL/XCOM jusqu’en juin 2018. Ce peut être une solution de moyen terme pour ceux qui attendent que les API et le parc d’extensions s’améliorent.
La troisième est d’adopter un des navigateurs dérivés de Firefox.
- Waterfox continuera à supporter les extensions traditionnelles, et son créateur compte proposer un dépôt d’extensions semblable à addons.mozilla.org. Une version pour Android est prévue.
- Pale Moon se caractérise par une compatibilité générale avec les extensions XUL/XCOM, mais les extensions qui ne sont pas conçues pour lui finiront par être incompatibles.
- Basilisk est censé garantir la même compatibilité avec les extensions que le Firefox actuel. Il est encore en version bêta.
- Seamonkey supportera les extensions XUL/XCOM plus longtemps mais les abandonnera à terme : l’équipe a indiqué qu’elle ne conserverait pas ce que Mozilla a abandonné ou prévoit d’abandonner.
Il serait bon que ces navigateurs soient compatibles avec les Webextensions, mais je crois que rien n’est prévu de ce côté (sauf pour Seamonkey : il adoptera logiquement les nouvelles extensions s’il abandonne les anciennes)
Waterfox, Pale Moon et Basilisk présentent plusieurs faiblesses.
En premier lieu, on peut prévoir que les extensions XUL/XCOM seront presque toutes abandonnées par leurs développeurs et ne seront pas adaptées aux évolutions d’Internet. Elles poseront donc plus de problèmes de sécurité et de respect de la vie privée. De même, ces navigateurs alternatifs, qui suivront désormais une voie divergente, seront privés de la possibilité de copier fidèlement Firefox, et risquent de devenir eux-mêmes archaïques et peu sûrs.
Ensuite, les développeurs de sites, qui ne vérifient pas forcément la compatibilité de leur produit avec Firefox, ne vont pas tenir compte de navigateurs de niche.
Enfin, la petitesse des équipes impliquées rend leur travail précaire : Cyberfox a ainsi été tué par les problèmes personnels (de santé et de surcharge de travail) de son développeur principal.
Quoi que vous décidiez, bonne continuation ! J’espère que ce (long) billet vous aura plu. Veuillez excuser les approximations qui ont pu s’y glisser : je ne suis pas informaticien, et je me suis documenté comme j’ai pu pour l’écrire.
Et si vous désirez être mieux informé de l’actualité de Firefox et de ses produits dérivés (et devenir un peu plus geek), je vous conseille ces deux blogs :
- Dead Cells : mes impressions - 26 septembre 2018
- Dead Cells fait des métastases sur Band of Geeks - 9 septembre 2018
- Firefox Quantum : guide de survie pour tempête virtuelle - 10 novembre 2017
Bravo! Très beau boulot d’explication et compréhensible par tous! Les risques pour Firefox et ses utilisateurs sont bien résumés. En tant que fan du panda roux j’espère que Mozilla arrivera à redorer son blason malgré ces changements radicaux mais haut combien nécessaires.