Andreas Kling, założyciel przeglądarki internetowej Ladybird, ogłosił zmiany w procesie rozwoju projektu. Ladybird przestaje przyjmować publiczne pull requesty i przechodzi do wprowadzania zmian w kodzie tylko przez opiekunów. Wszystkie już otwarte publiczne pull requesty zostaną zamknięte. Kod źródłowy Ladybird będzie nadal dostarczany na licencji BSD. Zgłoszenia o problemach, lukach w zabezpieczeniach i testach działania z witrynami będą przyjmowane bez zmian. Zewnętrzni entuzjaści będą również mogli uczestniczyć w dyskusjach związanych z wsparciem standardów i architekturą projektu.
Jako powody zaprzestania przyjmowania publicznych pull requestów podaje się przygotowania do pierwszej alpha-wersji, co wymagało bardziej rygorystycznego przydziału odpowiedzialności za wprowadzane zmiany. Według twórców Ladybird kod powinien być przyjmowany tylko od tych, którzy są godni zaufania i gotowi ponieść osobistą odpowiedzialność za każdą linijkę kodu oraz sprawdzić, czy kod jest zgodny z architekturą projektu i czy będzie mógł być wspierany w przyszłości.
Jednym z problemów związanych z przyjmowaniem zmian od wszystkich chętnych jest spadek poziomu zaufania do autorów łatek — ze względu na możliwość generowania zmian przez AI, rozmiar łatki nie odzwierciedla już kosztów pracy i czasu poświęconego na rozwój. Przyjmowanie zewnętrznych łatek ułatwia również działalność przestępców, którzy najpierw generują działające zmiany, aby zdobyć zaufanie do późniejszego wprowadzenia w kod ukrytej luki.
Dodatkowo można wspomnieć o majowym raporcie o rozwoju Ladybird. Wśród ostatnich osiągnięć wyróżnia się:
- Zrealizowano kompilator JIT dla WebAssembly oparty na Cranelift (przejście z interpretacji na kompilację JIT zwiększyło wydajność testu CoreMark 8-krotnie oraz 3-4-krotnie w mikrotestach poszczególnych funkcji);
- Wprowadzono nowy blokator niechcianych treści oparty na bibliotece adblock-rust z projektu Brave, wspierający filtry w stylu Adblock Plus i EasyList;
- Przepisano parser HTML w języku Rust;
- Kod przewijania treści przeniesiono z głównego wątku do osobnego procesu kompozycji i przetworzono na asynchroniczny model pracy;
- Domyślnie włączono API Media Source Extensions oraz poprawiono obsługę strumieniowego wideo.
- Dodano system buforowania bajtów JavaScript na dysku;
- W zbieraczu śmieci zaimplementowano inkrementalny tryb oczyszczania pamięci, eliminujący długotrwałe wstrzymania obliczeń i zwiększający responsywność interfejsu;
- Rozszerzona obsługa CSS, wprowadzono zapytania kontenerowe (@container), zakres widoczności (@scope), „grid-template-columns: subgrid”, „scroll-margin”, „scroll-padding”;
- Dodano API Permissions;
- Wdrożono protokół HSTS (HTTP Strict Transport Security);
- Zautomatyzowano rozpoznawanie kodowania tekstu;
- W narzędziach dla programistów webowych dodano wsparcie dla inspekcji układów flexbox i grid;
- Ulepszono kompatybilność z Discord, Shopify, Reddit oraz z witrynami korzystającymi z grafik opartych na bibliotece TradingView.

- Zmodernizowano interfejs użytkownika oparty na bibliotece Qt. Wprowadzono tryb pionowego wyświetlania kart. Dodano możliwość przenoszenia kart myszą w celu grupowania, odpinania lub przenoszenia do innego okna;

- Zamiast typowych dla Qt stylów paneli i przycisków, wprowadzono własne stylizacje kart, pasków narzędzi i paska adresu. Dodano możliwość przywracania niedawno zamkniętych kart i okien. Wdrożono funkcję wklejania tekstu z schowka za pomocą środkowego przycisku myszy.

Przeglądarka Ladybird jest rozwijana przez Andreasa Klina, który wcześniej pracował w firmie Nokia i zajmował się rozwojem KHTML, a później w Apple był jednym z deweloperów Safari. Początkowo projekt został stworzony jako aplikacja dla systemu operacyjnego SerenityOS, ale latem 2024 roku został wydzielony jako osobny projekt i otrzymał darowiznę w wysokości 1 miliona dolarów. Przeglądarka napisana jest w języku C++ (projekt rozpoczął przepisywanie komponentów na Rust) i jest dystrybuowana na licencji BSD. Projekt rozwija własny silnik LibWeb, interpreter JavaScript LibJS oraz powiązane biblioteki.
Źródło: opennet.ru



