Google je izdala različico spletnega brskalnika Chrome 90. Hkrati je na voljo stabilna različica prostega projekta Chromium, ki je osnova za Chrome. Brskalnik Chrome se razlikuje po uporabi logotipov Google, po sistemu obveščanja v primeru zrušitve, modulih za predvajanje zaščitenega video vsebin (DRM), samodejnem namestitvenem sistemu posodobitev ter prenosu parametrov RLZ med iskanjem. Naslednja različica Chrome 91 je načrtovana za 25. maj.
Glavne spremembe v Chrome 90:
- Za vse uporabnike je vključeno privzeto odpiranje spletnih strani prek HTTPS pri vnosu imen gostiteljev v naslovno vrstico. Na primer, pri vnosu gostitelja example.com bo privzeto odprta spletna stran https://example.com, če pa se pojavijo težave pri odpiranju, bo izveden povratak na http://example.com. Za upravljanje privzete nastavitve 'https://' je na voljo nastavitev 'chrome://flags#omnibox-default-typed-navigations-to-https'.
- Izvedena je bila možnost dodeljevanja različnih oznak oknom za lažjo razločitev na delovni površini. Podpora za spreminjanje imena okna bo poenostavila organizacijo dela pri uporabi posameznih oken brskalnika za različne naloge, na primer pri odpiranju ločenih oken za delovne naloge, osebne interese, zabavo, zamude materialov itd. Ime je mogoče spremeniti prek izbire 'Dodaj ime okna' v kontekstnem meniju, ki se prikaže ob kliku z desnim gumbom miške na praznem območju v vrstici zavihkov. Po spremembi imena v aplikacijski plošči namesto imena spletne strani aktivnega zavihka prikazuje izbrano ime, kar je lahko uporabno pri odpiranju enakih spletnih strani v različnih oknih, povezanih z ločenimi računi. Povezava se shrani med sejami in po ponovnem zagonu okna se bodo obnovila z izbranimi imeni.

- Dodana je možnost skrivanja 'Seznama branja' (Reading List) bez potrebe za promjenom postavki u 'chrome://flags' ('chrome://flags#read-later'). Za skrivanje sada možete koristiti opciju 'Prikaži seznam branja' u donjem dijelu kontekstnog izbornika koji se prikazuje desnim klikom na traci oznaka. Podsjećamo da se u prošlom izdanju kod dijela korisnika prilikom pritiskanja zvjezdice u adresnoj traci osim gumba 'Dodaj oznaku' pojavljuje druga tipka 'Dodaj u seznam branja', a u desnom kutu trake oznaka pojavljuje izbornik 'Seznam branja' u kojem su navedene sve prethodno dodane stranice. Kada otvorite stranicu iz popisa, označava se kao pročitana. Stranice u popisu mogu se također ručno označiti kao pročitane ili nepročitane ili se mogu ukloniti iz popisa.
- Dodana je podrška za segmentaciju mreže radi zaštite od metoda praćenja korisnikovog kretanja između web stranica, temeljenih na pohrani identifikatora u područjima koja nisu namijenjena za trajno pohranjivanje informacija ('Supercookies'). Kako se resursi u predmemoriji pohranjuju u zajedničkom prostoru imena, neovisno od izvornog domena, jedan web site može odrediti učitavanje resursa s drugog web sitea provjerom postojanja tog resursa u predmemoriji. Zaštita se temelji na primjeni segmentacije mreže (Network Partitioning), čija je suština dodatno vezivanje zapisa uz domeno, s kojeg je otvorena glavna stranica, što ograničava područje pokrivenosti predmemorije za skripte praćenja kretanja samo na trenutni web site (skripta iz iframe-a ne može provjeriti je li resurs učitan s drugog web sitea). Cijena segmentacije je smanjenje učinkovitosti predmemoriranja, što dovodi do neznatnog povećanja vremena učitavanja stranice (maksimalno za 1,32%, ali za 80% web stranica na 0,09-0,75%).
- Dodan je crni popis mrežnih portova za koje se blokira slanje HTTP, HTTPS i FTP zahtjeva s ciljem zaštite od napada NAT slipstreaming, koji omogućuje uspostavljanje mrežne veze prilikom otvaranja napadom pripremljene web stranice u pregledniku. strežnika napadalca na katerikoli UDP ali TCP port v sistemu uporabnika, ne glede na to, ali se uporablja notranji obseg naslovov (192.168.x.x, 10.x.x.x). Na seznam prepovedanih portov so dodani 554 (protokol RTSP) in 10080 (uporablja se pri Amanda backup in VMWare vCenter). Prej so bili že blokirani porti 69, 137, 161, 554, 1719, 1720, 1723, 5060, 5061 in 6566.
- Dodana začetna podpora za odpiranje PDF dokumentov z XFA obrazci v brskalniku.
- Za nekatere uporabnike je bila aktivirana nova sekcija nastavitev 'Chrome Settings > Privacy and security > Privacy sandbox', ki omogoča upravljanje z nastavitvami API FLoC, namenjenega določanju kategorij zanimanja uporabnika brez posamezne identifikacije in brez povezave na zgodovino obiskovanja določenih spletnih mest.
- Zagotovljeno je bilo jasnejše obvestilo s seznamom dovoljenih dejanj, ki se prikaže, ko se uporabnik poveže s profilom, za katerega je omogočeno centralizirano upravljanje.
- Interfejs za zahtevke po pooblastilih je postal manj vsiljiv. Zahtevki, ki jih uporabnik verjetno ne bo odobril, so zdaj samodejno blokirani s prikazom ustreznega indikatorja v naslovni vrstici, prek katerega lahko uporabnik preide v vmesnik za upravljanje pooblastil za vsako spletno mesto.

- Vključena je podpora za razširitve Intel CET (Intel Control-flow Enforcement Technology) za strojno zaščito pred izvajanjem izkoriščanj, zgrajenih z uporabo tehnik povratno usmerjenega programiranja (ROP, Return-Oriented Programming).
- Delo na prevodu brskalnika na vključujočo terminologijo se nadaljuje. Datoteka 'master_preferences' je preimenovana v 'initial_preferences', da ne bi užalila uporabnikov, ki besedo master dojemajo kot namig na nekdanjo suženjstvo njihovih prednikov. Da bi ohranili združljivost, bo podpora 'master_preferences' še nekaj časa ohranjena v brskalniku. Brskalnik se je že znebil uporabe besed 'whitelist', 'blacklist' in 'native'.
- V Android različici pri vklopu načina varčevanja s prenosom „Lite“ je omogočeno zniževanje bitrate pri nalaganju videoposnetkov, ko so uporabniki povezani prek mobilnih omrežij, kar zmanjšuje stroške uporabnikov, ki imajo tarife, ki upoštevajo prenos podatkov. V načinu „Lite“ je prav tako omogočeno stiskanje slik, ki se zahtevajo iz javno dostopnih virov (ki ne zahtevajo overitve) prek HTTPS.
- Dodano je bilo video kodiranje v formatu AV1, posebej optimizirano za uporabo v videokonferencah, ki temeljijo na protokolu WebRTC. Uporaba AV1 v videokonferencah omogoča boljšo učinkovitost stiskanja in omogoča prenos na kanalih s propustnostjo 30 kbit/s.
- V JavaScriptu je v objektih Array, String in TypedArrays implementirana metoda at(), ki omogoča uporabo relativne indeksacije (kot indeks tabele se navede relativni položaj), vključno s negativnimi vrednostmi glede na konec (na primer, „arr.at(-1)“ vrne zadnji element tabele).
- V JavaScriptu so za regularne izraze dodali lastnost „.indices“, ki vsebuje tabelo z začetnimi in končnimi pozicijami skupin ujemanja. Lastnost se izpolni le, ko se regularni izraz izvede s flagom „/d“. const re = /(a)(b)/d; const m = re.exec(‘ab’); console.log(m.indices[0]); // 0 — vse skupine ujemanja // → [0, 2] console.log(m.indices[1]); // 1 — prva skupina ujemanja // → [0, 1] console.log(m.indices[2]); // 2 — druga skupina ujemanja // → [1, 2]
- Optimizirana je bila zmogljivost lastnosti „super“ (na primer, super.x), pri katerih je bil uporabljen inline-cache. Zmogljivost uporabe „super“ je zdaj blizu zmogljivosti dostopa do običajnih lastnosti.
- Znaten pospešek pri klicu funkcij WebAssembly iz JavaScript-a zaradi uporabe inline-razširitev. Omenjena optimizacija ostaja eksperimentalna in zahteva zagon s flagom „—turbo-inline-js-wasm-calls“.
- Dodana je API WebXR Depth Sensing, koja omogućava određivanje razdaljine između objekata u korisnikovu okruženju i korisničkog uređaja, na primjer, za kreiranje realističnijih aplikacija proširene stvarnosti. Podsjećamo da API WebXR omogućava unifikaciju rada s različitim klasama uređaja virtuelne stvarnosti, od stacionarnih 3D naočala do rješenja zasnovanih na mobilnim uređajima.
- Stabilizovana je mogućnost WebXR AR Lighting Estimation, koja omogućava u sesijama WebXR za proširenu stvarnost da odredi parametre okolnog osvjetljenja kako bi modelima dala prirodniji izgled i bolju harmonizaciju s korisničkim okruženjem.
- U režimu Origin Trials (eksperimentalne mogućnosti, koje zahtijevaju posebnu aktivaciju) dodano je nekoliko novih API-a, koji su za sada ograničeni na platformu Android. Origin Trial podrazumijeva mogućnost rada s navedenim API-jem iz aplikacija učitanih s localhost ili 127.0.0.1, ili nakon registracije i dobijanja specijalnog tokena, koji vrijedi ograničeno vrijeme za određeni sajt.
- Metoda getCurrentBrowsingContextMedia(), koja omogućava organizovanje snimanja video toka MediaStream, reflektujući sadržaj trenutne kartice. Za razliku od slične metode getDisplayMedia(), pozivanjem getCurrentBrowsingContextMedia() korisniku se prikazuje jednostavan dijalog za potvrdu ili blokiranje operacije prenošenja videa sa sadržajem kartice.
- API Insertable Streams, koji omogućava manipulaciju neobrađenim (raw) multimedijskim tokovima, prenosima putem API MediaStreamTrack, kao što su podaci s kamere i mikrofona, rezultat snimanja ekrana ili međupodaci dekodiranja kodekom. Za predstavljanje neobrađenih kadrova koriste se interfejsi WebCodec, nakon čega se formira tok, sličan onome što API WebRTC Insertable Streams generiše na osnovu RTCPeerConnections. Sa praktične strane, novi API omogućava implementaciju funkcionalnosti poput primjene metoda mašinskog učenja za identifikaciju ili anotaciju objekata u realnom vremenu ili za dodavanje efekata, kao što je izrezivanje pozadine, prije kodiranja ili nakon dekodiranja kodekom.
- Možnost pakiranja virov v pakete (Web Bundle) za učinkovitejše nalaganje velikega števila spremljajočih datotek (CSS slogi, JavaScript, slike, iframe). Med pomanjkljavostmi obstoječe podpore paketov za datoteke JavaScript (webpack), ki jih poskušajo odpraviti v Web Bundle: v HTTP predpomnilniku se lahko zadrži sam paket, vendar ne njegove sestavne dele; kompilacija in izvajanje se lahko začne šele po popolnem nalaganju paketa; dodatni viri, kot so CSS in slike, morajo biti kodirani v obliki JavaScript nizov, kar povečuje velikost in vodi v dodatno fazo analize.
- Podpora za obravnavo izjem v WebAssembly.
- Stabiliziran API Declarative Shadow DOM za ustvarjanje novih korenskih veja v Shadow DOM, na primer za ločevanje uvoženega zunanjega sloga elementa in povezane podveje DOM od glavnega dokumenta. Predlagani deklarativni API omogoča ločevanje vej DOM le z HTML, brez potrebe po pisanju JavaScript kode.
- V CSS lastnosti aspect-ratio, ki omogoča izrecno vezavo razmerja stranic na katerikoli element (za samodejno izračunavanje manjkajoče velikosti pri navajanju le višine ali širine), je bila realizirana možnost interpolacije vrednosti pri animaciji (gladka prehod iz enega razmerja stranic v drugo).
- Dodana je možnost odražanja stanja lastnih HTML elementov (custom element) v CSS preko pseudo-razreda ":state()". Funkcionalnost je bila implementirana na podoben način kot pri osnovnih HTML elementih, ki spreminjajo svoje stanje na podlagi interakcije s uporabnikom.
- V CSS lastnosti "appearance" je bila dodana podpora za vrednost ‘auto’, ki je privzeto nastavljena za <input type=color> in <select>, na platformi Android pa dodatno za <input type=date>, <input type=datetime-local>, <input type=month>, <input type=time> in <input type=week>.
- V CSS-lastnosti "overflow" je bila dodana podpora za vrednost "clip", pri čemer se pri nastavitvi obreže vsebina, ki presega meje bloka, brez možnosti pomikanja. Vrednost, ki določa, kako daleč lahko vsebina presega dejansko mejo bloka, preden se začne obrezovanje, je določena z novo CSS-lastnostjo "overflow-clip-margin". V primerjavi z "overflow: hidden" uporaba "overflow: clip" omogoča višjo zmogljivost.


- HTTP-header Feature-Policy je nadomestil nov header Permissions-Policy za upravljanje delegiranja pooblastil in vključevanja razširjenih funkcionalnosti, ki podpira strukturirane vrednosti polj (na primer, zdaj je mogoče navesti "Permissions-Policy: geolocation=()" namesto "Feature-Policy: geolocation 'none'").
- Okrepljena je zaščita pred uporabo Protocol Buffers za napade, ki jih povzroča spekulativno izvajanje ukazov v procesorjih. Zaščita je bila izvedena z dodajanjem MIME-tipa "application/x-protobuffer" na seznam MIME-tipov, ki nikoli ne bodo prestreženi (sniffed), obdelava pa se izvede preko mehanizma Cross-Origin-Read-Blocking. Prej je bil na tak seznam že dodan MIME-tip "application/x-protobuf", a je bil "application/x-protobuffer" spregledan.
- V API-ju File System Access je bila uvedena možnost premika trenutne pozicije v datoteki za njenim robom, pri čemer se nastane praznina, ki se ob izpisu izpolni z ničlami, skozi klic FileSystemWritableFileStream.write(). Ta možnost omogoča ustvarjanje razpršenih datotek s prazninami in znatno poenostavi organizacijo zapisa v datoteko podatkovnih tokov z unordered prihodom podatkovnih blokov (na primer, to se prakticira v BitTorrentu).
- Dodan je konstruktor StaticRange z implementacijo lahkih tipov Range, ki ne zahtevajo posodabljanja vseh povezanih objektov pri vsaki spremembi DOM drevesa.
- Omogočena je možnost določanja parametrov width in height za elemente <source>, navedene znotraj elementa <picture>. Ta funkcionalnost omogoča izračun razmerja stranic za elemente <picture>, podobno kot je to izvedeno za <img>, <canvas> in <video>.
- Iz WebRTC je bila odstranjena nestandardizirana podpora za RTP (RTP Data Channels) podatkovne kanale, namesto katerih je priporočljivo uporabljati podatkovne kanale, ki temeljijo na SCTP.
- Lastnosti navigator.plugins in navigator.mimeTypes zdaj vedno vračajo prazno vrednost (po prenehanju podpore za Flash ni več potrebe po teh lastnostih).
- Izvedena je bila obsežna serija manjših izboljšav v orodjih za spletne razvijalce ter dodano novo orodje za odpravljanje napak pri CSS flexbox.

Poleg novih funkcij in popravkov napak nova različica odpravlja 37 ranljivosti. Številne ranljivosti so bile odkrivene z avtomatiziranim testiranjem instrumentov AddressSanitizer, MemorySanitizer, Control Flow Integrity, LibFuzzer in AFL. Kritičnih težav, ki bi omogočile obhod vseh ravni zaščite brskalnika in izvajanje kode v sistemu zunaj okolja peskovnika, ni bilo ugotovljenih. V okviru programa za nagrajevanje odkritja ranljivosti je podjetje Google za trenutni izdelek izplačalo 19 nagrad v skupni višini 54.000 dolarjev (ena nagrada 20.000 $, ena nagrada 10.000 $, dve nagradi po 5.000 $, tri nagrade po 3.000 $, ena nagrada 2.000 $, ena 1.000 $ in štiri nagrade po 500 $). Višina 6 nagrad še ni določena.
Omeniti velja, da je bil včeraj po oblikovanju popravljalne različice 89.0.4389.128, a pred izidom Chrome 90, objavljen še en izkoriščevalec, ki je uporabil novo ranljivost 0-day, ki ni bila odpravljena v Chrome 89.0.4389.128. Še ni jasno, ali je ta težava odpravljena v Chrome 90. Tako kot v prvem primeru izkoriščevalec zajema le eno ranljivost in ne vsebuje kode za obhod izolacije peskovnika (ko se Chrome zažene z zastavico „—no-sandbox“, izkoriščevalec ob odprtju spletne strani na platformi Windows omogoča zagon notepad). Ranljivost povezana z novim izkoriščevalcem se nanaša na tehnologijo WebAssembly.
Izvor: opennet.ru





