NoGreg (le blog de LeGreg)
Retour au blog <<

Google chrome : un nouveau web browser

Lundi 1 septembre 2008 à 23:10

Quelques infos sur le nouveau Google Chrome, un navigateur annoncé par Google.

Open source

Google a annoncé que le projet serait Open Source. Est-ce qu’il repose sur des projets open source existants ? Probablement. Par exemple le moteur de rendu des pages web est celui de WebKit (pas celui de Mozilla). De même Mozilla ou les autres projets auront la possibilité d’intégrer du code (en plus des idées) directement de Chrome (s’ils partagent des licences compatibles). Est-ce qu’un projet pourra brancher à partir du code de Chrome ? Probablement aussi, mais l’histoire de Mozilla et des autres projets Open Source (Linux, etc.) nous apprend que même si c’est théoriquement et légalement possible, la branche originale garde souvent une place unique si elle est correctement maintenue. Le coût de maintenance d’une branche indépendante apportant son lot de problème : il sera probablement plus intéressant d’écrire des plugins.

En gros, l’ouverture open source montre que Google ne souhaite pas en théorie garder l’exclusivité de Chrome même s’il est dur de prédire en pratique ce qu’il adviendra du projet à l’avenir.

Bizarrement le mot “chrome” est utilisé par les autres navigateurs (Mozilla) pour désigner la zone de l’interface utilisateur qui ne fait pas partie de la page web elle-meme (adresse, menu, bookmarks, etc). Est-ce que la confusion est voulue ? C’est possible..

Multiprocess

Dans Google Chrome, chaque tab a son propre processus système. Un “processus” usuellement est associé de manière unique à “une application”, mais dans ce cas l’application Google Chrome aura une série de processus qui collaboreront. Un processus c’est grosso-modo un espace mémoire, un contexte d’éxecution (avec des threads) et des privilèges. Dans Chrome, donc l’application est un “cluster” de processus.

Ce que cela apporte : La gestion de la mémoire n’est plus partagée entre les tâches, un des avantages mis en avant dans l’annonce Google c’est que lors de la fermeture d’une tab, cela ferme effectivement le processus et donc toute la mémoire associée à cette tab est désallouée d’un coup. Alors que sous une application “classique” avec un seul espace mémoire, la désallocation de certaines parties suite à la fermeture d’une tab entraine la fragmentation de la mémoire et de l’espace d’adressage, et la difficulté de recycler la mémoire inutilisée. En pratique, je n’ai pas les chiffres mesurées, donc je ne sais pas si cela fait une grosse différence. De plus difficile de dire si l’utilisation d’un processus par tab n’entraine pas la duplication de certaines données et donc une perte d’efficacité à ce niveau ? Quid de la reconfiguration mémoire ? On peut noter aussi que Firefox 3 ayant quelque peu amélioré l’utilisation de la mémoire par rapport aux précédentes versions.

Un échec critique dans une des tabs n’entraîne que la fermeture de cette tab et non pas de la totalité de l’application. Cela n’est pas nouveau et avait été mis en place dans d’autres types d’applications. Les infos du site Web A ne sont pas visibles par le site web B parce que la tab est executée dans un processus différent. Les processus n’incluent pas seulement les différentes tabs et fenêtres mais également le moteur de javascript, celui des plugins. A la place d’être des tâches sérialisées, le javascript peut donc tourner en parallèle de la page web et n’a plus à “émuler” le multitâche pour les tâches longues ou les requêtes asynchrones (?). Il est également possible de voir la mémoire consommée par chaque tab, chaque plugin, dans le gestionnaire de tâches etc. Il est possible de donner des droits d’accès différents à chaque tâche pour augmenter la sécurité, voir plus bas.

Rapidité

Outre les gains annoncées sur la fragmentation mémoire, Google annonce avoir travaillé à rendre le web plus rapide y compris pour les applications web très complexes (plus complexes que ce qui existe à l’heure actuelle).

Pour le rendu des pages ils font appel à Webkit par exemple (moteur utilisé également par Safari), qui est d’après eux beaucoup plus rapide et simple que les autres moteurs de rendu de page existants (chiffres ?).

La machine virtuelle javascript est par contre réécrite. Appelée V8, elle fait de la compilation just in time (ce que font d’autres moteurs également), une instanciation des “classes probables” (en javascript chaque objet a sa propre classe suivant le nombre de propriétés et de fonctions qu’on lui ajoute, V8 décide en temps réel que plusieurs objets appartiennent à une classe probable si elles ont des propriétés en commun). Et ils annoncent avoir un moteur de garbage collection (désallocation des objets non utilisés) beaucoup plus aggressif et avec une faible overhead (au prix d’un book keeping plus important ?).

Interface

Il est possible de faire plus de choses depuis la barre d’adresse qui est beaucoup plus qu’une barre d’adresse. La page d’accueil a l’option d’afficher la liste des sites les plus fréquemment visités ou les plus récemment visités. Le système et l’utilisateur pourront se passer de bookmarks.

Chaque tab vivant dans son propre process, il est possible de passer librement une tab d’une fenêtre à une autre (on pourrait même imaginer, soyons fous, d’une application à une autre ?).

Privacy, malware, popup, etc

De nombreux compromis ont été fait sur certaines features pour améliorer la sécurité. C’est un objectif prioritaire de Google.

Chaque processus tourne dans un process aux droits très limitès, à la manière d’Internet Explorer 7 sous Vista. Ce que l’on appelle une “sandbox” (bac à sable). La sandbox n’a le droit d’initier aucune communication avec l’extérieur, seuls les niveaux supérieurs (comme l’utilisateur) peuvent communiquer avec la sandbox et recevoir une réponse. Par exemple, un site web ne pourra pas initier un clic sur l’interface, capturer les lettres tapées au clavier, ni lire des données dans une autre partie de l’ordinateur ou de l’application.

Le maillon faible de la sécurité semble être les plugins. C’est pour cela qu’il y aura un label spécial pour les plugins qui peuvent s’exécuter entièrement dans la sandbox. Ou les plugins qui intéragissent avec le rendu des pages webs et avec javascript de manière totalement standard (par exemple on pourrait imaginer une video en flash dont le rendu est fait dans le process du plugin flash et dont le résultat est combiné au rendu de la page au niveau supérieur, avec une intéraction limitée flash/moteur de rendu). Bien entendu cela reposera sur la bienveillance de l’auteur du plugin qui ne partage pas forcément les mêmes principes fondateurs de l’initiative Google Chrome.

Un mode de browsing totalement privé existe où toutes les données de la navigation sont oubliées à la fermeture de la tab (Microsoft IE8 annonce une feature similaire).

Les popups sont gardées dans une sous partie de l’interface et on peut décider de les faire apparaitre ou disparaitre facilement.

Un nouveau browser ?

Il est possible que l’annonce d’un browser par Google est motivée par la volonté d’améliorer la consommation du web, sans arrières pensées (avec le calcul que l’amélioration du web, bénéficiera mécaniquement à Google grâce à ses autres propriétés). Il est inévitable de penser qu’il s’agit d’une façon de positionner la marque Google à un autre endroit du PC, là où on avait le Google search engine, le Google e-mail, le Google desktop search, le Google blog host (blogger), la Google encyclopedie (Knol), le google chat en 3D (Lively), la plateforme de commerce Google, les petites annonces google, la plateforme pour téléphone portables Google, le pack Office de Google, le Google Jet. À tout cela on ajoute un web browser Google.

On s’interrogera surtout de la place d’une nouvelle application du genre dans l’espace du butineur Internet, est-ce que les avancées annoncées seront suffisante pour déplacer les poids lourds Internet Explorer et Mozilla Firefox ? Quelles sont les avancées qui n’auraient pas pu être intégrées peu à peu à un autre projet Open Source comme Firefox sans créer un marque séparée ?

Bref encore une annonce encore un peu floue, mais on espère en apprendre plus et surtout pouvoir tester la bête dans les semaines (mois ? années ?) à venir.

L’annonce de Google Chrome en BD, complètement surchargée.

Articles liés :
Renouveau de la concurrence sur les navigateurs -
Résumé de l’histoire d’internet -
Rendu old school par voxel -

par ColdFusion
1 septembre 2008 à 23:16

entraine toi sur android et sors nous un os merci

par inso
2 septembre 2008 à 0:02

Tu sais lire ?

protip: webkit.

par e-t172
2 septembre 2008 à 0:10

LeGreg a écrit :
> Ce que cela apporte : La gestion de la mémoire n’est plus partagée entre les tâches, un des avantages mis en avant dans l’annonce Google c’est que lors de la fermeture d’une tab, cela ferme effectivement le processus et donc toute la mémoire associée à cette tab est désallouée d’un coup. Alors que sous une application "classique" avec un seul espace mémoire, la désallocation de certaines parties suite à la fermeture d’une tab entraine la fragmentation de la mémoire et de l’espace d’adressage, et la difficulté de recycler la mémoire inutilisée.

Je suis fortement sceptique. Faire ça en plusieurs processus séparés ne va pas faire disparaître le problème de la fragmentation de la mémoire, ça va juste le déplacer au niveau du système d’exploitation.

par Netsabes
2 septembre 2008 à 0:13

Notez que balader un onglet d’une fenêtre à l’autre, Safari le fait très bien.

par inso
2 septembre 2008 à 0:15

Notez que Firefox 3 le fait aussi. Faut déjà avoir >1 onglets dans les deux fenêtres par contre.

Edit: ah non on peut le faire en drag&dropant le favicon.

par jye
2 septembre 2008 à 0:19

Pour tester c’est a partir de demain en bêta. J’ai pas encore le net et du coup pas trop le temps d’en parler moi aussi sur mon blog, mais tu poses de bonnes questions!

par LeGreg
2 septembre 2008 à 0:25

"Je suis fortement sceptique. Faire ça en plusieurs processus séparés ne va pas faire disparaître le problème de la fragmentation de la mémoire, ça va juste le déplacer au niveau du système d’exploitation."

Ça se défend :
Imagine une application programmée de manière standard.
Dans une page mémoire, elle alloue sans ordre particulier la mémoire demandée par la page A et la mémoire demandée par la page B. Si la page B se ferme, la page A a toujours des liens vers cette mémoire et à moins de faire une défragmentation avancée (avec déplacement des pointeurs) la page sera partiellement remplie, et rien ne dit qu’il y ait la place de mettre les objets alloués par la page C dans l’espace libéré après la fermeture de B. Et donc un certain nombre de "trous" vont subsister dans l’application et certaines pages vont durer pendant toute la durée de vie du process. Reste à chiffrer la consommation réelle causée par ces trous (1%, 10%, 30%, 200% ?) et si l’on ne peut pas s’en sortir en faisant une gestion de mémoire un peu plus intelligente (cf Firefox 3). Mais à mon avis c’est l’un des éléments qui a été pris en compte dans la décision, les autres éléments cités en dehors de la gestion mémoire aidant.
Pour ce qui est de l’OS, il n’alloue que des pages entières et surtout, il n’a pas d’espace d’adressage global, il y en a un par process ce qui fait qu’il n’y a pas vraiment de fragmentations (les pages contigues dans l’espace d’adressage virtuel, ne le sont pas en mémoire physique et peuvent même avoir été déplacées sur le disque dur). Théoriquement on peut faire tourner un OS pendant des centaines d’années et ne pas avoir de problèmes de fragmentation au niveau de l’OS. Une application bien programmée peut également ne pas avoir de problèmes de fragmentation mais ce n’est pas le souci principal des auteurs d’applications (sauf jeux vidéos et autres applications très gourmandes en ressource).

LeGreg

par ng-aniki
2 septembre 2008 à 0:44

1 processus par tab, ca ne risque pas de justement d’allouer une trop grande priorité au browser ?
Si on a 15 tabs ouverts, ca fait 15 processus pour le browser, un autre processus à priorité égale va se retrouvé énormement dévalorisé il me semble ?

Enfin, je sais pas trop, c’est l’impression que j’ai. Je vois ca comme avec les softs de téléchargements à téléchargements simultanés.
Si j’ai 2 téléchargements normaux, la bande passante est divisée par deux pour chacun des téléchargements.
Si maintenant on a 15 téléchargements simultanés sur le soft, et 1 téléchargement à côté sans passer par le soft. Celui-ci aussi 1/16 de la bande passante. On ne risque pas d’obtenir un resultat semblable au niveau du processeur avec un systeme comme celui de ce browser ?

par SpinaL_OblivioN
2 septembre 2008 à 6:28

Je pense que cela va porter un grand coup contre Microsoft et à la fondation Mozilla. Plus de concurrence, c’est bon pour le consommateur.

par QQQ
2 septembre 2008 à 8:26

Merci pour l’information.

Question, est-il possible sous FF3 de "transformer" un onglet en page unique? Sans plugin je dis hein.
Non parce que c’est une des fonctions qui me paraît assez basique mais que je ne vois pas en cliquant-droitement sur un onglet, c’est con.

par divide
2 septembre 2008 à 9:36

si il ne propose pas une interface revolutionnaire, je ne vois pas de raison pour que ce browser s’impose plus qu’un autre (IE ou FF, qui remplissent deja largement leur fonction pour 99% du public). Ce que j’attend d’un nouveau browser, c’est une facilité de navigation décuplé, dans l’idée de PicLens par exemple (qui s’appelle maintenant CoolIris).

par inso
2 septembre 2008 à 9:55

Moi j’y vois de l’interet parce que quand j’ai vu leur google talk, j’ai balancé MSN direct. C’est léger, c’est simple, ça trace. Maintenant le problème d’un navigateur c’est les plugins, ça va être dur de se passer de tout ce que Firefox a ajouté au fil du temps …

par Crazralfrill
2 septembre 2008 à 9:56

Merde… ça veut dire + de boulot pour les développeurs web…

par ng-aniki
2 septembre 2008 à 10:05

L’interface ne me parait pas particulièrement révolutionnaire du tout..




http://blogoscoped.com/archive/2008-09-02-n72.html

par banksy
2 septembre 2008 à 10:11

En cas de succès, ca veut aussi dire que google aura moins à payer les autres navigateurs pour les recherches initiées par la search box.

Ca veut aussi dire plus de tracking et collecte d’infos puisqu’ils contrôlent directement le navigateur. Enfin on verra bien puisque c’est open-source et vu la notoriété de la boite le code sera minutieusement décortiqué.

par jye
2 septembre 2008 à 10:54

Crazralfrill a écrit :
> Merde… ça veut dire + de boulot pour les développeurs web…

Mais pourquoi tout le monde sort ça ? Inso a déjà re-précisé… C’est basé sur le webkit qui est déjà utilisé par Safari. Donc aucun travail supplémentaire, à part si vous skippez Safari dans vos développements.

par r4z0r
2 septembre 2008 à 21:25

Et c’est plutôt pas mal!

par jye
2 septembre 2008 à 21:29

Personnellement, c’est tellement rapide, que ce soit au lancement, pour l’affichage ou l’exécution de javascript que je pense l’adopter. On verra si je suis vraiment dépendant à certains plugins de Firefox.

par The.MAN6
2 septembre 2008 à 21:33

J’attends un AdBlock, pour ma part. Je peux plus aller sur Internet sans, j’ai l’impression de me faire agresser.

par LeGreg
2 septembre 2008 à 21:43

Adblock, le premier plugin pour Google Chrome ? Théoriquement ça a l’air possible.

LeGreg - Programmation

par inso
2 septembre 2008 à 21:50

Moi je veux un plugin poour synchroniser ses bookmarks !

par moSk
2 septembre 2008 à 21:59

Et puis je vois mal google laisser bloquer sa pub sur son navigateur.

par golan8x
2 septembre 2008 à 21:59

Plus leger que FF 3 en mémoire (légèrement), mais rapidité égal à vu d’oeil. L’interface est peut être pratique mais très moche. Ils veulent apporter au web en faisant plein d’applications moderne et avangardiste, ok. Par contre pour ce qui est du visuel ils ne font que du moche, sincèrement, y’a pas une seule application Google qui est belle à regarder. C’est pratique, rapide, ergonomique mais moche.

EDIT :: Plus léger c’est vite dit, vu qu’il lance un processus à chaque onglet, j’ai 70 mo pour 4 navigations simultanées contre 65 avec FF3. Pas de molette + clique pour glisser. Aucune options accessible rapidement, pas de clique droit, pas de menu …. C’est une blague ce truc de débile ?

par J_euh
2 septembre 2008 à 22:01

«Pour les plugins, faudra attendre … »
Pour qu’on l’utilise vraiment aussi du coup, mais après un rapide coup d’oeil j’aime bien son côté simplifié, malgré quelques défaut qui seront sûrement arrangé d’ici là (le fait de devoir recliquer sur les dossiers dans la barre de favoris pour passer de l’un à l’autre par exemple).

par LeGreg
2 septembre 2008 à 22:06

@mosk

S’ils respectent avant tout leur intention d’un navigateur "open", alors le blocage de la pub Google sur le navigateur Google doit être possible, s’il y a un conflit d’intérêt il sera ailleurs.

LeGreg - C++

par inso
2 septembre 2008 à 22:10

Moi je trouve ça bien plus beau qu’IE par exemple. Firefox s’intègre assez bien donc lui …

Non moi je les trouve jolies les apps google, j’adore la gueule de gtalk par exemple. Leur défaut c’est qu’elles s’intègrent mal au reste, alors que mon windows classique, c’est le plus beau thème du monde.

par Conradson
2 septembre 2008 à 22:11

Je suis agréablement surpris du navigateur. Reste effectivement à voir les plugins portés dessus (surtout ceux avec lesquels je bosse, à savoir Web Developpeur, Firebug, YSlow et IEtab).

par inso
2 septembre 2008 à 22:27

Quelqu’un arrive à scroller avec le click molette ? ça commence à très fortement me saouler (au bout de 30min …).

par Helpmefixmybike
2 septembre 2008 à 22:33

Non pas de scroll click molette pour moi non plus …
J’ai surfé 5 minutes avec ça m’a vite saoulé, genre toutes les pubs de merde tout ça, quand on est habitué à ne plus les voir ça devient assez irritant.

par LeGreg
2 septembre 2008 à 23:50

Le scroll avec molette marche chez moi. Par contre pas le click molette effectivement, mais bon je l’utilise jamais.

LeGreg - Texas

par mathilde
30 mai 2009 à 14:30

je ne set pas quoi vous dire !!!

Commenter

Si vous avez un compte sur WeFrag, connectez-vous pour publier un commentaire.

Tags autorisés : <a href="" title="">...</a>,<b>...</b>,<blockquote cite="">...</blockquote>,<code>...</code>,<i>...</i>.