tu as remarqué qu'un navigateur va rarement juste de dire "ta page est pourrie, j'affiche rien, na!" ? ben déjà un parser aussi tolérant, je pense que c'est bien chiant à écrire
il y a de multiples versions d'HTML, et les normes, ben elles sont pas courtes quand même
il faut aussi parser les CSS, concilier ça avec les vestiges de présentation présents dans certaines versions d'HTML, tout élément du DOM doit donc être thémable génériquement
il faut intégrer un moteur JS, lui aussi tolérant, qui puisse manipuler l'intégralité du DOM, des propriétés, et que le tout se reflète directement sur l'affichage
l'interface des navigateurs leaders sur le marché n'est pas aussi simple que "une fenêtre et quelques boutons", d'autant que pour beaucoup ils sont présents sur plusieurs plateformes, donc il faut s'abstraire des spécificités
un navigateur web doit aussi causer au serveur, gérer les connexions donc, accessoirement parler les différentes versions d'HTTP, prendre en compte les fonctionnalités que peut offrir un serveur
il doit aussi avoir un mécanisme de cache efficace
il faut qu'il puisse exécuter des modules externes (flash, java, ou autres plugins)... mais le tout en garantissant la sécurité de l'utilisateur (donc isoler tous ces bouts)
il doit afficher un rendu le plus vite possible : pas juste lire le code, préparer le rendu, puis l'afficher, mais rendre le maximum de choses dès que possible et enrichir au fil de l'eau à la réception de données supplémentaires
# Des exemples des choses compliquées
Posté par mrlem (site web personnel, Mastodon) . En réponse au message Pourquoi c'est dur de coder un navigateur Internet ?. Évalué à 9. Dernière modification le 19 février 2014 à 13:04.
On pourrait trouver beaucoup à dire, mais déjà :