Änderung des Entwicklungsprozesses und Fortschritte bei der Entwicklung des Browsers Ladybird

Andreas Kling, der Gründer des Web-Browsers Ladybird, hat eine Änderung im Entwicklungsprozess des Projekts bekannt gegeben. Ladybird wird künftig die Annahme öffentlicher Pull-Requests einstellen und Änderungen in den Code nur noch durch Verantwortliche vorantreiben. Alle bereits offenen öffentlichen Pull-Requests werden geschlossen. Der Quellcode von Ladybird wird weiterhin unter der BSD-Lizenz angeboten. Meldungen zu Problemen, Sicherheitsanfälligkeiten und Tests mit Webseiten werden weiterhin unverändert angenommen. Externe Enthusiasten können ebenfalls an Diskussionen über die Unterstützung von Standards und die Architektur des Projekts teilnehmen.

Als Gründe für die Einstellung der Annahme öffentlicher Pull-Requests wird die Vorbereitung auf die erste Alpha-Version genannt, die eine strengere Verteilung der Verantwortung für die eingegangenen Änderungen erfordert. Nach Ansicht der Ersteller von Ladybird sollte Code nur von vertrauenswürdigen Personen angenommen werden, die bereit sind, für jede Codezeile persönliche Verantwortung zu übernehmen, und ob der Code der Architektur des Projekts entspricht und zukünftig unterstützt werden kann.

Zu den Problemen, die bei der Annahme von Änderungen durch jeden Interessierten auftreten, gehört der Rückgang des Vertrauens in die Autoren von Patches – aufgrund der Möglichkeit, Änderungen über KI zu generieren. Die Größe des Patches korreliert mittlerweile nicht mehr mit dem Aufwand und der investierten Entwicklungszeit. Die Annahme von externen Patches erleichtert auch die Aktivitäten von Angreifern, die zunächst funktionierende Änderungen generieren, um Vertrauen zu gewinnen, um später versteckte Sicherheitsanfälligkeiten in den Code einzuschleusen.

Zusätzlich kann auf den Mai-Bericht über die Entwicklung von Ladybird hingewiesen werden. Zu den jüngsten Erfolgen zählt:

  • Ein JIT-Compiler für WebAssembly wurde implementiert, der auf Cranelift basiert (der Übergang von der Interpretation zur JIT-Kompilierung hat die Leistung beim Durchlauf des CoreMark-Tests um das Achtfache und bei Mikrotests einzelner Funktionen um das 3- bis 4-fache gesteigert);
  • Ein neuer Blocker für unerwünschte Inhalte wurde aktiviert, der auf der Bibliothek adblock-rust des Projekts Brave basiert und Filter im Stil von Adblock Plus und EasyList unterstützt;
  • Der HTML-Parser wurde in Rust neu geschrieben;
  • Der Inhaltsscroll-Code wurde aus dem Hauptthread in einen separaten Kompositing-Prozess ausgelagert und auf ein asynchrones Arbeitsmodell umgestellt;
  • Die API für Media Source Extensions wurde standardmäßig aktiviert und die Unterstützung für Streaming-Videos verbessert.
  • Ein System zur Zwischenspeicherung von JavaScript-Bytecode auf der Festplatte wurde hinzugefügt;
  • Im Garbage Collector wurde ein inkrementeller Modus für die Speicherräumung implementiert, der lange Unterbrechungen vermeidet und die Reaktionsfähigkeit der Benutzeroberfläche erhöht;
  • Die Unterstützung von CSS wurde erweitert, Container-Abfragen (@container), Sichtbereichsgrenzen (@scope), "grid-template-columns: subgrid", "scroll-margin", "scroll-padding" wurden implementiert;
  • Eine API für Berechtigungen wurde hinzugefügt;
  • Das HSTS-Protokoll (HTTP Strict Transport Security) wurde implementiert;
  • Automatische Erkennung der Textkodierung wurde bereitgestellt;
  • Im Webentwicklertools wurde die Unterstützung für die Inspektion von Flexbox- und Grid-Layouts hinzugefügt;
  • Die Kompatibilität mit Discord, Shopify, Reddit und Webseiten, die Grafiken auf Basis der TradingView-Bibliothek verwenden, wurde verbessert.
  • Die Benutzeroberfläche auf Basis der Qt-Bibliothek wurde modernisiert. Der vertikale Tab-Anzeigemodus wurde implementiert. Die Unterstützung für das Verschieben von Tabs per Maus zum Gruppieren, Trennen oder Verschieben in ein anderes Fenster wurde hinzugefügt;

  • Anstelle der typischen Qt-Stile für Panels und Schaltflächen wurde ein eigenes Design für Tabs, Werkzeugleisten und die Adressleiste realisiert. Die Möglichkeit zur Wiederherstellung kürzlich geschlossener Tabs und Fenster wurde hinzugefügt. Implementiert wurde die Funktion zum Einfügen von Text aus der Zwischenablage mit der mittleren Maustaste.

Der Browser Ladybird wird von Andreas Kling entwickelt, der einst bei Nokia arbeitete und an KHTML arbeitete, später bei Apple einer der Entwickler von Safari war. Ursprünglich wurde das Projekt als Anwendung für das Betriebssystem SerenityOS erstellt, wurde jedoch im Sommer 2024 als eigenständiges Projekt ausgegliedert und erhielt eine Spende von 1 Million Dollar. Der Browser ist in C++ geschrieben (das Projekt zur Neuschreibung von Komponenten in Rust hat begonnen) und wird unter der BSD-Lizenz verteilt. Das Projekt entwickelt eine eigene Engine, LibWeb, den JavaScript-Interpreter LibJS und zugehörige Bibliotheken.

Quelle: opennet.ru

60GB SSD 8Gb DDR4