Versiunea Chrome 90

Google a dezvăluit lansarea browserului web Chrome 90. În același timp, este disponibilă o versiune stabilă a proiectului gratuit Chromium, care servește drept bază pentru Chrome. Browserul Chrome se distinge prin utilizarea siglelor Google, prezența unui sistem de trimitere a notificărilor în caz de blocare, module pentru redarea conținutului video protejat (DRM), un sistem pentru instalarea automată a actualizărilor și transmiterea parametrilor RLZ la căutare. Următoarea versiune a Chrome 91 este programată pentru 25 mai.

Schimbări cheie în Chrome 90:

  • Toți utilizatorii au posibilitatea să deschidă site-uri prin HTTPS în mod implicit atunci când introduc nume de gazdă în bara de adrese. De exemplu, când introduceți gazda example.com, site-ul https://example.com va fi deschis în mod implicit, iar dacă apar probleme la deschidere, acesta va fi derulat înapoi la http://example.com. Pentru a controla utilizarea implicită „https://”, este propusă setarea „chrome://flags#omnibox-default-typed-navigations-to-https”.
  • Acum este posibil să atribuiți diferite etichete ferestrelor pentru a le separa vizual în panoul desktop. Suportul pentru schimbarea numelui ferestrei va simplifica organizarea muncii atunci când utilizați ferestre separate de browser pentru diferite sarcini, de exemplu, când deschideți ferestre separate pentru sarcini de lucru, interese personale, divertisment, materiale amânate etc. Numele este schimbat prin elementul „Adăugați titlul ferestrei” din meniul contextual care apare când faceți clic dreapta pe o zonă goală din bara de file. După schimbarea numelui în panoul aplicației, în locul numelui site-ului din fila activă, este afișat numele selectat, ceea ce poate fi util la deschiderea acelorași site-uri în ferestre diferite legate la conturi separate. Legarea este menținută între sesiuni și după o repornire ferestrele vor fi restaurate cu numele selectate.
    Versiunea Chrome 90
  • S-a adăugat posibilitatea de a ascunde „Lista de lectură” fără a fi nevoie să modificați setările în „chrome://flags” (“chrome://flags#read-later”). Pentru a ascunde, acum puteți utiliza opțiunea „Afișați lista de citire” din partea de jos a meniului contextual afișat când faceți clic dreapta pe bara de marcaje. Să vă reamintim că în ultima ediție, când unii utilizatori dau clic pe asteriscul din bara de adrese, pe lângă butonul „Adăugați marcaj”, apare un al doilea buton „Adăugați la lista de citire”, iar în colțul din dreapta al panoul de marcaje apare meniul „Lista de citire”, care listează toate paginile adăugate anterior în listă. Când deschideți o pagină din listă, aceasta este marcată ca citită. Paginile din listă pot fi, de asemenea, marcate manual ca citite sau necitite sau eliminate din listă.
  • S-a adăugat suport pentru segmentarea rețelei pentru a proteja împotriva metodelor de urmărire a mișcărilor utilizatorilor între site-uri bazate pe stocarea identificatorilor în zone care nu sunt destinate stocării permanente a informațiilor („Supercookies”). Deoarece resursele din cache sunt stocate într-un spațiu de nume comun, indiferent de domeniul de origine, un site poate determina că un alt site încarcă resurse verificând dacă resursa respectivă se află în cache. Protecția se bazează pe utilizarea segmentării rețelei (Network Partitioning), a cărei esență este adăugarea la cache-urile partajate de legare suplimentară a înregistrărilor la domeniul din care este deschisă pagina principală, ceea ce limitează acoperirea cache-ului doar pentru scripturile de urmărire a mișcării. la site-ul curent (un script dintr-un iframe nu va putea verifica dacă resursa a fost descărcată de pe alt site). Prețul segmentării este o scădere a eficienței stocării în cache, ducând la o ușoară creștere a timpului de încărcare a paginii (maxim cu 1.32%, dar pentru 80% dintre site-uri cu 0.09-0.75%).
  • Lista neagră a porturilor de rețea pentru care este blocată trimiterea de solicitări HTTP, HTTPS și FTP a fost completată pentru a proteja împotriva atacurilor slipstreaming NAT, ceea ce permite, la deschiderea unei pagini web special pregătită de atacator într-un browser, să se stabilească o rețea. conexiune de la serverul atacatorului la orice port UDP sau TCP de pe sistemul utilizatorului, în ciuda utilizării intervalului de adrese interne (192.168.xx, 10.xxx). S-au adăugat 554 (protocol RTSP) și 10080 (utilizat în backup-ul Amanda și VMWare vCenter) la lista de porturi interzise. Anterior, porturile 69, 137, 161, 554, 1719, 1720, 1723, 5060, 5061 și 6566 erau deja blocate.
  • S-a adăugat suport inițial pentru deschiderea documentelor PDF cu formulare XFA în browser.
  • Pentru unii utilizatori, a fost activată o nouă secțiune de setări „Setări Chrome > Confidențialitate și securitate > Confidențialitate sandbox”, care vă permite să gestionați parametrii API-ului FLoC, care vizează determinarea categoriei de interese ale utilizatorilor fără identificarea individuală și fără referire la istoricul vizitei site-urilor specifice.
  • O notificare mai clară cu o listă de acțiuni permise este acum afișată atunci când un utilizator se conectează la un profil pentru care este activată gestionarea centralizată.
  • A făcut ca interfața de solicitare a permisiunilor să fie mai puțin intruzivă. Solicitările pe care utilizatorul este probabil să le dezaprobe sunt acum blocate automat cu un indicator corespunzător afișat în bara de adrese, cu ajutorul căruia utilizatorul poate accesa interfața de gestionare a permisiunilor pe site.
    Versiunea Chrome 90
  • Suportul pentru extensiile Intel CET (Intel Control-flow Enforcement Technology) este inclus pentru protecția hardware împotriva exploit-urilor construite folosind tehnici de programare orientată spre returnare (ROP, Return-Oriented Programming).
  • Se lucrează în continuare la tranziția browserului pentru a utiliza terminologia incluzivă. Fișierul „master_preferences” a fost redenumit „initial_preferences” pentru a evita rănirea sentimentelor utilizatorilor care percep cuvântul „master” ca un indiciu despre fosta sclavie a strămoșilor lor. Pentru a menține compatibilitatea, suportul pentru „master_preferences” va rămâne în browser pentru ceva timp. Anterior, browserul scăpase deja de utilizarea cuvintelor „listă albă”, „listă neagră” și „nativ”.
  • În versiunea Android, când modul de economisire a traficului „Lite” este activat, rata de biți este redusă la descărcarea video atunci când este conectat prin rețelele operatorilor de telefonie mobilă, ceea ce va reduce costurile utilizatorilor care au activate tarife bazate pe trafic. Modul „Lite” oferă, de asemenea, compresia imaginilor solicitate din resursele disponibile public (nu necesită autentificare) prin HTTPS.
  • S-a adăugat codificator de format video AV1, optimizat special pentru utilizarea în conferințe video bazate pe protocolul WebRTC. Utilizarea AV1 în videoconferințe face posibilă creșterea eficienței compresiei și oferirea capacității de a difuza pe canale cu o lățime de bandă de 30 kbit/sec.
  • În JavaScript, obiectele Array, String și TypedArrays implementează metoda at(), care vă permite să utilizați indexarea relativă (poziția relativă este specificată ca index al matricei), inclusiv specificarea valorilor negative relativ la sfârșit (de exemplu, „arr.at(-1)” va returna ultimul element al matricei).
  • JavaScript a adăugat proprietatea „.indices” pentru expresiile regulate, care conține o matrice cu pozițiile de început și de sfârșit ale grupurilor de potriviri. Proprietatea este completată numai atunci când se execută expresia regulată cu flag „/d”. const re = /(a)(b)/d; const m = re.exec('ab'); console.log(m.indices[0]); // 0 - toate grupurile care se potrivesc // → [0, 2] console.log(m.indices[1]); // 1 este primul grup de potriviri // → [0, 1] console.log(m.indices[2]); // 2 - a doua grupă de meciuri // → [1, 2]
  • Performanța proprietăților „super” (de exemplu, super.x) pentru care memoria cache inline este activată a fost optimizată. Performanța utilizării „super” este acum aproape de performanța accesării proprietăților obișnuite.
  • Apelarea funcțiilor WebAssembly din JavaScript a fost accelerată semnificativ datorită utilizării implementării inline. Această optimizare rămâne experimentală deocamdată și necesită rularea cu indicatorul „-turbo-inline-js-wasm-calls”.
  • S-a adăugat API-ul WebXR Depth Sensing, care vă permite să determinați distanța dintre obiectele din mediul utilizatorului și dispozitivul utilizatorului, de exemplu, pentru a crea aplicații de realitate augmentată mai realiste. Să vă reamintim că API-ul WebXR vă permite să unificați lucrul cu diverse clase de dispozitive de realitate virtuală, de la căști 3D staționare până la soluții bazate pe dispozitive mobile.
  • Caracteristica WebXR AR Lighting Estimation a fost stabilizată, permițând sesiunilor WebXR AR să determine parametrii de iluminare ambientală pentru a oferi modelelor un aspect mai natural și o mai bună integrare cu mediul utilizatorului.
  • Modul Origin Trials (funcții experimentale care necesită activare separată) adaugă câteva API-uri noi care sunt în prezent limitate la platforma Android. Origin Trial implică capacitatea de a lucra cu API-ul specificat din aplicații descărcate de pe localhost sau 127.0.0.1 sau după înregistrarea și primirea unui token special care este valabil pentru o perioadă limitată de timp pentru un anumit site.
    • Metoda getCurrentBrowsingContextMedia(), care face posibilă capturarea unui flux video MediaStream care reflectă conținutul filei curente. Spre deosebire de metoda similară getDisplayMedia(), la apelarea getCurrentBrowsingContextMedia(), utilizatorului i se prezintă un dialog simplu pentru a confirma sau bloca operația de transfer video cu conținutul filei.
    • Insertable Streams API, care vă permite să manipulați fluxurile media brute transmise prin API-ul MediaStreamTrack, cum ar fi datele camerei și microfonului, rezultatele capturii de ecran sau datele intermediare de decodare a codecului. Interfețele WebCodec sunt folosite pentru a prezenta cadre brute și este generat un flux similar cu ceea ce API-ul WebRTC Insertable Streams generează pe baza RTCPeerConnections. Din punct de vedere practic, noul API permite funcționalități precum aplicarea tehnicilor de învățare automată pentru a identifica sau adnota obiecte în timp real sau adăugarea de efecte precum tăierea fundalului înainte de codificare sau după decodare de către un codec.
    • Abilitatea de a împacheta resurse în pachete (Web Bundle) pentru a organiza încărcarea mai eficientă a unui număr mare de fișiere însoțitoare (stiluri CSS, JavaScript, imagini, iframe). Printre deficiențele suportului existent pentru pachete pentru fișiere JavaScript (webpack), pe care Web Bundle încearcă să le elimine: pachetul în sine, dar nu părțile sale componente, poate ajunge în cache-ul HTTP; compilarea și execuția pot începe numai după ce pachetul a fost descărcat complet; Resursele suplimentare, cum ar fi CSS și imaginile, trebuie să fie codificate sub formă de șiruri JavaScript, ceea ce mărește dimensiunea și necesită un alt pas de analiză.
    • Suport pentru gestionarea excepțiilor în WebAssembly.
  • S-a stabilizat API-ul Declarative Shadow DOM pentru a crea noi ramuri rădăcină în Shadow DOM, de exemplu pentru a separa un stil de element terță parte importat și subramura DOM asociată de documentul principal. API-ul declarativ propus vă permite să utilizați numai HTML pentru a anula fixarea ramurilor DOM fără a fi nevoie să scrieți cod JavaScript.
  • Proprietatea CSS cu raportul de aspect, care vă permite să legați în mod explicit raportul de aspect la orice element (pentru a calcula automat dimensiunea lipsă atunci când specificați doar înălțimea sau lățimea), implementează capacitatea de a interpola valori în timpul animației (tranziție lină de la unul raport de aspect la altul).
  • S-a adăugat capacitatea de a reflecta starea elementelor HTML personalizate în CSS prin pseudoclasa „:state()”. Funcționalitatea este implementată prin analogie cu capacitatea elementelor standard HTML de a-și schimba starea în funcție de interacțiunea utilizatorului.
  • Proprietatea CSS „aspect” acceptă acum valoarea „auto”, care este setată implicit pentru Și , și pe platforma Android în plus pentru , , , Și .
  • Suportul pentru valoarea „clip” a fost adăugat proprietății CSS „overflow”, când este setat, conținutul care se extinde dincolo de bloc este tăiat la limita depășirii permise a blocului fără posibilitatea derulării. Valoarea care determină cât de mult se poate extinde conținutul dincolo de marginea reală a casetei înainte de începerea tăierii este setată prin noua proprietate CSS „overflow-clip-margin”. În comparație cu „overflow: hidden”, folosirea „overflow: clip” permite o performanță mai bună.
    Versiunea Chrome 90Versiunea Chrome 90
  • Antetul HTTP Feature-Policy a fost înlocuit cu un nou antet Permissions-Policy pentru a controla delegarea permisiunilor și activarea funcțiilor avansate, care include suport pentru valorile câmpurilor structurate (de exemplu, acum puteți specifica „Permissions-Policy: geolocation =()" în loc de "Feature-Politica: geolocation 'none'").
  • Protecție consolidată împotriva utilizării Protocol Buffer-urilor pentru atacurile cauzate de execuția speculativă a instrucțiunilor în procesoare. Protecția este implementată prin adăugarea tipului MIME „application/x-protobuffer” la lista de tipuri MIME niciodată sniffate, care este procesată prin mecanismul Cross-Origin-Read-Blocking. Anterior, tipul MIME „application/x-protobuf” era deja inclus într-o listă similară, dar „application/x-protobuffer” a fost omis.
  • API-ul File System Access implementează capacitatea de a muta poziția curentă într-un fișier dincolo de sfârșitul acestuia, umplând golul rezultat cu zerouri în timpul scrierii ulterioare prin apelul FileSystemWritableFileStream.write(). Această caracteristică vă permite să creați fișiere rare cu spații goale și simplifică semnificativ organizarea scrierii într-un flux de fișiere cu sosirea neordonată a blocurilor de date (de exemplu, acest lucru este practicat în BitTorrent).
  • S-a adăugat un constructor StaticRange cu implementarea unor tipuri de Range ușoare care nu necesită actualizarea tuturor obiectelor asociate de fiecare dată când arborele DOM se modifică.
  • S-a implementat capacitatea de a specifica parametrii de lățime și înălțime pentru elemente specificat în interiorul elementului . Această caracteristică vă permite să calculați raportul de aspect pentru elemente , prin analogie cu modul în care se face pentru , Și .
  • Suportul nestandardizat pentru canalele de date RTP a fost eliminat din WebRTC și se recomandă utilizarea canalelor de date bazate pe SCTP.
  • Proprietățile navigator.plugins și navigator.mimeTypes returnează acum întotdeauna o valoare goală (după ce suportul Flash s-a încheiat, aceste proprietăți nu mai erau necesare).
  • O mare parte din mici îmbunătățiri au fost aduse instrumentelor pentru dezvoltatorii web și a fost adăugat un nou instrument de depanare CSS, flexbox.
    Versiunea Chrome 90

Pe lângă inovații și remedieri de erori, noua versiune elimină 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. Nu au fost identificate probleme critice care să permită ocolirea tuturor nivelurilor de protecție a browserului și executarea codului pe sistem în afara mediului sandbox. Ca parte a programului de recompense în numerar pentru descoperirea vulnerabilităților pentru versiunea actuală, Google a plătit 19 premii în valoare de 54000 USD (un premiu de 20000 USD, un premiu de 10000 USD, două premii de 5000 USD, trei premii de 3000 USD, un premiu de 2000 USD, un premiu de 1000 USD și patru premii de 500 USD, ). ). Mărimea celor 6 recompense nu a fost încă determinată.

Separat, se poate observa că ieri, după formarea versiunii corective 89.0.4389.128, dar înainte de lansarea Chrome 90, a fost publicat un alt exploit, care a folosit o nouă vulnerabilitate de 0 zile care nu a fost remediată în Chrome 89.0.4389.128 . Nu este încă clar dacă această problemă a fost remediată în Chrome 90. Ca și în primul caz, exploit-ul acoperă o singură vulnerabilitate și nu conține cod pentru a ocoli izolarea sandbox (când rulați Chrome cu semnalul „--no-sandbox” , exploit-ul are loc atunci când deschiderea unei pagini web pe platforma Windows vă permite să rulați Notepad). Vulnerabilitatea asociată noului exploit afectează tehnologia WebAssembly.

Sursa: opennet.ru

Adauga un comentariu