Die erste Testversion des webbasierten Browsers FixBrowser wurde veröffentlicht, der auf niedrigen Ressourcenverbrauch und Datenschutz ausgerichtet ist. Der Browser wird von Grund auf entwickelt und unterstützt grundsätzlich keine Ausführung von JavaScript, ermöglicht jedoch das Arbeiten mit Webseiten, die auf JavaScript basieren. Der Code ist in C und FixScript geschrieben und wird unter der ZLIB-Lizenz verbreitet. Fertige Builds sind für Linux (GTK2) und Windows verfügbar. Es sind weitere Builds für Haiku und macOS 10.6+ geplant, sowie Builds für Linux, die GTK3/4 verwenden.
Für die Arbeit mit Webseiten, die auf JavaScript basieren, wird im FixBrowser die FixProxy-Schicht verwendet, die solche Webseiten in ein Format umwandelt, mit dem man ohne JavaScript arbeiten kann. Die Umwandlung erfolgt sowohl über standardisierte Vorlagen als auch durch spezielle Fix-Handler, die die Besonderheiten bestimmter Webseiten berücksichtigen (im Paket sind Fix-Handler für über 1200 Webseiten enthalten). FixProxy entwickelt sich als eigenständiger Proxy-Prozess, der nicht an FixBrowser gebunden ist und auch mit anderen Browsern verwendet werden kann.
Es wird festgestellt, dass für die Anzeige der meisten Websites ohne JavaScript nur geringfügige Änderungen erforderlich sind. Darüber hinaus verwenden viele Websites ähnliche Technologien zur dynamischen Generierung von Inhalten, was die Anwendung standardisierter Fix-Handler ermöglicht. Zum Beispiel können universelle Fix-Handler für Websites, die auf der WordPress-Engine basieren, und Foren auf der Disqus-Plattform verwendet werden. Es ist auch möglich, Handler für Websites zu erstellen, die Inhalte dynamisch rendern – zum Beispiel kann ein Fix-Handler, der ursprünglich dynamisch über JavaScript geladene Kommentarliste, die Daten direkt im JSON-Format laden und HTML basierend auf diesen Daten selbst generieren.
Für die Verarbeitung von Captchas und JavaScript-Komponenten wie CloudFlare-Überprüfungen, die den Zugriff auf bestimmte Websites unmöglich machen, wird eine Schicht auf Basis des CEF (Chromium Embedded Framework) vorbereitet, die selektiv nur den benötigten JavaScript-Code ausführen kann. Die JavaScript-Schicht wird als separater Dienst realisiert (kann sowohl auf Ihrem System als auch über einen öffentlichen Cloud-Service gestartet werden).
Um die Verfolgung von Benutzeraktivitäten zu blockieren, ist das Laden von Ressourcen von Drittanbietern verboten, während für das Laden von Bildern über Content Delivery Networks Whitelists verwendet werden. HTTPS wird unterstützt. Es ist möglich, Erweiterungen, die in der Programmiersprache FixScript geschrieben sind, hinzuzufügen.
Das Projekt wird von Martin Dvorak aus Tschechien entwickelt, der die Programmiersprache FixScript geschaffen hat. Der Großteil des Codes von FixBrowser ist in FixScript geschrieben, mit Ausnahme von leistungsatischen kritischen Operationen und dem grundlegenden Rahmen. Der FixScript-Code wird in C-Code eingebettet, und für die Kompilierung wird ein Compiler verwendet, der in einer Datei geliefert wird, die etwa 27.000 Zeilen C-Code (800 KB) enthält. Die Sprache ähnelt C, verwendet jedoch dynamische Typisierung, Garbage Collection und JIT-Compilation. FixBrowser gewährleistet ein sicheres Arbeiten mit Speicher und Threads und bietet einen integrierten Schutz vor Ganzzahlüberläufen.
Die Implementierung der Browser-Engine konnte erheblich vereinfacht werden, da FixBrowser nur das primäre Rendering durchführt und kein dynamisches Aktualisieren des Inhalts unterstützt. Nachdem die Seite angezeigt wurde, ändert sie sich nicht mehr, wodurch auf Abstraktionen wie das DOM (Document Object Model) verzichtet werden kann. Derzeit liegt der Fokus auf der Entwicklung eines HTML-Parsers, der die HTML5-Spezifikationen unterstützt. Die im ersten Testrelease implementierte Lösung deckt bisher nur 30 % der HTML5-Tests ab. Grundlegende CSS-Unterstützung wurde implementiert.

Quelle: opennet.ru
