Feuille de route pour améliorer la prise en charge de Wayland dans Firefox

Martin Stransky, responsable du package Firefox pour Fedora et RHEL qui porte Firefox sur Wayland, a publié un rapport passant en revue les derniers développements de Firefox fonctionnant dans des environnements basés sur le protocole Wayland.

Dans les prochaines versions de Firefox, il est prévu de résoudre les problèmes observés dans les builds de Wayland avec le presse-papiers et la gestion des pop-ups. Ces fonctionnalités n'ont pas pu être implémentées immédiatement en raison de différences dans l'approche de leur implémentation dans X11 et Wayland. Dans le premier cas, des difficultés sont survenues en raison du fonctionnement asynchrone du presse-papiers Wayland, ce qui a nécessité la création d'un calque séparé pour résumer l'accès au presse-papiers Wayland. La couche spécifiée sera ajoutée à Firefox 93 et ​​activée par défaut dans Firefox 94.

Concernant les boîtes de dialogue pop-up, la principale difficulté était que Wayland exige une hiérarchie stricte de fenêtres pop-up, c'est-à-dire une fenêtre parent peut créer une fenêtre enfant avec une fenêtre contextuelle, mais la fenêtre contextuelle suivante lancée à partir de cette fenêtre doit se lier à la fenêtre enfant d'origine, formant une chaîne. Dans Firefox, chaque fenêtre pouvait générer plusieurs popups qui ne formaient pas de hiérarchie. Le problème était que lors de l'utilisation de Wayland, la fermeture d'une des popups nécessite de reconstruire toute la chaîne de fenêtres avec d'autres popups, malgré le fait que la présence de plusieurs popups ouvertes n'est pas rare, puisque les menus et pop-ups sont implémentés sous la forme de info-bulles contextuelles, boîtes de dialogue complémentaires, demandes d'autorisation, etc. La situation était également compliquée par des défauts dans Wayland et GTK, à cause desquels de petits changements pouvaient conduire à diverses régressions. Cependant, le code de gestion des pop-ups pour Wayland a été débogué et devrait être inclus dans Firefox 94.

D'autres améliorations liées à Wayland incluent l'ajout de 93 modifications de mise à l'échelle à Firefox sur différents écrans DPI, qui éliminent le scintillement lors du déplacement d'une fenêtre vers le bord de l'écran dans des configurations multi-moniteurs. Firefox 95 prévoit de résoudre les problèmes qui surviennent lors de l'utilisation de l'interface glisser-déposer, par exemple lors de la copie de fichiers de sources externes vers des fichiers locaux et lors du déplacement d'onglets.

Avec la sortie de Firefox 96, le port Firefox pour Wayland devrait être amené à la parité globale en termes de fonctionnalités avec la version X11, au moins lorsqu'il est exécuté dans l'environnement GNOME de Fedora. Après cela, l'attention des développeurs sera portée sur le perfectionnement du processus GPU dans les environnements Wayland, qui contient du code pour interagir avec les adaptateurs graphiques et qui protège le processus principal du navigateur contre les plantages en cas de panne de pilote. Le processus GPU devrait également inclure du code pour le décodage vidéo à l'aide de VAAPI, qui est actuellement exécuté dans les processus de traitement de contenu.

De plus, on peut noter l'inclusion d'un mode d'isolation de site strict, développé dans le cadre du projet Fission, pour un petit pourcentage d'utilisateurs des branches stables de Firefox. Contrairement à la répartition arbitraire du traitement des onglets sur le pool de processus disponible (8 par défaut), utilisée jusqu'à présent, le mode ligne d'isolation place le traitement de chaque site dans son propre processus distinct, séparé non pas par des onglets, mais par domaine (Public Suffix), qui permet d'isoler davantage le contenu des scripts externes et des blocs iframe. L'activation du mode Fission est contrôlée via la variable « fission.autostart=true » dans about:config ou sur la page about:preferences#experimental.

Le mode d'isolation strict aide à protéger contre les attaques par canal secondaire, telles que celles associées aux vulnérabilités Spectre, et réduit également la fragmentation de la mémoire, restitue plus efficacement la mémoire au système d'exploitation, minimise l'impact du garbage collection et des calculs intensifs sur les pages d'autres processus, et augmente l'efficacité de la répartition de la charge sur les différents cœurs de processeur et augmente la stabilité (le crash du processus de traitement de l'iframe n'affectera pas le site principal et les autres onglets).

Parmi les problèmes connus qui surviennent lors de l'utilisation du mode d'isolement strict, on note une augmentation notable de la consommation de mémoire et des descripteurs de fichiers lors de l'ouverture d'un grand nombre d'onglets, ainsi qu'une perturbation du fonctionnement de certains modules complémentaires, la disparition du contenu iframe lors de l'ouverture d'un grand nombre d'onglets. impression et appel de la fonction d'enregistrement de capture d'écran, efficacité réduite de la mise en cache des documents depuis l'iframe, perte du contenu des formulaires complétés mais non soumis lorsqu'une session est restaurée après un crash.

D'autres changements dans Firefox incluent l'achèvement de la migration vers le système de localisation Fluent, des améliorations du mode contraste élevé, l'ajout de la possibilité d'enregistrer les profils de performances des processus en un clic dans about:processes et la suppression d'un paramètre permettant de renvoyer l'ancien. style de la nouvelle page à onglet utilisée avant Firefox 89.

Source: opennet.ru

Ajouter un commentaire