• [^] # Re: A quand les process par onglet ?

    Posté par (site web personnel, Mastodon) . En réponse à la dépêche Vingt dieux, Firefox 20 est sorti !. Évalué à 10. Dernière modification le 05 avril 2013 à 11:38.

    J'en avais déjà parlé sur un autre journal. Bon, alors, techniquement, ce n'est pas abandonné, c'est implémenté. C'est à dire que Gecko, a la faculté d'ouvrir une page web dans un process séparé.

    Ainsi en XUL, il y a l'attribute remote sur la balise browser (celle qui affiche une page web) qui permet d'indiquer si la page doit être traité dans un processus séparé ou non. Il y a la même chose sur la balise iframe HTML (mais utilisable seulement pour les applis certifiés pour Firefox OS).

    Bref, dans Gecko, un process par onglet, ça fonctionne, et c'est largement utilisé dans Firefox OS (et Firefox Mobile je crois, je n'ai pas vérifié).

    Ce n'est pas utilisé dans Firefox Desktop car, à mon avis :

    • sur un desktop, on a plutôt tendance à ouvrir plein d'onglets, il en résulte une occupation mémoire plus importante (cf Chrome). Sur mobile, il y a peu d'onglets ouverts en général, donc la différence d'occupation entre avec ou sans process séparé est faible, par contre ça apporte d'autres avantages d'avoir des process séparés (meilleur traitement en cas de crash, vélocité probablement…), c'est pourquoi ils sont utilisés sur le mobile. Et puis dans Firefox OS, il ne faudrait pas qu'une appli fasse planter tout le téléphone, ce serait balo :-)
    • Dans Firefox, on ne peut pour l'instant pas activer ce fameux attribut remote sur les balises browser de chaque onglet, car il y a quelques soucis à régler avant. En effet, cela change la façon d'accéder au contenu de la page web depuis une extension et depuis surtout le code de l'interface de Firefox (je rappel que l'interface de Firefox est entièrement en XUL et javascript). Bref, il faut faire de nombreux changements dans le code de l'interface pour manipuler le contenu d'un onglet, et mettre à jour de nombreuses extensions.

    Et vu que nombre d'extensions sont maintenant déclarées "compatible" par défaut, et que nombre d'extensions ne sont pas maintenus ou pas compatible pour dialoguer avec un contenu dans un process séparés, et bien, si le out of main process est activé dans Firefox, à la prochaine version ça va péter de partout, ça va faire plein d'utilisateurs mécontents.

    Bref, cela nécessiterait beaucoup de ressources à Mozilla pour "éduquer" les développeurs d'extensions à la nouvelle API, beaucoup de ressources pour adapter les milliers de lignes de code de l'interface de Firefox.

    À priori tout de même, en regardant les sources de l'interface, j'ai l'impression que petit à petit ils adaptent le code, mais ça va prendre encore du temps. Il y a plus important à faire pour le moment dans Firefox et Gecko.