URL: https://linuxfr.org/news/le-navigateur-web-netsurf-publie-sa-version-3-8 Title: Le navigateur Web NetSurf publie sa version 3.8 Authors: pulkomandy palm123, BAud, Davy Defaud, ZeroHeure, Nils Ratusznik, Francois Revol et Benoît Sibaud Date: 2018年08月30日T09:02:49+02:00 License: CC By-SA Tags: netsurf, sortie_version, linux_mint et firefox Score: 37 NetSurf est un navigateur Web léger. Conçu au départ pour le système [RISC OS](https://fr.wikipedia.org/wiki/RISC_OS), il fonctionne aujourd’hui sur GNU/Linux, Windows ou Haiku, mais aussi sur des plates‐formes plus exotiques comme AmigaOS ou [MiNT](https://fr.wikipedia.org/wiki/MiNT_is_Now_Tos "MiNT is Now Tos") (le descendant multitâche du système TOS des Atari ST). Le projet a démarré en 2002, avec une version GTK/UNIX depuis 2004. ---- [Le site officiel de NetSurf](http://www.netsurf-browser.org) ---- Pourquoi NetSurf ? ================= La question se pose, puisqu’il existe déjà plusieurs navigateurs libres, comme Firefox, Chromium, ou plusieurs autres basés sur le moteur WebKit. Voyons les arguments affichés sur la page web de NetSurf : Rapidité -------- Au cœur du moteur de NetSurf est l’efficience. Cela lui permet de prendre de vitesse les poids lourds des moteurs de rendu. L’équipe de NetSurf continue d’améliorer les performances dans chaque version. Innovations sur l’interface --------------------------- Simple et facile, NetSurf a remonté le niveau pour le design des interfaces des logiciels pour RISC OS, de façon significative. Pensé pour s’intégrer avec le bureau, NetSurf est la référence sur cette interface. Ce fut également le premier navigateur à proposer des miniatures de pages et un historique présentant les pages visitées sous la forme d’un arbre. Prérequis légers ---------------- Que vous ayez un PC récent ou une machine avec un ARMv6 à 30 MHz et 16 Mio de mémoire vive, NetSurf pourra naviguer sur le Web. Écrit au départ pour du matériel habituel dans les PDA, _set‐top‐boxes_, téléphones portables et autres gadgets, NetSurf est compact et nécessite peu de maintenance. Portabilité ----------- NetSurf peut être compilé pour un certain nombre de plates‐formes « dès le déballage ». Écrit en C en pensant à la portabilité, par des développeurs avec un large spectre d’expérience dans l’informatique, cela le rend accessible à un maximum d’utilisateurs. Conforme aux standards ---------------------- Malgré le très grand nombre de standards à respecter, NetSurf fait tout pour les suivre au plus près et rend la navigation Web agréable. Le projet est actif et fait en sorte d’intégrer les technologies Web récentes et futures. Qui développe NetSurf ? ======================= L’équipe est principalement localisée au Royaume-Uni. Une partie des développeurs se retrouve pour un « _[developer week‐end](http://wiki.netsurf-browser.org/developer-weekend/)_ » tous les deux ou trois mois pour faire le point et essayer d’avancer sur le développement. Certains des contributeurs sont sponsorisés par leurs employeurs ([dont Codethink](https://listmaster.pepperfish.net/pipermail/netsurf-users-netsurf-browser.org/2017-May/013951.html)), pour contribuer au projet. C’est également via du sponsoring que NetSurf dispose de serveurs pour l’intégration continue et l’hébergement de son site Web. Où en est NetSurf ? =================== Il est difficile de répondre en même temps à toutes ces contraintes. Un navigateur fonctionnant sur une machine à 30 MHz avec 16 Mio de mémoire ne pourra pas faire fonctionner les applications Web modernes, qui sont souvent largement trop grosses. De plus, les standards du Web évoluent très vite, et NetSurf a du mal à suivre. Le plus simple est de regarder la [feuille de route](http://www.netsurf-browser.org/documentation/progress.html) du projet. On peut y voir que si HTML 4 et CSS 2 sont bien pris en charge, le HTML 5, le CSS 3 et le JavaScript n’en sont encore qu’à leurs débuts. Pour JavaScript, les développeurs de NetSurf utilisent à présent le moteur [Duktape](https://duktape.org/). L’exécution du code est pleinement fonctionnelle, mais il faut maintenant y connecter toutes les API et en particulier la gestion du [DOM](https://fr.wikipedia.org/wiki/Document_Object_Model "Document Object Model"), qui permet à JavaScript d’interagir avec le contenu HTML des pages. Sans cela, l’intérêt du JavaScript est très fortement réduit. Une autre difficulté pour NetSurf est la maintenance du navigateur pour différents systèmes. Cela implique beaucoup de code (toute la partie interface graphique) maintenu indépendamment pour chaque système, mais aussi des difficultés pour l’intégration continue (avec de la compilation croisée ou native selon les cas). NetSurf doit par exemple maintenir [sa propre version de la chaîne de compilation GCC](http://git.netsurf-browser.org/toolchains.git/tree/) pour la plupart des plates‐formes sur lesquelles il peut fonctionner, ainsi qu’un certain nombre de dépendances (cURL, OpenSSL, lipgng...). D’autre part, certaines bibliothèques ont été développées spécialement pour NetSurf, car les options existantes n’étaient pas facilement portées vers les systèmes sur lesquels NetSurf fonctionne : _libnsgif_ (pour les images au format GIF), _libnsbmp_ (pour les images au format _bitmap_), libsvgtiny (pour le rendu SVG). Quoi de neuf dans cette version ? ================================= Il y a peu d’évolutions fonctionnelles par rapport à la version 3.7 publiée l’an dernier. En ce moment les développeurs de NetSurf font plutôt un travail de fond pour corriger de nombreux bogues, nettoyer le code source, découper NetSurf en plusieurs bibliothèques réutilisables, et en simplifiant l’interfaçage entre les interfaces graphiques et le cœur du navigateur. Il y a également beaucoup de travail à fournir pour faire fonctionner CSS 3 (sélecteurs, _media queries_...) et JavaScript (qui demande une refonte de la gestion du DOM et de rendre dynamique des choses qui ne l’étaient pas, au niveau de la mise en page du HTML notamment). Fuzzing ------- Le « _fuzzing_ » consiste à envoyer des données modifiées aléatoirement en entrée d’un programme pour découvrir des bogues dans la gestion de cas inattendus. On mesure le taux de couverture du code (normalement, il doit être possible d’atteindre 100 % en donnant au programme toutes les données d’entrée possibles) et en surveillant qu’il n’y a pas de « plantage ». Plusieurs des bibliothèques composant NetSurf ont eu droit à ce traitement en utilisant l’outil American Fuzzy Loop. Cela a permis de construire un jeu de test avec des fichiers BMP, GIF ou SVG déclenchant toutes sortes de bogues dans les bibliothèques correspondantes. - http://vincentsanders.blogspot.com/2016/08/down-rabbit-hole.html - http://vincentsanders.blogspot.com/2016/10/rabbit-of-caerbannog.html Sanitizers ---------- Les _sanitizers_ sont des vérifications effectuées pendant l’exécution d’un programme, qui sont automatiquement insérées par le compilateur. Elles permettent de détecter toute sorte de problème (accès hors limites à un tableau, dépendance à des comportements indéfinis du langage C, lecture de données non initialisées en mémoire...). La chaîne d’intégration continue de NetSurf intègre maintenant dans ses tests unitaires un ensemble de tests générés par AFL, ainsi qu’une étape de vérification avec les _sanitizers_. Cela permet de détecter autant que possible les régressions de façon automatisée. - http://vincentsanders.blogspot.com/2018/08/irony-is-hygiene-of-mind.html Nouvelles fonctionnalités ------------------------- Cette version corrige également plusieurs soucis de rendu et apporte quelques nouvelles fonctionnalités : * la gestion de [plus d’unités](https://www.w3schools.com/cssref/css_units.asp) dans les CSS (vw, vh, vmin, vmax...) ; * l’affichage des fichiers JPEG encodés en quadrichromie ([CJMN](https://fr.wikipedia.org/wiki/Quadrichromie "cyan, magenta, jaune et noir")) ; * gestion de [HSTS](https://fr.wikipedia.org/wiki/HTTP_Strict_Transport_Security "HTTP Strict Transport Security") et des tickets de session [TLS](https://fr.wikipedia.org/wiki/Transport_Layer_Security "Transport Layer Security").

AltStyle によって変換されたページ (->オリジナル) /