Andreas Kling, le fondateur du navigateur web Ladybird, a annoncé une modification du processus de développement du projet. Ladybird va désormais cesser d'accepter les pull requests publiques et privilégier l'intégration des modifications dans la base de code uniquement par l'intermédiaire d'accompagnateurs. Tous les pull requests publics déjà ouverts seront fermés. Le code source de Ladybird continuera d'être distribué sous la licence BSD. Les rapports de problèmes, les vulnérabilités et les tests de fonctionnement avec les sites continueront d'être acceptés sans changement. Les passionnés externes pourront également participer aux discussions sur le soutien des standards et l'architecture du projet.
Les raisons de l'arrêt de l'acceptation des pull requests publiques incluent la préparation du premier alpha release, nécessitant une répartition des responsabilités plus stricte pour les modifications apportées. Selon les créateurs de Ladybird, le code doit être accepté uniquement de la part de personnes dignes de confiance et prêtes à assumer une responsabilité personnelle pour chaque ligne de code, en vérifiant si le code correspond à l'architecture du projet et s'il pourra être maintenu à l'avenir.
Parmi les problèmes posés par l'acceptation de modifications de tous les volontaires, on note une diminution de la confiance envers les auteurs des patches — en raison de la possibilité de générer des modifications par AI, la taille du patch ne reflète plus l'effort et le temps de développement investis. L'acceptation de patches externes facilite également l'activité des malfaiteurs, qui génèrent initialement des modifications fonctionnelles pour gagner la confiance avant d'introduire une vulnérabilité cachée dans le code.
On peut également mentionner le rapport de mai sur le développement de Ladybird. Parmi les réalisations récentes, on note :
- Un compilateur JIT pour WebAssembly, basé sur Cranelift (le passage de l'interprétation à la compilation JIT a augmenté les performances lors du test CoreMark par 8 fois et de 3 à 4 fois pour les micro-tests de fonctions individuelles);
- Un nouveau bloqueur de contenu indésirable a été développé, basé sur la bibliothèque adblock-rust du projet Brave et prenant en charge les filtres de type Adblock Plus et EasyList;
- Le parser HTML a été réécrit en Rust;
- Le code de défilement de contenu a été extrait du flux principal dans un processus de composition distinct et converti en un modèle de travail asynchrone;
- L'API Media Source Extensions est désormais activée par défaut et le fonctionnement avec la vidéo en streaming a été amélioré.
- Un système de mise en cache de bytecode JavaScript sur disque a été ajouté;
- Le ramasse-mottes a été doté d'un mode de nettoyage incrémentiel, éliminant les longues interruptions des calculs et améliorant la réactivité de l'interface;
- Le support des CSS a été élargi, avec la mise en œuvre de requêtes de conteneur (@container), de la délimitation de portée (@scope), « grid-template-columns: subgrid », « scroll-margin », « scroll-padding »;
- API Permissions ajoutée;
- Le protocole HSTS (HTTP Strict Transport Security) a été mis en œuvre;
- Détection automatique de l'encodage du texte assurée;
- Les outils pour les développeurs web ont été enrichis d'un support pour l'inspection des mises en page flexbox et grid;
- Compatibilité améliorée avec Discord, Shopify, Reddit, ainsi qu'avec les sites utilisant des graphiques basés sur la bibliothèque TradingView.

- L'interface utilisateur basée sur la bibliothèque Qt a été modernisée. Un mode d'affichage vertical des onglets a été mis en œuvre. Ajout du support pour déplacer les onglets avec la souris pour les regrouper, les détacher ou les déplacer dans une autre fenêtre;

- Au lieu des styles standard pour les panneaux et les boutons Qt, un design personnalisé pour les onglets, la barre d’outils et la barre d’adresse a été réalisé. Fonctionnalité de restauration des onglets et fenêtres récemment fermés ajoutée. Fonction d'insertion de texte à partir du presse-papiers via le bouton central de la souris mise en œuvre.

Le navigateur Ladybird est développé par Andreas Kling, qui a travaillé auparavant chez Nokia sur le développement de KHTML, puis a été l'un des développeurs de Safari chez Apple. Le projet a initialement été créé comme une application pour le système d'exploitation SerenityOS, mais a été séparé pour devenir un projet distinct à l'été 2024, avec un don de 1 million de dollars. Le navigateur est écrit en C++ (le projet de réécriture des composants en Rust a commencé) et est distribué sous licence BSD. Le projet développe son propre moteur LibWeb, son interpréteur JavaScript LibJS et des bibliothèques associées.
Source : opennet.ru



