Die erste Testversion des Web-Browsers FixBrowser wurde veröffentlicht, der auf niedrigen Ressourcenverbrauch und Datenschutz ausgelegt ist. Der Browser wird von Grund auf neu entwickelt und unterstützt grundsätzlich keine Ausführung von JavaScript, ermöglicht jedoch die Nutzung von auf JavaScript basierenden Websites. 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 ist geplant, Builds für Haiku und macOS 10.6+ zu erstellen und auch Builds für Linux mit GTK3/4 zu entwickeln.
Für die Arbeit mit auf JavaScript basierenden Websites wird im FixBrowser die Schicht FixProxy eingesetzt, die solche Websites in ein darstellbares Format umwandelt, mit dem ohne JavaScript gearbeitet werden kann. Die Umwandlung erfolgt sowohl nach typischen Vorlagen als auch durch fix-Handler, die die Spezifika einzelner Websites berücksichtigen (im Paket sind fix-Handler für mehr als 1200 Websites enthalten). FixProxy entwickelt sich in Form eines separaten Proxy-Prozesses, der nicht an FixBrowser gebunden ist und auch mit anderen Browsern verwendet werden kann.
Es wird festgestellt, dass für die Darstellung der meisten Websites ohne JavaScript nur geringfügige Änderungen erforderlich sind. Außerdem nutzen viele Websites ähnliche Technologien zur dynamischen Generierung von Inhalten, was die Anwendung typischer fix-Handler für deren Rendering ermöglicht. Zum Beispiel können universelle fix-Handler für Websites auf Basis der WordPress-Engine und Foren auf der Disqus-Plattform verwendet werden. Es ist auch möglich, Handler für Websites zu erstellen, die Inhalte dynamisch rendern – beispielsweise wird für die Anzeige von Kommentarlisten, die ursprünglich dynamisch mit JavaScript geladen werden, der fix-Handler direkt die Daten im JSON-Format laden und basierend darauf HTML generieren.
Zur Verarbeitung von Captchas und JavaScript-Komponenten, wie den Prüfungen von CloudFlare, ohne die der Zugang zu bestimmten Websites nicht möglich ist, wird geplant, eine Schicht auf Basis des CEF-Frameworks (Chromium Embedded Framework) vorzubereiten, die selektiv nur den notwendigen JavaScript-Code ausführen kann. Die Schicht für JavaScript wird als separater Dienst realisiert (kann entweder auf dem eigenen System oder über einen öffentlichen Cloud-Service gestartet werden).
Um die Nachverfolgung von Benutzeraktivitäten zu blockieren, ist das Laden von Ressourcen von externen Hosts untersagt, während für das Laden von Bildern über Content Delivery Networks Whitelists verwendet werden. HTTPS wird unterstützt. Es ist möglich, Erweiterungen einzubinden, die in der Sprache FixScript geschrieben sind.
Das Projekt wird von Martin Dvorak aus Tschechien entwickelt, der einst die Programmiersprache FixScript erstellt hat. Der Großteil des Codes von FixBrowser ist in FixScript geschrieben, mit Ausnahme von leistungskritischen Operationen und dem grundlegenden Rahmen. Der FixScript-Code wird in C-Code eingebettet, und für den Build wird ein Compiler verwendet, der in einer einzigen Datei geliefert wird und etwa 27.000 Zeilen C-Code (800 KB) umfasst. Die Sprache ähnelt C, verwendet jedoch dynamische Typisierung, eine Garbage Collection und JIT-Kompilierung. FixBrowser sorgt für sicheren Umgang mit Speicher und Threads und verfügt über einen eingebauten Schutz gegen Integer-Überläufe.
Die Implementierung des Browser-Engines konnte erheblich vereinfacht werden, da FixBrowser nur das primäre Rendering durchführt und keine dynamische Aktualisierung des Inhalts unterstützt. Nachdem die Seite angezeigt wird, ändert sie sich nicht mehr, daher kann auf Abstraktionen wie das DOM (Document Object Model) verzichtet werden. Derzeit liegt der Fokus auf der Erstellung eines HTML-Parsers, der die Spezifikationen von HTML5 unterstützt. Die im ersten Test-Release vorgeschlagene Implementierung deckt bisher nur 30% der HTML5-Tests ab. Grundlegende Unterstützung für CSS wurde implementiert.

Quelle: opennet.ru
