Compania Google a lansat versiunea web-browser-ului Chrome 105. De asemenea, a fost disponibilă o versiune stabilă a proiectului liber Chromium, care stă la baza Chrome. Browserul Chrome se deosebește de Chromium prin utilizarea logo-urilor Google, un sistem de trimitere a notificărilor în caz de criză, module pentru redarea conținutului video protejat prin drepturi de autor (DRM), o sistemă automată de instalare a actualizărilor, activarea permanentă a izolării Sandbox, furnizarea cheilor către Google API și transmiterea parametrilor RLZ în timpul căutărilor. Pentru cei care au nevoie de mai mult timp pentru actualizare, există o ramură de suport numită Extended Stable, care este actualizată la fiecare 8 săptămâni. Următoarea lansare Chrome 106 este programată pentru 27 septembrie.
Schimbări principale în Chrome 105:
- Suportul pentru aplicațiile web specializate Chrome Apps a fost întrerupt, fiind înlocuite de aplicațiile web independente bazate pe tehnologia Progressive Web Apps (PWA) și standardele Web API. Google a anunțat inițial intenția de a renunța la Chrome Apps încă din 2016 și a planificat să înceteze suportul până în 2018, dar apoi a amânat acest plan. În Chrome 105, la încercarea de a instala aplicațiile Chrome Apps, va fi afișată o avertizare privind întreruperea suportului, dar aplicațiile vor continua să funcționeze. În Chrome 109, posibilitatea de rulare a aplicațiilor Chrome Apps va fi dezactivată.
- A fost asigurată o izolare suplimentară pentru procesul „renderer”, responsabil de redare. Acest proces este acum executat într-un container suplimentar (App Container), implementat deasupra sistemului existent de izolare sandbox. În cazul exploatării unei vulnerabilități în codul de redare, restricțiile adăugate nu vor permite atacatorului accesul la rețea, datorită interzicerii apelurilor de sistem legate de capabilitățile de rețea.
- A fost implementat un depozit unificat propriu pentru certificatele rădăcină ale autorităților de certificare (Chrome Root Store). Noua soluție nu este deocamdată activată implicit și, până la finalizarea implementării, certificatele vor continua să fie verificate folosind depozitul specific pentru fiecare sistem de operare. Soluția testată este similară abordării companiei Mozilla, care susține un depozit independent de certificate rădăcină pentru Firefox, utilizat ca primul lanț de verificare a încrederii certificatele în timpul accesării site-urilor via HTTPS.
- A început pregătirea pentru eliminarea suportului API Web SQL, care nu este standardizat, este utilizat foarte puțin și necesită o rescriere pentru a îndeplini cerințele moderne de securitate. În Chrome 105, accesul la Web SQL din codul încărcat fără a utiliza HTTPS este interzis, iar în DevTools a fost adăugat un mesaj de avertizare privind deprecierea tehnologiei. În 2023, API-ul Web SQL va fi eliminat. Pentru dezvoltatorii care necesită o funcționalitate similară, va fi pregătită o alternativă bazată pe WebAssembly.
- În Chrome sync, suportul pentru sincronizarea cu Chrome 73 și versiunile anterioare a fost oprit.
- Pentru platformele macOS și Windows, a fost activat vizualizatorul de certificate încorporat, care a înlocuit apelul interfeței oferite de sistemul de operare. Prețul vizualizatorului încorporat era utilizat anterior doar în versiunile pentru Linux și ChromeOS.
- În versiunea pentru platforma Android au fost adăugate setări pentru gestionarea API-ului „Topics & Interest Group”, promovat în cadrul inițiativei Privacy Sandbox, care permite definirea categoriilor de interese ale utilizatorului și utilizarea acestora în locul cookie-urilor de urmărire pentru a grupa utilizatorii cu interese similare fără a identifica utilizatori individuali. În versiunea anterioară, setări asemănătoare au fost adăugate în versiunile pentru Linux, ChromeOS, macOS și Windows.
- Când protecția avansată a browserului este activată (Safe Browsing > Enhanced protection), este realizată colectarea telemetriei despre extensiile instalate, accesarea API-ului și conexiunea cu site-uri externe. Datele specificate sunt utilizate pe serverele Google pentru a detecta activități malițioase și încălcări ale regulilor de extindere a browserului.
- Utilizarea caracterelor non-ASCII în domeniile specificate în antetul cookie-urilor a fost mutată în categoria depreciată și va fi blocată în versiunea Chrome 106 (pentru domeniile IDN, domeniile trebuie specificate în format punycode). Această modificare va aduce browserul în conformitate cu cerințele RFC 6265bis și comportamentul implementat în Firefox.
- A fost propus API-ul Custom Highlight, destinat modificării stilului zonelor de text selectate și permițând o flexibilitate mai mare decât stilul fix oferit de browser pentru selecții (::selection, ::inactive-selection) și evidențierea erorilor de sintaxă (::spelling-error, ::grammar-error). În prima variantă a API-ului, este suportată modificarea culorii textului și a fundalului prin intermediul pseudoelementelor color și background-color, dar ulterior vor fi adăugate și alte posibilități de personalizare a stilului.
Ca exemplu de sarcini care pot fi rezolvate cu noul API, se menționează integrarea în frame-urile web care oferă instrumente pentru editarea textului a propriilor mecanisme de evidențiere, diverse tipuri de evidențiere în cazul editării simultane de către mai mulți utilizatori, căutarea în documentele virtualizate și marcare a erorilor în timpul verificării ortografice. Dacă anterior pentru a crea o evidențiere personalizată erau necesare manipulări complexe cu arborele DOM, API-ul Custom Highlight oferă operații gata pregătite pentru adăugarea și eliminarea evidențierii, fără a afecta structura DOM și aplicând stiluri asociate cu obiectele Range.
- În CSS a fost adăugat prefixul „@container”, care permite formarea stilului elementelor în funcție de dimensiunea elementului părinte. „@container” este similar cu prefixele „@media”, dar se aplică în legătură cu dimensiunea blocului (containerului) în care este plasat elementul, permițând stabilirea unei logici de selecție a stilului pentru elementele fiice, independent de locul în care se află elementul pe pagină.

- A fost adăugat pseudoclasa CSS „:has()” pentru a verifica existența unui element fiu într-un element părinte. De exemplu, „p:has(span)” acoperă elementele <p>, în interiorul cărora există un element <span>.
- A fost adăugat API-ul HTML Sanitizer, care permite eliminarea din conținut a elementelor care influențează afișarea și execuția la ieșirea prin metoda setHTML(). API-ul poate fi util pentru curățarea datelor externe de HTML-uri care pot fi folosite în atacuri XSS.
- A fost oferită posibilitatea de a utiliza API-ul Streams (ReadableStream) pentru a trimite cereri fetch înainte ca corpul răspunsului să fie încărcat, adică este posibil să începeți trimiterea de date fără a aștepta finalizarea generării paginii.
- Pentru aplicațiile web progresive (PWA) instalate, a fost prevăzută posibilitatea de a schimba designul zonei de titlu a ferestrei prin intermediul componentelor Window Controls Overlay, care extind zona ecranului aplicației web pe întreaga fereastră și permit aplicației web să arate ca o aplicație desktop obișnuită. Aplicația web poate controla redarea și gestionarea intrării în întreaga fereastră, cu excepția blocului suprapus cu butoanele de control standard (închidere, minimizare, maximizare).

- A fost stabilizată accesibilitatea la Media Source Extensions din cadrul worker-urilor dedicate (în contextul DedicatedWorker), ceea ce poate fi folosit, de exemplu, pentru a îmbunătăți performanța redării multimedia utilizând un obiect MediaSource într-un worker separat și comunicând rezultatele acestuia cu HTMLMediaElement în firul principal.
- În API-ul Client Hints, care este dezvoltat pentru a înlocui antetul User-Agent și permite livrarea selectivă a datelor despre parametrii specifici ai browserului și sistemului (versiune, platformă etc.) doar la cerere, serverul, a fost adăugată suportul pentru proprietatea Sec-CH-Viewport-Heigh, care permite obținerea de informații despre înălțimea zonei vizibile. Formatul de marcare pentru setarea parametrilor Client Hints într-un element „meta” pentru resurse externe a fost modificat: A fost: A devenit:
- A fost adăugată posibilitatea de a crea handleri de evenimente globale onbeforeinput (document.documentElement.onbeforeinput), prin care aplicațiile web pot redefini comportamentul la editarea textului în elementele ,
- Funcțiile API Navigation au fost extinse, permițând aplicațiilor web să intercepteze operațiunile de navigare în fereastră, să inițieze tranziția și să analizeze istoricul acțiunilor cu aplicația. Au fost adăugate metode noi intercept() pentru interceptarea tranziției și scroll() pentru derularea la o poziție specifică.
- A fost adăugată metoda statică Response.json(), care permite formarea corpului răspunsului pe baza datelor de tip JSON.
- Au fost aduse îmbunătățiri instrumentelor pentru dezvoltatorii web. În debugger, acum este permisă editarea stivei de funcții fără a întrerupe sesiunea de depanare atunci când se activează un punct de întrerupere. În panoul Recorder, care permite înregistrarea, reproducerea și analiza acțiunilor utilizatorului pe pagină, s-a implementat suport pentru puncte de întrerupere, redare pas cu pas și înregistrarea evenimentelor de mouse hover.
În panoul de analiză a performanței au fost adăugate metrici LCP (Largest Contentful Paint) pentru identificarea întârzierilor în redarea elementelor mari (vizibile utilizatorului) în zona vizibilă, cum ar fi imagini, videoclipuri și elemente de tip block. În panoul Elements s-a implementat marcarea straturilor superioare, aflate deasupra altor conținuturi, cu un simbol special. Pentru WebAssembly a fost oferită posibilitatea de a încărca datele de depanare în format DWARF.
Pe lângă noi funcționalități și remedieri de erori, noua versiune a eliminat 24 de vulnerabilități. Multe dintre vulnerabilități au fost identificate prin testarea automatizată utilizând instrumentele AddressSanitizer, MemorySanitizer, Control Flow Integrity, LibFuzzer și AFL. Nu au fost identificate probleme critice care să permită ocolirea tuturor nivelurilor de securitate ale browserului și să execute cod în sistem în afara mediului sandbox. În cadrul programului de recompense pentru descoperirea vulnerabilităților, Google a acordat 21 de premii în valoare totală de 60500 USD (un premiu de 10000 USD, un premiu de 9000 USD, un premiu de 7500 USD, un premiu de 7000 USD, două premii de 5000 USD, patru premii de 3000 USD, două premii de 2000 USD și un premiu de 1000 USD). Valoarea a șapte recompense nu este încă stabilită.
Sursa: opennet.ro


