Andreas Kling, the founder of the Ladybird web browser, announced a change in the project's development process. Ladybird will no longer accept public pull requests and will transition to promoting changes to the codebase only through maintainers. All already opened public pull requests will be closed. The source code of Ladybird will continue to be provided under the BSD license. Reports of issues, vulnerabilities, and testing related to websites will still be accepted without change. Third-party enthusiasts will also be able to participate in discussions related to standards support and the project's architecture.
The reasons for the cessation of public pull requests include preparing for the first alpha release, which requires stricter distribution of responsibility for the changes made. According to the creators of Ladybird, code should be accepted only from those who are trustworthy and willing to take personal responsibility for every line of code, as well as whether the code meets the project's architecture and can be maintained in the future.
Among the problems arising from accepting changes from everyone willing is the reduction in trust towards patch authors—due to the possibility of changes being formed through AI, the size of the patch now does not correlate with the labor costs and time spent on development. Accepting third-party patches also simplifies the activities of malicious actors, initially generating working changes to earn trust for future implementation of hidden vulnerabilities in the code.
Additionally, the May report on the development of Ladybird can be noted. Recent achievements include:
- A JIT compiler for WebAssembly based on Cranelift has been implemented (transitioning from interpretation to JIT compilation increased the performance of the CoreMark test by 8 times and 3-4 times for microtests of individual functions);
- A new unwanted content blocker has been introduced based on the adblock-rust library from the Brave project, supporting filters in the style of Adblock Plus and EasyList;
- The HTML parser has been rewritten in Rust;
- The content scrolling code has been moved from the main thread to a separate compositing process and switched to an asynchronous working model;
- The Media Source Extensions API is enabled by default, and streaming video performance has been improved.
- A JavaScript bytecode caching system has been added on disk;
- The garbage collector now features an incremental memory cleaning mode that avoids long computation pauses and enhances interface responsiveness;
- CSS support has been expanded with container queries (@container), scope isolation (@scope), 'grid-template-columns: subgrid', 'scroll-margin', and 'scroll-padding';
- API Permissions has been added;
- The HSTS (HTTP Strict Transport Security) protocol has been implemented;
- Automatic text encoding detection has been ensured;
- Web developer tools now support inspecting flexbox and grid layouts;
- Improved compatibility with Discord, Shopify, Reddit, and websites using graphics based on the TradingView library.

- The user interface has been modernized based on the Qt library. A vertical tab display mode has been implemented. Support for dragging tabs with the mouse for grouping, detaching, or moving to another window has been added;

- Instead of the standard Qt styles for panels and buttons, a custom design for tabs, toolbars, and the address bar has been implemented. The ability to restore recently closed tabs and windows has been added. A function for pasting text from the clipboard using the middle mouse button has been implemented.

The Ladybird browser is being developed by Andreas Kling, who previously worked at Nokia on KHTML and later was one of the developers of Safari at Apple. The project was initially created as an application for the SerenityOS operating system but was spun off into a separate project in the summer of 2024, receiving a $1 million donation. The browser is written in C++ (the project has started rewriting components in Rust) and is distributed under a BSD license. The project is developing its own engine LibWeb, JavaScript interpreter LibJS, and associated libraries.
Source: opennet.ru



