Modifica del processo di sviluppo e progressi nel browser Ladybird

Andreas Kling, fondatore del browser web Ladybird, ha annunciato un cambiamento nel processo di sviluppo del progetto. Ladybird da ora in poi interrompe l'accettazione di pull request pubbliche e passa a promuovere le modifiche nel codice sorgente solo attraverso i collaboratori. Tutte le pull request pubbliche già aperte saranno chiuse. Il codice sorgente di Ladybird continuerà a essere distribuito sotto licenza BSD. Le segnalazioni di problemi, vulnerabilità e test per l'uso dei siti saranno comunque accettate senza modifiche. Gli appassionati esterni potranno anche partecipare alle discussioni relative al supporto degli standard e all'architettura del progetto.

Tra le ragioni per l'interruzione dell'accettazione di pull request pubbliche si menziona la preparazione per il primo rilascio alfa, che richiede una distribuzione più rigorosa della responsabilità per le modifiche apportate. Secondo i creatori di Ladybird, il codice dovrebbe essere accettato solo da coloro che sono affidabili e pronti ad assumersi la responsabilità personale per ogni riga di codice, e se il codice stesso sia conforme all'architettura del progetto e possa essere mantenuto in futuro.

Tra i problemi che sorgono nell'accettare modifiche da chiunque si segnala la riduzione del livello di fiducia negli autori delle patch: a causa della possibilità di generare modifiche tramite AI, la dimensione della patch ora non corrisponde più al tempo e allo sforzo dedicato allo sviluppo. L'accettazione di patch esterne semplifica anche l'attività dei malintenzionati, i quali inizialmente generano modifiche funzionanti per guadagnare fiducia e successivamente inserire vulnerabilità nel codice.

In aggiunta, si segnala il rapporto di maggio sullo sviluppo di Ladybird. Tra i recenti successi si evidenziano:

  • Realizzazione di un compilatore JIT per WebAssembly, basato su Cranelift (il passaggio dall'interpretazione alla compilazione JIT ha aumentato di 8 volte le prestazioni nel test CoreMark e di 3-4 volte nei microtest delle singole funzioni);
  • Implementato un nuovo blocco per contenuti indesiderati, basato sulla libreria adblock-rust del progetto Brave e che supporta filtri in stile Adblock Plus e EasyList;
  • Riscritto il parser HTML in Rust;
  • Il codice per lo scorrimento del contenuto è stato estratto dal flusso principale e spostato in un processo di compositing separato, adottando un modello di lavoro asincrono;
  • Abilitata per default l'API Media Source Extensions e migliorata la gestione dello streaming video;
  • È stato aggiunto un sistema di caching del bytecode JavaScript su disco;
  • Nel garbage collector è stata implementata una modalità di pulizia incrementale della memoria, che esclude lunghe interruzioni dei calcoli e migliora la reattività dell'interfaccia;
  • Ampliato il supporto CSS, implementate le query dei contenitori (@container), delimitazione dell'area di visibilità (@scope), «grid-template-columns: subgrid», «scroll-margin», «scroll-padding»;
  • Aggiunto l'API Permissions;
  • Implementato il protocollo HSTS (HTTP Strict Transport Security);
  • Fornito il rilevamento automatico della codifica del testo;
  • Negli strumenti per gli sviluppatori web è stato aggiunto il supporto per l'ispezione di layout flexbox e grid;
  • Migliorata la compatibilità con Discord, Shopify, Reddit e con i siti che utilizzano grafici basati sulla libreria TradingView.
  • Modernizzata l'interfaccia utente basata sulla libreria Qt. Implementata la modalità di visualizzazione verticale delle schede. Aggiunto il supporto per il trascinamento delle schede con il mouse per raggrupparle, staccarle o spostarle in un'altra finestra;

  • Invece degli stili standard per i pannelli e i pulsanti di Qt, è stato implementato un design personalizzato per schede, barre degli strumenti e la barra degli indirizzi. Aggiunta la possibilità di ripristinare le schede e le finestre chiuse di recente. Implementata la funzione di incollare il testo dagli appunti con il pulsante centrale del mouse.

Il browser Ladybird è sviluppato da Andreas Kling, che ha lavorato in passato per Nokia e si è occupato dello sviluppo di KHTML, e successivamente in Apple come uno degli sviluppatori di Safari. Inizialmente, il progetto è stato creato come un'applicazione per il sistema operativo SerenityOS, ma nell'estate del 2024 è stato trasformato in un progetto separato ed ha ricevuto una donazione di 1 milione di dollari. Il browser è scritto in C++ (è iniziato il progetto di riscrittura dei componenti in Rust) e distribuito sotto licenza BSD. Il progetto include il proprio motore LibWeb, l'interprete JavaScript LibJS e librerie correlate.

Fonte: opennet.ru

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster