Andreas Kling, fundador del navegador web Ladybird, anunció un cambio en el proceso de desarrollo del proyecto. Ladybird dejará de aceptar solicitudes de extracción públicas y pasará a promover los cambios en la base del código únicamente a través de los mantenedores. Todas las solicitudes de extracción públicas abiertas serán cerradas. El código fuente de Ladybird seguirá bajo la licencia BSD. Se seguirán aceptando informes de errores, vulnerabilidades y pruebas de funcionamiento con sitios sin cambios. Los entusiastas externos también podrán participar en discusiones relacionadas con el apoyo a los estándares y la arquitectura del proyecto.
Las razones detrás del cese de la aceptación de solicitudes de extracción públicas incluyen la preparación para el primer lanzamiento alfa, que requiere una distribución más estricta de la responsabilidad por los cambios realizados. Según los creadores de Ladybird, el código solo debe ser aceptado de aquellos en quienes se confía y que están dispuestos a asumir la responsabilidad personal por cada línea de código, así como asegurar que el código se adhiera a la arquitectura del proyecto y pueda ser mantenido en el futuro.
Entre los problemas que surgen al aceptar cambios de todos los interesados se menciona la disminución de la confianza en los autores de los parches, debido a la posibilidad de que los cambios sean generados por IA, haciendo que el tamaño del parche ya no se ajuste a los esfuerzos de trabajo y al tiempo gastado en su desarrollo. Aceptar parches de terceros también facilita la labor de los atacantes, quienes inicialmente generan cambios funcionales para ganar confianza y luego introducir vulnerabilidades ocultas en el código.
Adicionalmente, se puede mencionar el informe de desarrollo de Ladybird de mayo. Entre los logros recientes se destacan:
- Se ha implementado un compilador JIT para WebAssembly, basado en Cranelift (la transición de la interpretación a la compilación JIT ha aumentado el rendimiento de la prueba CoreMark en 8 veces y de micropruebas de funciones individuales en 3-4 veces);
- Se ha incorporado un nuevo bloqueador de contenido no deseado, basado en la biblioteca adblock-rust del proyecto Brave y que admite filtros al estilo de Adblock Plus y EasyList;
- Se ha reescrito el analizador HTML en Rust;
- El código de desplazamiento de contenido se ha separado del hilo principal en un proceso de composición separado y se ha trasladado a un modelo de trabajo asincrónico;
- Se ha habilitado por defecto la API Media Source Extensions y se ha mejorado la gestión del video en streaming;
- Se ha añadido un sistema de almacenamiento en caché de bytecode de JavaScript en disco;
- En el recolector de basura se ha implementado un modo de limpieza de memoria incremental, que excluye largas pausas de cálculo y mejora la capacidad de respuesta de la interfaz;
- Se ha ampliado el soporte para CSS, se han implementado consultas de contenedor (@container), delimitación del ámbito (@scope), "grid-template-columns: subgrid", "scroll-margin", "scroll-padding";
- Se ha añadido API Permissions;
- Se ha implementado el protocolo HSTS (HTTP Strict Transport Security);
- Se ha asegurado la detección automática de la codificación del texto;
- Se ha añadido soporte para inspeccionar diseños de flexbox y grid en las herramientas para desarrolladores web;
- Se ha mejorado la compatibilidad con Discord, Shopify, Reddit, así como con sitios que utilizan gráficos basados en la biblioteca TradingView.

- Se ha modernizado la interfaz de usuario basada en la biblioteca Qt. Se ha implementado un modo de visualización vertical de las pestañas. Se ha añadido soporte para mover pestañas con el ratón para agruparlas, desacoplarlas o trasladarlas a otra ventana;

- En lugar de los estilos predeterminados de Qt para paneles y botones, se ha implementado un diseño propio para pestañas, barras de herramientas y la barra de direcciones. Se ha añadido la posibilidad de restaurar pestañas y ventanas cerradas recientemente. Se ha implementado una función para pegar texto del portapapeles con el botón medio del ratón.

El navegador Ladybird es desarrollado por Andreas Kling, quien anteriormente trabajó en Nokia y participó en el desarrollo de KHTML, y luego fue uno de los desarrolladores de Safari en Apple. Inicialmente, el proyecto se creó como una aplicación para el sistema operativo SerenityOS, pero en el verano de 2024 se separó en un proyecto independiente y recibió una donación de 1 millón de dólares. El navegador está escrito en C++ (el proyecto de reescritura de componentes en Rust ha comenzado) y se distribuye bajo la licencia BSD. El proyecto desarrolla su propio motor LibWeb, el intérprete de JavaScript LibJS y bibliotecas asociadas.
Fuente: opennet.ru



