Compania Google a lansat versiunea web-browserului Chrome 101. De asemenea, este disponibilă o versiune stabilă a proiectului open-source Chromium, care stă la baza Chrome. Browserul Chrome se deosebește de Chromium prin utilizarea siglelor Google, disponibilitatea unui sistem de trimitere a notificărilor în caz de prăbușire, module pentru redarea conținutului video protejat (DRM), un sistem automat de instalare a actualizărilor, activarea constantă a izolării Sandbox, furnizarea cheilor pentru Google API și transmiterea parametrilor RLZ în timpul căutării. Pentru cei care au nevoie de mai mult timp pentru actualizare, există o ramură separată Extended Stable, care susține actualizarea timp de 8 săptămâni pentru versiunea anterioară Chrome 100. Următoarea lansare Chrome 102 este programată pentru 24 mai.
Principalele modificări în Chrome 101:
- A fost adăugată funcția Side Search, care permite vizualizarea rezultatelor căutării în panoul lateral în timp ce se vizualizează o altă pagină (în aceeași fereastră pot fi văzute atât conținutul paginii, cât și rezultatul apelului la motorul de căutare). După ce navighezi la un site din pagina cu rezultate Google, înainte de câmpul de introducere din bara de adrese apare o pictogramă cu litera „G”, pe care, la clic, se deschide panoul lateral cu rezultatele căutării anterioare. În mod implicit, funcția nu este activată pe toate sistemele; pentru a o activa, poți folosi setarea „chrome://flags/#side-search”.

- În bara de adrese Omnibox a fost implementată redarea anticipată (prerendering) a conținutului sugestiilor oferite pe măsură ce se introduce text. Anterior, pentru a accelera trecerea din bara de adrese, cele mai probabile sugestii erau încărcate fără a aștepta clicul utilizatorului, folosind apelul Prefetch. Acum, pe lângă încărcare, acestea sunt și redimensionate în buffer (inclusiv scripturile sunt executate, iar arborele DOM este format), ceea ce permite afișarea instantanee a sugestiilor după clic. Pentru gestionarea redării anticipate, sunt oferite setările „chrome://flags/#enable-prerender2”, „chrome://flags/#omnibox-trigger-for-prerender2” și „chrome://flags/#search-suggestion-for-prerender2”.
- Informațiile din antetul HTTP User-Agent și parametrii JavaScript navigator.userAgent, navigator.appVersion și navigator.platform au fost reduse. În antet au fost păstrate doar informații despre numele browserului, versiunea majoră a browserului (componentele versiunii MINOR.BUILD.PATCH au fost înlocuite cu 0.0.0), platforma și tipul de dispozitiv (telefon mobil, PC, tabletă). Pentru a obține date suplimentare, cum ar fi versiunea exactă și datele avansate despre platformă, trebuie utilizat API User Agent Client Hints. Pentru site-urile care nu dispun de suficiente informații noi și care nu sunt încă pregătite să treacă la User Agent Client Hints, până în mai 2023 a fost oferită posibilitatea de a returna User-Agent complet.
- Comportamentul funcției setTimeout a fost schimbat când se transmite un argument nul care definește întârzierea apelului. Începând cu Chrome 101, când se folosește „setTimeout(…, 0)”, codul va fi apelat imediat, fără întârziere de 1 ms, așa cum cere specificația. Pentru apelurile repetitive încastrate setTimeout, se aplică o întârziere de 4 ms.
- În versiunea pentru platforma Android a fost implementată suportul pentru solicitarea permisiunilor de emitere a notificărilor (în Android 13, pentru a afișa notificări, aplicația trebuie să aibă permisiunea „POST_NOTIFICATIONS”, fără de care trimiterea notificărilor va fi blocată). Atunci când Chrome este pornit în mediu Android 13, browserul va afișa acum o solicitare de obținere a permisiunilor pentru emiterea notificărilor.
- Posibilitatea utilizării API WebSQL în scripturi externe a fost eliminată. În mod implicit, blocarea WebSQL în scripturile încărcate din alte surse decât site-ul curent a fost activată în Chrome 97, dar a existat opțiunea de a dezactiva acest comportament. În Chrome 101, această opțiune a fost eliminată. Este planificată o oprire treptată a suportului pentru WebSQL, indiferent de contextul de utilizare. Recomandăm utilizarea API Web Storage și Indexed Database în loc de WebSQL. Handlerul WebSQL se bazează pe codul SQLite și ar putea fi utilizat de atacatori pentru a explora vulnerabilitățile din SQLite.
- Au fost eliminate denumirile politicilor pentru întreprinderi (chrome://policy) care conțineau termeni neincluzivi. Începând cu Chrome 86, pentru politicile specificate au fost propuse înlocuiri care folosesc o terminologie incluzivă. A fost efectuată o curățare a unor termeni precum „whitelist”, „blacklist”, „native” și „master”. De exemplu, politica URLBlacklist a fost redenumită în URLBlocklist, AutoplayWhitelist în AutoplayAllowlist, iar NativePrinters în Printers.
- În modul Origin Trials (funcționalități experimentale care necesită activare separată), testarea API-ului Federated Credential Management (FedCM) a început până acum doar în versiunile pentru platforma Android. Acest API permite crearea de servicii de identificare reunite, care asigură confidențialitate și funcționează fără mecanisme de urmărire între site-uri, cum ar fi procesarea cookie-urilor terțe. Origin Trial implică posibilitatea de a utiliza API-ul specificat din aplicații încărcate de pe localhost sau 127.0.0.1 sau după completarea înregistrării și obținerea unui token special, care are o valabilitate limitată pentru un anumit site.
- Mecanismul Priority Hints a fost stabilizat și este oferit tuturor doritorilor. Acest mecanism permite stabilirea importanței unui anumit resurs solicitat prin specificarea unui atribut suplimentar „importance” în etichete precum iframe, img și link. Atributul poate accepta valorile „auto”, „low” și „high”, care influențează ordinea în care browserul încarcă resursele externe.
- A fost adăugată proprietatea AudioContext.outputLatency, prin care se pot obține informații despre întârzierea estimată de la solicitarea sunetului până la începutul procesării datelor primite de dispozitivul de ieșire a sunetului.
- A fost adăugată proprietatea CSS font-palette și regula @font-palette-values, care permit selectarea unei palete dintr-un font colorat sau definirea unei palete proprii. De exemplu, această funcționalitate poate fi utilizată pentru a adapta fonturile simbolice colorate sau emoji pentru a se potrivi cu schema de culori a conținutului sau pentru a activa modul întunecat sau luminos pentru font.
- A fost adăugată funcția CSS hwb(), care oferă o metodă alternativă de specificare a culorilor sRGB în format HWB (Hue, Whiteness, Blackness), similar cu formatul HSL (Hue, Saturation, Lightness), dar mai simplu de perceput de către oameni.
- În metoda window.open(), specificarea proprietății popup în șirul windowFeatures, fără a atribui o valoare (adică doar specificând popup, nu popup=true), este acum tratată ca activarea deschiderii unei feronete pop-up miniaturale (similar cu „popup=true”) în loc să fie atribuită în mod implicit valoarea „false”, ceea ce era ilogic și inducea în eroare dezvoltatorii.
- În API-ul MediaCapabilities, care oferă informații despre capacitățile dispozitivului și browserului de decodare a conținutului multimedia (codecuri suportate, profile, bitrate-uri și rezoluții), a fost adăugat suport pentru fluxurile WebRTC.
- A fost propusă a treia versiune a API-ului Secure Payment Confirmation, care oferă unelte pentru o confirmare suplimentară a operațiunilor de plată efectuate. În noua versiune a fost adăugat suport pentru identificatori care necesită introducerea de date, definirea unei pictograme pentru indicarea eșecului verificării, precum și o proprietate opțională payeeName.
- În API-ul USBDevice a fost adăugat metoda forget() pentru retragerea autorizării anterioare acordate de utilizator pentru accesul la dispozitivul USB. În plus, instanțele USBConfiguration, USBInterface, USBAlternateInterface și USBEndpoint sunt acum egale în comparații stricte (‘===’, indicând către același obiect), dacă acestea sunt returnate pentru același obiect USBDevice.
- Au fost aduse îmbunătățiri uneltelor pentru dezvoltatorii web. A fost oferită posibilitatea de import și export în format JSON al acțiunilor utilizatorului înregistrate (exemplu). În consola web și în interfața de vizualizare a codului a fost îmbunătățită calcularea și afișarea proprietăților private. A fost adăugat suport pentru lucrul cu modelul de culoare HWB. În panoul CSS a fost adăugată posibilitatea de vizualizare a straturilor de cascade definite prin regula @layer.

Pe lângă noutăți și erori corectate, noua versiune a eliminat 30 de vulnerabilități. Multe dintre vulnerabilități au fost identificate în urma testării automate cu instrumentele AddressSanitizer, MemorySanitizer, Control Flow Integrity, LibFuzzer și AFL. Nu au fost identificate probleme critice care permit ocolirea tuturor nivelurilor de protecție ale browser-ului și executarea codului în sistem dincolo de mediul sandbox. În cadrul programului de recompensă pentru raportarea vulnerabilităților pentru release-ul actual, Google a acordat 25 de recompense în valoare de 81.000 de dolari (o recompensă de 10.000 de dolari, trei recompense de 7.500 de dolari, trei recompense de 7.000 de dolari, o recompensă de 6.000 de dolari, două recompense de 5.000 de dolari, patru recompense de 2.000 de dolari, trei recompense de 1.000 de dolari și o recompensă de 500 de dolari). Valoarea a 6 recompense rămâne deocamdată nedefinită.
Sursa: opennet.ro


