Modifica del processo di sviluppo e progresso nello sviluppo del browser Ladybird.

Andreas Kling, fondatore del browser web Ladybird, ha annunciato una modifica nel processo di sviluppo del progetto. Ladybird non accetterà più pull request pubbliche e procederà a promuovere le modifiche al codice solo attraverso i partner. 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 di funzionalità con i siti continueranno ad essere accettate invariabilmente. Gli entusiasti esterni potranno anche partecipare alle discussioni riguardanti il supporto agli standard e l'architettura del progetto.

Le ragioni per cui si smette di accettare pull request pubbliche includono la preparazione per la prima versione alpha, che richiede una distribuzione della responsabilità più rigorosa per le modifiche apportate. Secondo i creatori di Ladybird, il codice deve essere accettato solo da chi è di fiducia e pronto a prendere responsabilità personale per ogni riga di codice, e se il codice corrisponde all'architettura del progetto e sarà mantenibile in futuro.

Tra i problemi emersi con l'accettazione delle modifiche da parte di tutti i candidati, si segnala la diminuzione del livello di fiducia nei confronti degli autori delle patch, a causa della possibilità di generare modifiche tramite AI; le dimensioni della patch ora non riflettono più il lavoro e il tempo di sviluppo impiegati. L'accettazione di patch di terzi semplifica anche le attività degli attaccanti, che inizialmente generano modifiche funzionanti per guadagnare fiducia al fine di inserire vulnerabilità nascoste nel codice.

In aggiunta, si può menzionare il rapporto di maggio sullo sviluppo di Ladybird. Tra i risultati recenti si evidenziano:

  • Implementato un compilatore JIT per WebAssembly, basato su Cranelift (il passaggio dall'interpretazione alla compilazione JIT ha aumentato le prestazioni del test CoreMark di 8 volte e da 3 a 4 volte nei microtest di singole funzioni);
  • Utilizzato 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 il caricamento dei contenuti è stato estratto dal flusso principale in un processo di compositing separato ed è stato adattato a un modello di lavoro asincrono;
  • Le API Media Source Extensions sono attivate per impostazione predefinita e sono stati migliorati il supporto per lo streaming video;
  • È stato aggiunto un sistema di caching del bytecode JavaScript su disco;
  • Nel garbage collector è stata implementata una modalità di pulizia della memoria incrementale, che esclude lunghe interruzioni dei calcoli e aumenta la reattività dell'interfaccia;
  • È stata ampliata la compatibilità con CSS, sono stati implementati i container queries (@container), la delimitazione dell'area di visibilità (@scope), "grid-template-columns: subgrid", "scroll-margin", "scroll-padding";
  • È stato aggiunto l'API Permissions;
  • È stato implementato il protocollo HSTS (HTTP Strict Transport Security);
  • È stata garantita l'automazione nel riconoscimento della codifica del testo;
  • Nella strumentazione per sviluppatori web è stato aggiunto il supporto per l'ispezione di layout flexbox e grid;
  • È stata migliorata la compatibilità con Discord, Shopify, Reddit e con i siti che utilizzano grafica basata sulla libreria TradingView.
  • È stata modernizzata l'interfaccia utente basata sulla libreria Qt. È stata implementata la modalità verticale per le schede. È stato aggiunto il supporto per spostare le schede con il mouse per gruppi, staccarle o trasferirle in un'altra finestra;

  • Invece dei consueti stili per pannelli e pulsanti di Qt, è stata implementata una propria personalizzazione delle schede, della barra degli strumenti e della barra degli indirizzi. È stata aggiunta la possibilità di ripristinare le schede e le finestre chiuse di recente. È stata implementata la funzione di incollare il testo dagli appunti con il tasto centrale del mouse.

Il browser Ladybird è sviluppato da Andreas Kling, che in passato ha lavorato per Nokia ed è stato coinvolto nello 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 separato in un progetto autonomo e ha ricevuto un finanziamento di 1 milione di dollari. Il browser è scritto in C++ (è iniziato il progetto di riscrittura dei componenti in Rust) e viene distribuito con licenza BSD. Il progetto sviluppa il proprio motore LibWeb, l'interprete JavaScript LibJS e librerie correlate.

Fonte: opennet.ru

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