Firefox : Mozilla travaille sur une fonctionnalité d'isolation de site
Mais elle pourrait augmenter significativement l'utilisation de la mémoire RAM

Le , par Michael Guilloux, Chroniqueur Actualités
Mozilla travaille sur l'ajout d'une nouvelle fonctionnalité similaire l'isolation de site, une fonctionnalité que Google a déployée largement pour les utilisateurs de Chrome cette année. L'isolation de site de Chrome est une fonctionnalité de sécurité qui offre une protection supplémentaire contre certains types de bogues de sécurité et qui rend plus difficile pour les sites Web non fiables d'accéder ou de dérober des informations de vos comptes sur d'autres sites Web.

En principe, sur Chrome, les sites Web ne sont pas censés pouvoir accéder aux données d'autres sites dans le navigateur, grâce au code de la politique de la même origine (Same Origin Policy). Mais il y a eu des bogues de sécurité détectés dans ce code qui peuvent permettre à des sites Web malveillants de contourner ces règles pour attaquer d'autres sites Web. L'équipe Chrome a décidé corriger ces bogues le plus rapidement possible. Entre temps, elle propose la fonctionnalité d'isolation de site qui offre une deuxième ligne de défense pour que ces attaques aient moins de chance de réussir.

Elle garantit que les pages de différents sites Web soient toujours placées dans des processus différents, chacun s'exécutant dans un bac à sable qui limite ce que le processus est autorisé à faire. Cela empêche également le processus de recevoir certains types de données sensibles provenant d'autres sites. Par conséquent, un site Web malveillant aura plus de difficulté à voler des données provenant d'autres sites, même s'il peut enfreindre certaines des règles dans son propre processus. Avec Chrome 67, Google dit avoir activé cette fonctionnalité pour 99 % de ses utilisateurs.

Firefox veut emboîter le pas au numéro un mondial des navigateurs Web. Depuis quelques mois, Mozilla travaille en effet sur son projet Fission, qui vise à apporter une fonctionnalité similaire à celle de Google. Cela ne doit pas être un gros problème étant donné qu'avec Firefox Quantum, le navigateur de Mozilla est passé d'une architecture mono-processus à une architecture multiprocessus.


Mais le projet est encore à ses débuts et il y a un gros défi à relever : si créer un processus par domaine ou site est techniquement une tâche relativement simple avec la nouvelle architecture de Firefox, il y a une contrainte au niveau du nombre maximum de processus. Car avoir plus de processus signifie une augmentation de la quantité de mémoire RAM utilisée par le navigateur. Autrement dit, le principal obstacle d'un tel projet est la quantité de mémoire RAM consommée et donc l'impact sur la performance du navigateur. Et il y a trois semaines, Mozilla a commencé à s'attaquer à ce problème.

Le 10 juillet, Mozilla a annoncé le lancement de Fission MemShrink - qui semble être une contraction de Memory Shrink - en tant que sous-projet de Fission. Comme son nom l'indique, l'objectif est de réduire l'utilisation de la mémoire RAM par Firefox, une condition nécessaire pour la réussite du projet Fission. Dans une liste de diffusion, Mozilla explique le projet MemShrink et le défi à relever.

« Le projet Fission MemShrink est l'un des aspects qui ont été les plus facilement négligés dans le cadre du projet Fission (également connu sous le nom d'isolation de site), mais il est absolument essentiel à son succès. Et il exigera un effort de l'entreprise et de la communauté pour atteindre ses objectifs », explique Kris Maglione de la fondation Mozilla.

Le problème qu'il soulève est que pour que l'isolation de site fonctionne, il faut être en mesure d'exécuter au moins 100 processus de contenu dans une session Firefox moyenne. « Chacun de ces processus a sa propre consommation de mémoire de base juste pour créer le processus, indépendamment de ce qui est en cours d'exécution. Dans le monde post-Fission, la quantité de mémoire RAM utilisée doit être inférieure à 10 Mo par processus afin de garder le total en dessous de 1 Go », dit-il. Mais à l'heure actuelle, sous Windows 10, qui est la plateforme la plus prometteuse pour la mise en oeuvre de cette fonctionnalité, Firefox utilise entre 17 et 21 Mo de RAM par processus. Et sur Linux et OS-X, le navigateur de Mozilla consomme entre 25 et 35 Mo de RAM par processus. Kris Maglione déduit qu'au vu de l'objectif fixé (au moins 100 processus et 10 Mo maximum par processus), cela veut dire qu'une session ordinaire de Firefox pourrait coûter entre 2 et 3,5 Go de RAM.

Cela veut dire aussi que, dans le meilleur des cas, Mozilla doit réduire la mémoire utilisée dans les processus de contenu Firefox d'au moins 7 Mo. « Le problème, bien sûr, est qu'il n'y a que très peu d'endroits où nous pouvons réduire la mémoire sans perdre de fonctionnalités, et encore moins d'endroits où nous pouvons réaliser de gros gains de mémoire », dit-il. En ajoutant toutefois qu'il y a beaucoup d'endroits où il est possible de réaliser de petits et moyens gains. C'est-à-dire des gains de quelques kilo-octets à des dizaines kilo-octets, et pourquoi pas des gains de 100 à 250 ko ci et là, même si Maglione estime qu'il n'y a pas assez d'endroits où l'on peut obtenir des gains de 250 ko.

La réussite du projet Fission dépend donc de la capacité de Mozilla à atteindre ses objectifs dans le cadre du sous-projet Fission MemShrink. « Si nous échouons dans ces domaines, le projet Fission échouera et Firefox sera le seul navigateur majeur sans isolation de site », ajoute Kris Maglione, avant d'assurer que le projet ne sera pas un échec si toute la communauté se mobilise. En tout cas, tout porte à croire que Mozilla livrera cette fonctionnalité à l'avenir même si les objectifs ne sont pas rigoureusement atteints. Et même si ces objectifs sont atteints, quel est le poids des avantages de cette fonctionnalité face à l'impact sur la performance du navigateur ?

Source : Liste de diffusion Mozilla

Et vous ?

Que pensez-vous de l'arrivée de cette fonctionnalité sur Firefox ?
Êtes-vous favorables ou pas ? Pourquoi ?
Croyez-vous que Mozilla va-t-il atteindre ses objectifs avec le projet MemShrink sans perdre de fonctionnalités ?

Voir aussi :

Firefox se prépare à se séparer du support de Live Bookmarks, sa fonctionnalité de marque-pages dynamiques, qui serait trop peu utilisée
Un ingénieur de Mozilla affirme que YouTube est plus lent sur Firefox et Microsoft Edge que sur Google Chrome
Après Chrome et Edge, Firefox Nightly permet lui aussi de mettre des sites en sourdine lorsqu'ils lancent automatiquement des contenus multimédia
Firefox 61 est disponible pour Windows, Linux et Mac, avec des améliorations de performance, de sécurité et de l'interface utilisateur
Net Applications : Firefox tombe en dessous des 10 % de parts de marché sur desktop, Firefox Quantum pourrait-il relancer le navigateur de Mozilla ?


Vous avez aimé cette actualité ? Alors partagez-la avec vos amis en cliquant sur les boutons ci-dessous :


 Poster une réponse Signaler un problème

Avatar de archqt archqt - Membre averti https://www.developpez.com
le 30/07/2018 à 17:34
Pourquoi ce chiffre ? et pourquoi 10Mo par Thread ?
Avatar de CoderInTheDark CoderInTheDark - Membre expérimenté https://www.developpez.com
le 01/08/2018 à 9:13
Je ne suis pas sûr d'avoir compris.
Il y a t-il Un Thread par onglet ?
Et si oui la notion d'onglet est plus parlante à mon avis, surtout pour les non développeurs car ça les concernent aussi

Pour moi qui en ouvre beaucoup ça m'interpelle.
J'ai la mauvais habitude d'aller sur les pages d'accueil des site d'information et d'ouvrir un nouvel onglet pour les articles qui m'intéressent
Et de faire ensuite pareil pour les mail et surtout les newsletters.
Il y a les onglets des sites ou je vais souvent comme Développez, et les tuto et fiches pratiques qui me servent sur mon code en cours...
Alors j'ai souvent une vingtaines d'onglet ouverts à l'ouverture de fire fox alors ça fait entre 200 et 400 mo minimum

J'ai 8 go, je vais passer à 16 go quand les prix baisseront un peu
En tant que développeur combien avez vous ?
16 ça me paraît un peu beaucoup
Il peut m'arriver d'avoir deux eclipse ouverts et wamp en plus
Mais je me sents pas trop limité par mes 8 go
Avatar de weed weed - Membre éclairé https://www.developpez.com
le 01/08/2018 à 21:29
Citation Envoyé par CoderInTheDark Voir le message
Je ne suis pas sûr d'avoir compris.
Il y a t-il Un Thread par onglet ?
Et si oui la notion d'onglet est plus parlante à mon avis, surtout pour les non développeurs car ça les concernent aussi

Pour moi qui en ouvre beaucoup ça m'interpelle.
J'ai la mauvais habitude d'aller sur les pages d'accueil des site d'information et d'ouvrir un nouvel onglet pour les articles qui m'intéressent
Et de faire ensuite pareil pour les mail et surtout les newsletters.
Il y a les onglets des sites ou je vais souvent comme Développez, et les tuto et fiches pratiques qui me servent sur mon code en cours...
Alors j'ai souvent une vingtaines d'onglet ouverts à l'ouverture de fire fox alors ça fait entre 200 et 400 mo minimum

Je dirais oui, un thread (ou process).

Actuellement, Firefox lance 4 processus par défaut. Quand je fais un grep sur ces processus, j'obtiens ceci :
Code : Sélectionner tout
1
2
3
4
5
6
7
xbionic@bionic:~$ ps -aef | grep firefox
xbionic   1831     1 29 19:55 ?        00:22:05 /usr/lib/firefox/firefox
xbionic   1893  1831  2 19:55 ?        00:01:45 /usr/lib/firefox/firefox -contentproc -childID 1 -isForBrowser -prefsLen 21359 -schedulerPrefs 0001,2 -greomni /usr/lib/firefox/omni.ja -appomni /usr/lib/firefox/browser/omni.ja -appdir /usr/lib/firefox/browser 1831 true tab
xbionic   1938  1831  1 19:55 ?        00:00:56 /usr/lib/firefox/firefox -contentproc -childID 2 -isForBrowser -prefsLen 21359 -schedulerPrefs 0001,2 -greomni /usr/lib/firefox/omni.ja -appomni /usr/lib/firefox/browser/omni.ja -appdir /usr/lib/firefox/browser 1831 true tab
xbionic   2087  1831 21 19:56 ?        00:16:07 /usr/lib/firefox/firefox -contentproc -childID 3 -isForBrowser -prefsLen 25074 -schedulerPrefs 0001,2 -greomni /usr/lib/firefox/omni.ja -appomni /usr/lib/firefox/browser/omni.ja -appdir /usr/lib/firefox/browser 1831 true tab
xbionic   2218  1831  3 19:56 ?        00:02:45 /usr/lib/firefox/firefox -contentproc -childID 4 -isForBrowser -prefsLen 25074 -schedulerPrefs 0001,2 -greomni /usr/lib/firefox/omni.ja -appomni /usr/lib/firefox/browser/omni.ja -appdir /usr/lib/firefox/browser 1831 true tab
xbionic   2760  2750  0 21:11 pts/0    00:00:00 grep --color=auto firefox
L'idée serait d'avoir autant de processus que d'onglet.
Je tourne comme toi en terme de consommation,400 Mo pour une vingtaine, je trouve cela plus qu'honnête. Depuis la version 55, Mozilla a énormément reduit la conso de son navigateur.

Cette multiplication va être plus consommateur je pense et je ne suis pas certain de l'utilité. Pour le moment, il y a l'extension container qui permet d'isoler des site aspirateurs comme Google Search, Facebook, ... après c'est sur si on peut isoler tous les sites que l'on visite, c'est encore mieux

Citation Envoyé par CoderInTheDark Voir le message
J'ai 8 go, je vais passer à 16 go quand les prix baisseront un peu
En tant que développeur combien avez vous ?
16 ça me paraît un peu beaucoup
Il peut m'arriver d'avoir deux eclipse ouverts et wamp en plus
Mais je me sents pas trop limité par mes 8 go

Si tu es sur un poste fixe et que tu as slot de libre, il faut en effet ne pas hésiter à acheter une barrette si elles ont bien baissé. Idéalement la plus grande taille possible pour maximiser l'upgrade et occuper le moins de slot mémoire.

 
Contacter le responsable de la rubrique Accueil