Voilà une feuille de route ambitieuse et alléchante pour qui connaît la complexité et l’importance d’un moteur d’affichage de navigateur. Dans Firefox, Gecko, le moteur créé par Mozilla, exécute et affiche tout le contenu web des sites sur lesquels vous naviguez, mais aussi l’interface du logiciel elle-même.
Le moteur obtenu permettra une navigation rapide et fluide tant sur les ordinateurs que sur les mobiles, créant ainsi un « saut quantique » (NDT : quantum leap en anglais, ce nom est inspiré d’une série TV de science-fiction) en termes de performance. Qu’est-ce que cela signifie ? Grâce à Quantum, nous visons des gains de performance qui soient tellement remarquables que toute votre navigation sur le Web s’en trouvera changée : les pages chargeront plus rapidement, le défilement sera fluide ; les animations et les applications interactives répondront instantanément et pourront gérer des contenus encore plus intensifs tout en conservant des taux de rafraîchissement constants. Enfin, le contenu qui vous est le plus important bénéficiera automatiquement de la priorité la plus haute, concentrant la puissance de calcul là où vous en avez besoin.*
Pour en savoir plus et entrer un peu plus dans la technique, consultez nos traductions du billet d’annonce de David Bryant(*) à la tête de l’équipe Platform Engineering et de celui de Bill McCloskey qui travaille sur Quantum.
Techno de nouvelle génération pour gains hallucinants
Mozilla a investi ces dernières années dans de la recherche et du développement de technologies aujourd’hui appliquées dans Firefox. Mozilla a soutenu la communauté dans la définition et le développement d’un nouveau langage de programmation : le Rust. « Il s’agit d’un langage de programmation système qui fonctionne à la vitesse de l’éclair et simplifie le développement de programmes parallélisés, en garantissant la sûreté de la mémoire et l’isolation entre les threads (tâches). Dans la plupart des cas, le code écrit en Rust refusera même de compiler s’il n’est pas fiable. »*
En juillet dernier, Daniel Glazman déclarait à propos de Rust lors du Web2day :
Et pour l’instant, en termes de vitesse, les gains sont hallucinants. C’est un truc de dingue ! Là où ça risque de beaucoup changer la donne, c’est moins sur le desktop, où on a des bécanes de course, que sur ça [il montre son téléphone mobile] où la consommation de la batterie est un enjeu absolument stratégique.
Rust est arrivé à maturité. D’énormes projets l’utilisent comme Dropbox. Il a même déjà fait son entrée dans Firefox. Ainsi, David Herman déclarait en juillet :
Ceci fait d’un langage de programmation sécurisant la mémoire comme Rust un ajout puissant à la boîte à outils de Mozilla pour la protection contre le contenu média potentiellement malveillant sur le Web. Pour cette raison, Ralph Giles et Matthew Gregan ont développé le premier analyseur de médias en Rust de Mozilla. Et je suis heureux d’annoncer que leur code sera le premier composant Rust embarqué dans Firefox.
Reconnaissant les qualités de ce langage de programmation, Mozilla a lancé des recherches pour écrire un moteur de navigateur en Rust : c’est le projet Servo.
Des parties fondamentales de Gecko, vont être remplacées par leur équivalent en Rust issu du programme Servo.
Quantum démarrera à partir de Gecko et remplacera des composants principaux du moteur qui bénéficieront le plus de la parallélisation ou d’une migration vers le GPU (processeur graphique). Un axe majeur de notre stratégie consiste à intégrer des composants révolutionnaires de Servo, un projet indépendant et communautaire de moteur web, parrainé par Mozilla. Dans un premier temps, Quantum partagera quelques composants avec Servo mais au fur et à mesure de l’évolution du projet, nous ferons des essais pour en intégrer encore plus.*
Bill McCloskey entre dans le détail des composants du projet Quantum qui sont autant de projets de Mozilla à des stades de développement divers :
Le projet Quantum CSS remplacera le moteur CSS [présentation et l’apparence de pages web] de Gecko par celui de Servo. Le moteur de Servo permet un parallélisme massif, pas celui de Gecko.
Le projet Quantum DOM va rendre Gecko plus adaptatif, particulièrement dans le cas où de très nombreux onglets sont ouverts en arrière-plan. Lorsque le Quantum DOM sera achevé, le code JS [JavaScript rend les pages interactives] de différents onglets (et peut-être de différents iframes) tournera de façon coordonnée et planifiée entre différents threads de sorte que le code de plusieurs onglets en arrière-plan ne s’interrompe jamais.
Le Compositor de Quantum remplacera celui de Gecko par le sien propre. Comme l’instabilité des drivers (pilotes) graphiques est une cause principale des plantages de Firefox, nous espérons que transférer le code qui interagit avec le GPU rendra Firefox beaucoup plus stable.
Enfin, Quantum Rendering remplacera le sous-système de rendu graphique de Gecko par celui de Servo, appelé WebRender. Servo utilise le GPU de façon plus efficace que Gecko, il le pilote comme le ferait un jeu plutôt que comme un navigateur a l’habitude de le faire.
Le projet Quantum Compositor est déjà bien avancé alors que Quantum Rendering n’en est qu’à ses débuts. Il existe encore pas mal d’incertitudes sur ces projets.
Bill McCloskey entre dans les détails du projet sur lequel il travaille, Quantum DOM, et donne des explications sur les processus, les threads (tâches), le traitement du JavaScript dans différents onglets, et plus…
Certains onglets d’arrière-plan pourraient même être gelés.
Le mot de la fin à David Bryant pour la feuille de route du déploiement de ces technologies dans votre Firefox :
Quantum est un projet ambitieux, mais les utilisateurs n’auront pas à attendre longtemps pour en voir les premiers progrès, qui seront rendus publics. Nous allons rendre disponibles les avancées majeures l’année prochaine, à la suite de quoi nous publierons les versions successives. Une première version de notre nouveau moteur fonctionnera sur Android, Windows, Mac et GNU-Linux. Nous espérons aussi qu’un jour nous pourrons le proposer sous iOS.
… iOS étant le système d’Apple qui équipe iPhone et iPad et dans lesquels Apple n’accepte pas d’autres moteurs de rendu que son WebKit.
Mozilla croit en l’avenir du Web et investit fortement dans son navigateur. Croyez-vous que cela sera suffisant pour vous faire réaimer Firefox – et y revenir pour les internautes passés à Chrome –, mais aussi pour revenir au Web, à sa diversité et à son ouverture ?
@Mozinet
(*) citations issues du billet d’annonce de David Bryant : Un saut quantique pour le Web
Crédit illustrations : 1re, mr.hasgaha sous licence CC By-NC 2.0
Dessin : Gégé générateur