Compania Google a lansat versiunea web-browserului Chrome 97. În același timp, este disponibilă o versiune stabilă a proiectului open-source Chromium, care stă la baza Chrome. Browserul Chrome se distinge prin utilizarea logo-urilor Google, printr-un sistem de notificare în caz de crash, module pentru redarea conținutului video protejat împotriva copierii (DRM), un sistem de actualizare automată și prin transmiterea parametrilor RLZ în timpul căutării. Pentru utilizatorii care au nevoie de mai mult timp pentru actualizare, este susținută o ramură Extended Stable, care este însoțită de un suport de 8 săptămâni, în care a fost format un update pentru versiunea anterioară, Chrome 96. Următoarea versiune, Chrome 98, este planificată pentru 1 februarie.
Principalele modificări din Chrome 97:
- Pentru unii utilizatori, a fost implementat un nou interfață de gestionare a datelor stocate în browser („chrome://settings/content/all”). Principala diferență a noii interfețe este orientarea asupra configurării permisiunilor și ștergerea tuturor cookie-urilor unui site dintr-o dată, fără posibilitatea de a vizualiza informații detaliate despre cookie-urile individuale și de a le șterge selectiv. Potrivit Google, accesul la gestionarea cookie-urilor individuale pentru utilizatorii obișnuiți, care nu sunt familiarizați cu subtilitățile dezvoltării web, poate duce la încălcări neașteptate ale funcționării site-urilor din cauza modificărilor impulsive ale anumitor parametri, precum și la dezactivarea accidentală a mecanismelor de protecție a confidențialității activate prin cookie-uri. Pentru cei care au nevoie să manipuleze cookie-uri individuale, se recomandă utilizarea secțiunii de gestionare a stocării în instrumentele pentru dezvoltatori web (Application/Storage/Cookie).

- În secțiunea de informații despre site, este implementat un scurt rezumat al site-ului (de exemplu, descrieri din Wikipedia), dacă în setări este activată opțiunea de optimizare a căutării și navigării (opțiunea „Make searches and browsing better”).

- A fost îmbunătățită suportul pentru completarea automată a câmpurilor în formularele web. Recomandările cu opțiunile de completare automată se afișează acum cu o ușoară întârziere și sunt însoțite de pictograme informative pentru o previzualizare mai convenabilă și pentru a face mai ușor de identificat legătura cu câmpul completat. De exemplu, pictograma profilului indică faptul că completarea automată propusă se referă la câmpuri legate de adresă și informații de contact.

- S-a asigurat eliminarea din memorie a gestionatorilor de profiluri utilizator după închiderea ferestrelor asociate. Anterior, profilele rămâneau în memorie și continuau să execute lucrări legate de sincronizare și desfășurarea scripturilor de fundal ale extensiilor, ceea ce ducea la o utilizare nejustificată a resurselor pe sistemele care foloseau simultan mai multe profile (de exemplu, un profil de oaspeți și legătura cu un cont Google). În plus, s-a asigurat o curățare mai atentă a datelor care rămân în timpul lucrului cu profilul.
- Pagina de setări ale motorului de căutare a fost îmbunătățită ('Settings>Manage search engines'). Activarea automată a motoarelor a fost dezactivată, informația despre care este oferită la deschiderea site-ului prin scriptul OpenSearch — noile motoare pentru procesarea cererilor de căutare din bara de adrese trebuie acum activate manual în setări (motoarele activate anterior automat vor continua să funcționeze fără modificări).
- Începând cu 17 ianuarie, catalogul Chrome Web Store nu va mai accepta extensii care utilizează a doua versiune a manifestului Chrome, dar dezvoltatorii extensiilor adăugate anterior, la fel ca înainte, vor putea publica actualizări.
- A fost adăugată suport experimental pentru specificația WebTransport, care definește protocolul și API-ul JavaScript asociat pentru trimiterea și primirea de date între browser și serverul. Canalul de comunicație este organizat deasupra HTTP/3 utilizând protocolul QUIC ca transport. WebTransport poate fi utilizat în locul mecanismului WebSockets, oferind funcționalități suplimentare precum organizarea transmiterii în mai multe fluxuri, fluxuri unidirecționale, livrarea fără respectarea ordinii de trimitere a pachetelor (out-of-order), moduri de livrare fiabile și nesigure. De asemenea, WebTransport poate fi utilizat în locul mecanismului Server Push, de care Google s-a retras în Chrome.
- În obiectele JavaScript Array și TypedArrays au fost adăugate metodele findLast și findLastIndex, care permit căutarea elementelor cu returnarea rezultatului în funcție de sfârșitul array-ului. [1,2,3,4].findLast((el) => el % 2 === 0) \/\/ → 4 (ultimul element par)
- Elementele HTML închise (fără atributul 'open') sunt acum disponibile pentru căutare și linkuri și se deschid automat atunci când se utilizează căutarea pe pagină și navigarea prin fragmente (ScrollToTextFragment).
- Limitările Politicii de Securitate a Conținutului (CSP) în antetele de răspuns server se aplică de asemenea și worker-urilor dedicate, care anterior erau tratate ca documente separate.
- A fost asigurat un angajament explicit pentru autorizarea încărcării oricăror subresurse din rețeaua internă — înainte de a accesa rețeaua internă sau localhost pe serverul principal, acum se trimite o solicitare CORS (Cross-Origin Resource Sharing) cu antetul „Access-Control-Request-Private-Network: true”, care solicită confirmarea operațiunii prin returnarea antetului „Access-Control-Allow-Private-Network: true”.
- A fost adăugat atributul CSS font-synthesis, care permite controlul asupra capacității browser-ului de a sintetiza stilurile de fonturi lipsă (oblique, bold și small-cap), care nu sunt disponibile în familia de fonturi selectată.
- Pentru transformările CSS, în funcția perspective() a fost implementat parametrul ‘none’, care este tratat ca o valoare infinită în organizarea animației.
- În antetul HTTP Permissions-Policy (Feature Policy), care este utilizat pentru delegarea permisiunilor și activarea funcționalităților extinse, a fost adăugată suportul pentru valoarea keyboard-map, care permite utilizarea API-ului Keyboard. A fost implementată metoda Keyboard.getLayoutMap(), care permite determinarea tastei apăsate, ținând cont de diferitele aranjamente de tastatură (de exemplu, apăsarea unei taste cu aranjamentul rusesc sau englez).
- A fost adăugată metoda HTMLScriptElement.supports(), care unifică definiția noilor capacități disponibile în elementul „script”, de exemplu, se poate afla lista valorilor acceptate pentru atributul „type”.
- Procesul de normalizare a liniilor noi la trimiterea formularelor web a fost aliniat cu motorul browserelor Gecko și WebKit. Normalizarea caracterelor de sfârșit de linie și returnare a carului (înlocuirea /r și /n cu \r\n) în Chrome este acum efectuată în stadiul final, nu la începutul procesării trimiterii formularului (adică, handler-ele intermediare care utilizează obiectul FormData vor vedea datele exact așa cum le-a adăugat utilizatorul, nu într-o formă normalizată).
- Standardizarea denumirii proprietăților pentru API Client Hints, dezvoltat ca un înlocuitor pentru antetul User-Agent și care permite livrarea selectivă a datelor despre parametrii specifici ai browserului și sistemului (versiune, platformă și altele) doar la cererea serverului. Proprietățile sunt acum prefixate cu „sec-ch-”, de exemplu, sec-ch-dpr, sec-ch-width, sec-ch-viewport-width, sec-ch-device-memory, sec-ch-rtt, sec-ch-downlink și sec-ch-ect.
- A fost aplicată a doua etapă a încetării suportului pentru API-ul WebSQL, accesul la care din scripturi externe va fi acum blocat. În continuare, se preconizează încetarea treptată a suportului pentru WebSQL, indiferent de contextul de utilizare. Handler-ul WebSQL se bazează pe codul SQLite și ar fi putut fi folosit de atacatori pentru a exploata vulnerabilitățile din SQLite.
- Pentru platforma Windows, a fost activată o compilare cu verificări ale integrității fluxului de execuție (CFG, Control Flow Guard), care blochează încercările de substituție a codului în procesul Chrome. De asemenea, serviciile de rețea care rulează în procese separate beneficiază acum de izolație sandbox, limitând capacitățile codului din aceste procese.
- În Chrome pentru Android, a fost activat mecanismul de actualizare dinamică a jurnalului certificatelor emise și revocate (Certificate Transparency), care anterior fusese activat în versiunile pentru sisteme desktop.
- Au fost aduse îmbunătățiri instrumentelor pentru dezvoltatorii web. A fost implementat suport experimental pentru sincronizarea setărilor DevTools între diferite dispozitive. A fost adăugată o nouă tablou Recorder, care permite înregistrarea, redarea și analiza acțiunilor utilizatorului pe pagină.

La afișarea erorilor în consola web, sunt acum afisate numerele de coloană asociate problemei, ceea ce este convenabil pentru depanarea problemelor în codul JavaScript minificat. Lista dispozitivelor care pot fi simulate pentru a evalua afișarea paginii pe dispozitivele mobile a fost actualizată. În interfața de editare a blocurilor HTML (Edit as HTML) a fost adăugată evidențierea sintaxei și posibilitatea de completare automată a intrărilor.

Pe lângă noutăți și corectarea erorilor, noua versiune a eliminat 37 de vulnerabilități. Multe dintre vulnerabilități au fost identificate ca urmare a testării automate folosind instrumentele AddressSanitizer, MemorySanitizer, Control Flow Integrity, LibFuzzer și AFL. Una dintre vulnerabilități a primit statutul de problemă critică, care permite ocolirea tuturor nivelurilor de protecție ale browserului și executarea de cod în sistem, în afara mediului sandbox. Detalii despre vulnerabilitatea critică (CVE-2022-0096) nu au fost deocamdată dezvăluite, se știe doar că este legată de accesarea unei zone de memorie deja eliberate în codul utilizat pentru gestionarea stocărilor interne (API Storage).
În cadrul programului de recompensare a identificării vulnerabilităților pentru versiunea curentă, compania Google a plătit 24 de premii în valoare totală de 54 de mii de dolari (trei premii de 10.000 de dolari, două premii de 5.000 de dolari, un premiu de 4.000 de dolari, trei premii de 3.000 de dolari și un premiu de 1.000 de dolari). Valoarea a 14 recompense nu a fost încă stabilită.
Sursa: opennet.ro





