A fost publicată lansarea motorului de browser Servo 0.1.0 și a browserului de demonstrație ServoShell dezvoltat împreună cu acesta, ambele scrise în limbajul Rust. Versiuni gata formate sunt disponibile pentru Linux, Android, macOS și Windows. Pe lângă versiunile separate, Servo este acum disponibil și sub formă de pachet crate, permițând utilizarea motorului ca bibliotecă.
Servo 0.1.0 a devenit prima lansare pentru care a fost asigurat un ciclu lung de suport (LTS). Noi ramuri LTS vor fi publicate la fiecare 6 luni, pe baza unei lansări intermediare anterioare. Suportul pentru versiunile LTS va dura 9 luni (3 luni sunt alocate pentru trecerea la noua ramură LTS). Ramura LTS se deosebește de lansările obișnuite prin publicarea actualizărilor care corectează vulnerabilitățile din biblioteca servo, motorul JavaScript și dependențe. Se preconizează că ramura LTS va fi utilă pentru dezvoltatorii care integrează Servo în proiectele lor și nu doresc să treacă lunar la o nouă lansare intermediară, cu posibile modificări în API.
LansareaServo 0.1.0 LTS este construită pe baza versiunii intermediare 0.0.6, care a fost realizată cu câteva zile în urmă, în care au fost implementate următoarele noi funcționalități:
- În elementul HTML „button” au fost implementate atributul „command” și „commandfor”, care pot fi utilizate în butoane în locul atributelor „popovertargetaction” și „popovertarget” pentru configurarea declarativă a interacțiunii cu meniul, invocat prin apăsarea butonului.
- A fost adăugat selectorul CSS „:modal”, care permite definirea dialogului creat prin elementul
- A fost implementată regula CSS @property, care permite înregistrarea propriilor proprietăți CSS.
- Au fost adăugate proprietățile CSS „alignment-baseline” și „baseline-shift” pentru alinierea textului pe verticală.
- A fost adăugată suportul pentru header-ul „Content-Security-Policy: base-uri”, care limitează URL-urile care pot fi utilizate în elementul HTML .
- A fost adăugată suport parțial pentru încărcarea amânată a blocurilor iframe, în care conținutul din afara zonei vizibile nu se încarcă până când utilizatorul nu derulează pagina către locul situat imediat înaintea elementului. Activarea încărcării amânate a paginilor se realizează prin atributul „loading=lazy” în tag-ul iframe ().
- A fost adăugat suport parțial pentru proprietatea CSS „transform-style: preserve-3d” pentru poziționarea elementelor fiice în spațiul 3D.
- Au fost implementate evenimentele pointermove, pointerdown, pointerup și pointercancel.
- S-a asigurat rotirea imaginilor pe baza metadatelor EXIF.
- S-a asigurat utilizarea variabilei de mediu LANG pentru a selecta limba implicită pentru antetul „Accept-Language” și proprietatea navigator.language.
- Au fost adăugate API-urile Pointer Events și UserActivation.
- Au fost implementate metodele import.meta.resolve(), formData(), toJSON(), createIndex(), deleteIndex() și index().
- În browserul demonstrativ servoshell pentru modificarea setărilor, au fost implementate paginile servo:preferences (configurator GUI) și servo:config (modificarea anumitor parametri în stilul about:config). S-a adăugat suport pentru reîncărcarea paginii la apăsarea tastei F5.

- În instrumentele pentru dezvoltatorii web în modul de inspecție, a fost adăugat suport pentru editarea atributelor DOM, în consola web s-a asigurat previzualizarea obiectelor transmise prin console.log(), iar în debugger a apărut posibilitatea de suspendare și reluare a execuției scripturilor.
- API-ul pentru integrarea motorului de browser în aplicații a fost extins.
Motorul Servo a fost dezvoltat inițial de compania Mozilla, dar ulterior a trecut sub protecția organizației Linux Foundation. Servo se distinge prin suportul pentru redarea web-urilor pe mai multe fire de execuție, paralelizarea operațiunilor cu DOM (Document Object Model) și utilizarea mecanismelor de programare sigură oferite de limbajul Rust. Servo a fost creat inițial cu suport pentru divizarea codului DOM și redarea în sarcini mai mici, care pot fi executate în paralel și pot folosi mai eficient resursele CPU-urilor multicore. Unele părți din Servo au fost deja integrate în Firefox, cum ar fi motorul CSS pe mai multe fire de execuție și sistemul de redare WebRender.
Sursa: opennet.ro

