Des nouvelles technologies pour les futurs navigateurs Internet

Restez toujours informé : suivez-nous sur Google (☆)

La sortie d'une version bêta de Google Chrome, le nouveau navigateur Internet développé par le géant de la recherche en ligne, n'est pas passée inaperçue dans les médias. Cette sortie a été presque simultanée avec la sortie de la version bêta 2 d'Internet Explorer 8, publiée par Microsoft, l'annonce de la version bêta de Mozilla Firefox 3.1 pour la fin du mois de Septembre et la mise à disposition de la deuxième version de test de Safari 4.

Cette compétition pour la nouvelle génération des navigateurs Internet a introduit plusieurs nouvelles technologies qui résultent de l'évolution de l'utilisation des navigateurs. En effet, les navigateurs servent aujourd'hui de plateforme autant à des applications en ligne, multimédias ou interactives, qu'à l'affichage de simples pages web. Alors que de nombreux services utilisent ces capacités, les navigateurs ont assez peu évolués pour s'adapter à ces nouveaux usages, et se trouvent en décalage par rapport aux besoins.

Les applications web nécessitent souvent des capacités pour le multimédia et de dessin, de la manipulation des objets, des interactions poussées avec l'utilisateur, des personnalisations de l'affichage et un affichage dynamique. Pour y parvenir, elles utilisent un ensemble de technologies, dont notamment des plugins (tels que Flash), des communications asynchrones (AJAX), des manipulations d'objets dans les pages (DOM) et un langage de script exécuté sur les postes clients (JavaScript).

Le support des nouveaux standards du web, la réactivité des scripts applicatifs et la bonne gestion des plugins sont donc devenus les nouveaux nerfs de la compétition. La réactivité des applications dans un navigateur dépend essentiellement de la vitesse de l'interpréteur du code JavaScript. Ainsi, Google Chrome, Firefox 3.1 et Safari 4 introduisent des interpréteurs JavaScript complètement nouveaux. Nommés respectivement V8, TraceMonkey et squirellfish, ils utilisent des méthodes de compilation en temps réel par tracing (Trace-Based JIT Compilation), qui permettent d'approcher les performances de celles de langages compilés après une première analyse. Les méthodes utilisées dans ces moteurs JavaScript sont hérités de la recherche sur les machines virtuelles et les exécutions en temps réels de Bytecode.

D'autre part, les applications web se complexifiant et la navigation par onglets étant la norme, il devient inacceptable qu'un site web arrête et bloque inopinément toutes les pages ouvertes. En effet, perdre des modifications lors de l'édition de documents en ligne se révèle plus dommageable que lors d'une simple consultation web. Pour résoudre ce problème, il faut que chaque onglet soit suffisamment indépendant pour que son exécution ne perturbe pas les autres.

La solution mise en place par Google consiste au lancement d'un processus par onglet. Cela se comporte exactement comme si plusieurs instances du navigateur se lançaient chacune s'occupant d'un onglet. Ainsi, le plantage dû à un site web n'influence pas les autres, et la mémoire est intégralement libérée lorsqu'un onglet est fermé. La solution de Microsoft dans Internet Explorer 8 est similaire, car elle utilise plusieurs threads indépendants, mais n'a pas la correspondance stricte entre un processus et un onglet que l'on trouve dans Google Chrome. Le problème principal de cette approche dans ces deux nouveaux navigateurs se trouve dans une consommation mémoire plus importante, puisque le partage entre onglets est presque nul, et que les moteurs de rendus sont dupliqués en mémoire. Cependant, ces duplications ne sont visibles qu'en mémoire virtuelle, puisque la plupart des systèmes d'exploitation modernes implémentent les méthodes de "Copy-on-Write" qui font qu'une page mémoire n'est recopiée en mémoire physique que lorsqu'elle est modifiée.

Enfin, tous ces navigateurs renforcent leur compatibilité avec les standards du web (notamment HTML5, CSS2 et CSS3). Même Internet Explorer, qui a toujours été le mauvais élève pour la conformité aux standards, a amélioré énormément sa compatibilité aux standards.

avatar
buck

pour IE: les pb de compatibilite posent en probleme sur la v8. Le moteur par defaut devrait prendre strictement en charge les balises html, alors que a cause de la v6 de nombreux sites ont du avoir des rustines contournant les soucis de l'epoque. Ce qui fait que ces site sur la v8 risquent de ne pas etre lisible

PA
Palca

buck
pour IE: les pb de compatibilite posent en probleme sur la v8. Le moteur par defaut devrait prendre strictement en charge les balises html, alors que a cause de la v6 de nombreux sites ont du avoir des rustines contournant les soucis de l'epoque. Ce qui fait que ces site sur la v8 risquent de ne pas etre lisible

Les rustines en question détectent généralement la version du navigateur, ie6 et ie7 n'ayant déjà pas le même affichage, donc je doute qu'il y ait des problèmes avec ie8 niveau html.
C'est plutôt le javascript qui va être important maintenant, car le fossé se creuse entre les capacités d'ie et des navigateurs alternatifs :(

avatar
buck

Pourtant j'avais lu sur pc impact que ca allait poser des soucis surtout si ils laissent le nouveau moteur par defaut.

Supprimé

Pour avoir testé ce nouveau navigateur... je dois dire qu'il est bluffant de rapidité.

Pour le reste, attendons, ce n'est qu'une béta.

Concernant les autres... c'est vrai que cela avance a grand pas et qu'un navigateur n'est plus qu'un simple "navigateur", mais une plateforme vers plein de services.

A voir dans l'avenir...

DO
dong

Bonjour;

La solution mise en place par Google consiste au lancement d'un processus par onglet. Cela se comporte exactement comme si plusieurs instances du navigateur se lançaient chacune s'occupant d'un onglet. Ainsi, le plantage dû à un site web n'influence pas les autres, et la mémoire est intégralement libérée lorsqu'un onglet est fermé. La solution de Microsoft dans Internet Explorer 8 est similaire, car elle utilise plusieurs threads indépendants, mais n'a pas la correspondance stricte entre un processus et un onglet que l'on trouve dans Google Chrome. Le problème principal de cette approche dans ces deux nouveaux navigateurs se trouve dans une consommation mémoire plus importante, puisque le partage entre onglets est presque nul, et que les moteurs de rendus sont dupliqués en mémoire. Cependant, ces duplications ne sont visibles qu'en mémoire virtuelle, puisque la plupart des systèmes d'exploitation modernes implémentent les méthodes de "Copy-on-Write" qui font qu'une page mémoire n'est recopiée en mémoire physique que lorsqu'elle est modifiée.

Les seuls élèments que vous présentez comme "nouveau" dans votre article est dans ce paragraphe.
Ma question est la suivante : Connaissez-vous le navigateur Internet Opera ? Il y a bien longtemps que ce navigateur fonctionne de cette façon. De plus, ce type de fonctionnement qui n'a absolument rien de nouveau doit surement exister sur d'autres navigateurs.

Pour finir, le "Copy-on-Write" C'EST la mémoire virtuelle ! Vous faites donc un non-sens. C'est le principe de fonctionnement de tous les systémes d'exploitation utilisant le procéder de pagination et TOUS les systémes d'exploitation actuelle utilise le procéder de pagination.

Cependant, l'article est trés bien écrit, la présentation des technologies existantes est trés bien faite. Néammoins, je pense que la présentation de ces "nouvelles technologies" n'a qu'un but mercantile.

IS
Isabelle

Des articles et commentaires parlent d'autres navigateurs : opéra, firefox ... par exemple :

Opera Speed Dial : les sites favoris d’un simple coup d’oeil
viewtopic.php?t=12472

mais bien d'autres encore ...

DO
dong

Bonjour,

Des articles et commentaires parlent d'autres navigateurs : opéra, firefox ...

Ce n'est pas ce que j'ai voulu mettre en avant dans mon intervention mais plutôt ce qu'on nous présente comme "nouvelle technologie". J'ai cité Opéra en exemple simplement pour appuyer le fait que ces "nouvelles technologies" existaient déjà et depuis longtemps.