News Xulfr

Support de processeurs multiple dans Gecko

jeudi 7 mai 2009 à 11:15

À l'image de ce qui est fait dans le navigateur Chrome ou Internet Explorer 8, une future version de Firefox pourrait bien profiter des processeurs multiples, en créant un processus pour chaque onglet ouvert. Un projet vient de démarrer au sein de l'équipe Mozilla pour étudier la faisabilité de cette fonctionnalité, et réaliser les changements à effectuer dans Gecko. Une page sur le wiki de Mozilla a été créée pour l'occasion.

Techniquement, une balise <browser> de type "content" ou "content-primary" créera un processus. Le traitement et l'affichage des pages web se fera dans ce processus. Comme chaque onglet dans Firefox créé une balise <browser>, chaque onglet aura donc son propre processus.

L'avantage d'avoir un processus ouvert pour chaque onglet permet d'isoler l'exécution de la page web. Ainsi l'application ne sera pas affectée par un crash qui pourrait survenir à cause de la page web, ou par une exécution trop longue de code javascript, qui, dans les version actuelles de Firefox, gèle complètement l'interface. Au passage, cela améliorera la sécurité.

Un des inconvénients d'avoir un processus pour chaque page web, est que les extensions ou le chrome de l'application ne pourront plus accéder directement au contenu de la page web. Et vice versa, les événements survenant dans la page web (ex: clic droit pour afficher un menu contextuel XUL) ne pourront plus remonter directement dans le chrome. Il y aura une sorte de système de "proxy", donc une API spécifique, pour que la communication puisse se faire entre la page web et le navigateur (donc entre le processus de la page web, et le processus de l'application). Il faudra donc s'attendre à effectuer de profondes modifications dans les extensions qui manipulent les pages web.

Ce projet va prendre plusieurs mois, et à la fin de l'année, il se pourrait que l'on ait quelque chose de fonctionnel. Ce ne sera donc disponible au mieux que dans la version qui suivra Firefox 3.5, et qui sortira courant 2010.

Trackbacks

Les trackbacks pour ce billet sont fermés.

Commentaires

1. jeudi 7 mai 2009 à 12:59, par Adrien M.

Très bonne nouvelle !! Mon double coeur n'attend que ça !

2. jeudi 7 mai 2009 à 17:19, par wadouk

mais pourquoi faire des processus différent quand on s'est embêté à créer des threads ? Les comm sont plus faciles entre threads et les fenêtres aiment pas trop les multiplications de processus ...

3. samedi 16 mai 2009 à 16:11, par laurentj

@wadouk : au contraire d'un process, un thread n'est pas isolé du process principal. Ainsi quand il y a un crash dans un thread, c'est toute l'appli qui crash. Et d'un point de vue sécurité, c'est pas top puisque un thread peut accéder aux données du process principal.

Avec un process, tu n'as pas ces deux inconvénients. Alors oui, la communication est plus difficile entre deux process qu'entre deux thread, mais c'est justement ce que l'on veut.

Les commentaires pour ce billet sont fermés.


Copyright © 2003-2013 association xulfr, 2013-2016 Laurent Jouanneau - Informations légales.

Mozilla® est une marque déposée de la fondation Mozilla.
Mozilla.org™, Firefox™, Thunderbird™, Mozilla Suite™ et XUL™ sont des marques de la fondation Mozilla.