Le premier test de la web-browser FixBrowser, conçu pour une faible consommation de ressources et pour garantir la confidentialité, a été publié. Le navigateur est développé à partir de zéro et ne supporte fondamentalement pas l'exécution de JavaScript, tout en permettant de naviguer sur des sites utilisant JavaScript. Le code est écrit en C et en FixScript, et est distribué sous la licence ZLIB. Des builds prêtes sont fournies pour Linux (GTK2) et Windows. Des builds pour Haiku et macOS 10.6+, ainsi que pour des versions de Linux utilisant GTK3/4, sont en cours de préparation.
Pour interagir avec des sites basés sur JavaScript, FixBrowser utilise une couche FixProxy qui transforme à la volée de tels sites en une représentation pouvant être explorée sans JavaScript. La transformation se fait à la fois via des modèles standards et grâce à des fix-handlers qui prennent en compte les spécificités de certains sites (plus de 1200 fix-handlers sont inclus). FixProxy évolue sous la forme d'un processus proxy séparé, non lié à FixBrowser et pouvant être utilisé avec d'autres navigateurs.
On note que pour afficher la plupart des sites sans JavaScript, seules des modifications mineures sont nécessaires. De plus, de nombreuses sites utilisent des technologies similaires pour la génération dynamique de contenu, ce qui permet d'appliquer des fix-handlers standard pour leur rendu. Par exemple, des fix-handlers universels peuvent être utilisés pour des sites sur la plateforme WordPress et des forums sur la plateforme Disqus. Il est également possible de créer des handlers pour les sites qui rendent dynamiquement du contenu — par exemple, pour afficher une liste de commentaires initialement chargés de manière dynamique via JavaScript, le fix-handler charge directement les données au format JSON et génère le HTML à partir de celles-ci.
Pour traiter les CAPTCHA et les composants JavaScript, tels que les vérifications CloudFlare, nécessaires pour accéder à certains sites, il est prévu de préparer une couche basée sur le framework CEF (Chromium Embedded Framework), qui pourra exécuter sélectivement uniquement le code JavaScript nécessaire. La couche pour JavaScript sera réalisée sous la forme d'un service séparé (qui peut être exécuté sur votre propre système ou utilisé via un service cloud public).
Pour bloquer le suivi des activités des utilisateurs, le chargement des ressources à partir d'hôtes tiers est interdit, et des listes blanches sont appliquées pour permettre le chargement d'images via des réseaux de distribution de contenu. Le support HTTPS est disponible. Il est possible de se connecter à des extensions écrites en FixScript.
Le projet est développé par Martin Dvorak en République tchèque, qui a créé le langage de programmation FixScript. La plupart du code de FixBrowser est écrite en FixScript, à l'exception des opérations critiques en termes de performances et du cadre de base. Le code FixScript est intégré dans le code C, et un compilateur, fourni dans un seul fichier contenant environ 27 000 lignes de code C (800 Ko), est utilisé pour la compilation. Le langage ressemble à C, mais utilise la typage dynamique, le ramasse-miettes et la compilation JIT. FixBrowser assure un fonctionnement sécurisé avec la mémoire et les threads et possède une protection intégrée contre les débordements d'entiers.
La mise en œuvre du moteur de navigateur a pu être considérablement simplifiée, car FixBrowser ne réalise que le rendu initial et ne prend pas en charge la mise à jour dynamique du contenu. Une fois qu'une page est affichée, elle ne change plus, ce qui rend inutile des abstractions telles que le DOM (Document Object Model). Actuellement, le travail se concentre sur la création d'un parseur HTML qui prend en charge les spécifications HTML5. L'implémentation proposée dans le premier test ne couvre encore que 30 % des tests HTML5. Un support de base pour CSS a été mis en œuvre.

Source : opennet.ru
