Google tutvustas web-brauserit Chrome 91. Samuti on saadaval stabiilne vabaprojekti Chromium väljalase, mis on Chrome'i alus. Brauser Chrome erineb Google'i logode kasutamise, riistvarasukkade avarii korral teavitussüsteemi, kaitstud video sisu (DRM) esitamiseks mõeldud moodulite, automaatsete värskenduste installimise süsteemi ja RLZ parameetrite vahendamise osas otsingus. Järgmine Chrome'i väljalase, Chrome 92, on planeeritud 20. juuliks.
Peamised muudatused Chrome 91-s:
- JavaScript'i täitmise peatamise võimalus on nüüd saadaval kokku volditud vahekaardigruppides. Chrome 85 versioonis lisandus toetus vahekaardigruppide ühendamiseks, mida saab siduda teatud värviga ja sildiga. Kui klõpsate grupi sildil, volditakse seotud vahekaardid kokku ja jääb alles üks silt (selle sildi uuesti klõpsamine avab grupi). Uues vabastuses on eesmärgiks vähendada CPU koormust ja säästa energiat, viidud ellu tegevuse peatamine volditud vahekaardis. Erandiks on vahekaardid, kus mängitakse heli, kasutatakse Web Locksi API-d või IndexedDB-d, on ühendus USB-seadmega, salvestatakse videod, heli või akende sisu. Muudatused viiakse ellu järk-järgult, alustades väikese osakaalu kasutajatest.
- Kasutusele on võetud kvantkompuutereid taluv võtmevahetusmeetod. Kvantkompuuterid lahendavad oluliselt kiiremini naturaalarvu jagamise probleemi, mis on kaasaegsete asümmeetiliste krüptimisalgoritmide aluseks ja on klassikalistes protsessorites efektiivselt lahendamatu. TLSv1.3 jaoks on saadaval CECPQ2 (Combined Elliptic-Curve and Post-Quantum 2) pistikprogramm, mis ühendab klassikalise võtmevahetusmehhanismi X25519 HRSS skeemiga, mis põhineb NTRU Prime algoritmil, mis on välja töötatud postkvantkryptosüsteemide jaoks.
- TLS 1.0 ja TLS 1.1 protokollide toetus on täielikult lõpetatud ning need on IETF (Internet Engineering Task Force) komitee poolt määratud aegunuks. Samuti on eemaldatud võimalus tagasi minna TLS 1.0/1.1 kasutamisele, muutes SSLVersionMin poliitikat.
- Linuxi platvormide kogumitesse on lisatud funktsioon „DNS HTTPS-i üle” (DoH, DNS over HTTPS), mis on varem saavutatud Windowsi, macOS-i, ChromeOS-i ja Androidi kasutajateni. DNS-over-HTTPS aktiveeritakse automaatselt kasutajatele, kelle seaded sisaldavad DNS-teenuse pakkujaid, mis toetavad seda tehnoloogiat (DNS-over-HTTPS kasutab sama teenusepakkujat, mida kasutatakse DNS-i jaoks). Näiteks, kui kasutaja süsteemsetes seadetes on määratud DNS 8.8.8.8, aktiveeritakse Chrome'is Google'i DNS-over-HTTPS teenus („https://dns.google.com/dns-query”); kui DNS on 1.1.1.1, siis aktiveeritakse Cloudflare'i DNS-over-HTTPS teenus („https://cloudflare-dns.com/dns-query”) jne.
- Keelatud võrgupordid on lisatud port 10080, mida kasutatakse Amanda varundamise ja VMWare vCenter'is. Varem olid juba blokeeritud pordid 69, 137, 161, 554, 1719, 1720, 1723, 5060, 5061 ja 6566. Musta nimekirja kantud portide puhul blokeeritakse HTTP, HTTPS ja FTP-päringute saatmine, et kaitsta NAT slipstreaming rünnaku eest, mis võimaldab ründajal, avades spetsiaalselt ette valmistatud ründaja veebilehe brauseris, luua võrguside ründaja serverist kasutaja süsteemis mis tahes UDP või TCP pordiga, hoolimata siseaadresside vahemikku (192.168.x.x, 10.x.x.x) kasutamisest.
- Kasutajate sisselogimise korral (Windows ja macOS) on võimalik seadistada iseseisvate veebirakenduste (PWA — Progressive Web Apps) automaatset käivitamist. Automaatkäivitust saab seadistada lehel chrome://apps. Funktsionaalsus on praegu testimisel väikse protsendi kasutajate seas, ning ülejäänud peavad aktiveerima seadistuse „chrome://flags/#enable-desktop-pwas-run-on-os-login”.
- Brahasi tõlgendamise käigus on toimunud terminoloogiline kaasamine, mille tõttu on fail „master_preferences” ümber nimetatud „initial_preferences”. Ühilduvuse tagamiseks jääb „master_preferences” toetus brauserisse mõneks ajaks alles. A varem on brauser juba loobunud sõnade „whitelist”, „blacklist” ja „native” kasutamisest.
- Täpsem põhjalik turvalisus ohtlike veebisaitide vastu (Enhanced Safe Browsing) aktiveerib täiendavad kontrollid, et kaitsta teid phishing', kahjuliku tegevuse ja muude veebiohtude eest, ning võimaldab üles laaditud failide saatmist Google'i poolt kontrollimiseks. Lisaks on Enhanced Safe Browsing rakendatud Google'i konto külge seotud tokenite arvestus, et tuvastada phishing'u katseid ning saata Google'i serveritesse Referrer header'i väärtusi kahjuliku saidi kaudu edastamise kontrollimiseks.
- Android platvormile mõeldud versioonis on parendatud veebivormide elementide kuvamist, mis on optimeeritud kasutamiseks puutetundlikel ekraanidel ja erivajadustega inimeste süsteemides (lauasüsteemide jaoks tehti kujunduse muutmine Chrome 83-s). Ümberkujundamise eesmärk oli vormielementide kujunduse ühtlustamine ja stiilide ebakõlade kõrvaldamine — varem olid osa vormielemente projekteeritud vastavalt operatsioonisüsteemide kasutajaliidese elementidele, teine osa aga vastavalt kõige populaarsematele stiilidele. Selle tõttu sobisid erinevad elemendid erinevalt puutetundlikele ekraanidele ja erivajadustega inimeste süsteemidele.


- Lisatud kasutajate küsitlus, mis kuvatakse privaatsuse seadete avamisel (chrome://settings/privacySandbox).
- Android versiooni Chrome'i avamisel suure ekraaniga tahvelarvutitel küsitakse veebisaidi lauaversiooni, mitte mobiiliversiooni. Käitumist saab muuta seadistuse abil 'chrome://flags/#request-desktop-site-for-tablets'.
- Tabelite joonistamise kood on ümber kirjutatud, mis lahendab probleemid tabelite kuvamise käitumise ebakõlade osas Chrome'is ja Firefoxis/Safari-s.
- Camerfirma Hispaania sertifitseerimiskeskuse serveri sertifikaatide töötlemine on peatatud alates 2017. aastast, kuna on olnud korduvaid sertifikaatide väljastamise rikkumisi. Klientide sertifikaatide tugi jääb alles, blokeerimine rakendub ainult sertifikaatidele, mida kasutatakse HTTPS-i veebisaitidel.
- Jätkub võrgu segmentimise toe rakendamine, et kaitsta kasutaja liikumise jälgimise meetodite eest, mis põhinevad identifikaatorite salvestamisel piirkondades, mis ei ole mõeldud teabe püsivaks salvestamiseks ("Supercookies"). Kuna vahemikus talletatud ressursid on jagatud ühisesse nimiruum, sõltumata algsest domeenist, võib üks sait tuvastada, kas teise saidi ressursid on laaditud, kontrollides, kas see ressurss on vahemikus olemas. Kaitse põhineb võrgu segmentimisel, mille põhimõte on täiendava seose lisamine koos jagatud vahemälu sissekannetega. domaadi, mille, mille avatud peamine leht, mis piirab vahemälu katvust jälgimis skriptide jaoks ainult praeguse saidiga (iframe'i skript ei saa kontrollida, kas ressurss laaditi teiselt saidilt).
Segmenteerimise hinna tõttu väheneb vahemälu efektiivsus, mis toob kaasa väikese lehe laadimise aja suurenemise (kuni 1,32%, kuid 80% veebisaitidest 0,09-0,75% ulatuses). Segmenteerimise režiimi testimiseks saab käivitada brauseri valikuga «—enable-features=PartitionConnectionsByNetworkIsolationKey, PartitionExpectCTStateByNetworkIsolationKey, PartitionHttpServerPropertiesByNetworkIsolationKey, PartitionNelAndReportingByNetworkIsolationKey, PartitionSSLSessionsByNetworkIsolationKey, SplitHostCacheByNetworkIsolationKey».
- Lisatud väline REST API VersionHistory (https://versionhistory.googleapis.com/v1/chrome), mille kaudu saab saada teavet Chrome'i versioonide kohta platvormide ja harude lõikes, samuti brauseri uuendamise ajaloost.
- Iframeides, mis on laaditud domeenidelt, mis erinevad põhilehe domeenist, on JavaScripti dialoogide alert(), confirm() ja prompt() väljastamine keelatud, mis kaitseb kasutajaid katsete eest, mille käigus kolmandad skriptid esitavad sõnumeid, mis näivad olevat põhisaidi poolt väljastatud.
- Stabiliseeritud ja vaikimisi pakutav WebAssembly SIMD API vektori SIMD-käskude kasutamiseks WebAssembly formaadis rakendustes. Platvormide sõltumatuse tagamiseks pakutakse uut 128-bitist tüüpi, mis suudab esindada erinevaid pakitud andmete tüüpe, ja mitmeid põhilisi vektoroperatsioone pakitud andmete töötlemiseks. SIMD võimaldab andmete töötlemise paraleelset teostamist ja on kasulik, kui kompileerida native-koodi WebAssembly-ks.
- Origin Trials režiimis (katsevõimalused, mis nõuavad eraldi aktiveerimist) on lisatud mitu uut API-d. Origin Trial tähendab, et antud API-d on võimalik kasutada rakendustes, mis on laaditud localhost või 127.0.0.1 aadressilt, või pärast registreerimist ja spetsiaalse ajaliselt piiratud pääsme saamist konkreetse saidi jaoks.
- WebTransport on protokoll ja sellega seotud JavaScript API andmete saatmiseks ja vastuvõtmiseks brauseri ja serveriga. Sidekanal luuakse HTTP/3 peal koos QUIC-protokolli transportimisega, mis omakorda on UDP protokolli pealistruktuur, toetades mitme ühenduse multiplexerimist ja pakkudes krüpteerimismeetodeid, mis on TLS/SSL-iga võrdsed.
WebTransport võib asendada WebSocketite ja RTCDataChanneli mehhanisme, pakkudes lisafunktsioone, nagu mitme voolu edastamine, ühesuunalised voolud, pakettide edastamine järjekorra ignoreerimisega (out-of-order) ning usaldusväärne ja usaldusväärne edastusrežiim. Lisaks saab WebTransporti kasutada Server Push mehhanismi asemel, millest on Chrome'is loobunud Google.
- Deklaratiivne liides, mis määratleb viiteid eraldiseisvatele veebi rakendustele (PWA), kaasates märke capture_links veebi rakenduse manifestis, võimaldades saitidel automaatselt avada uut PWA-akent, kui klõpsatakse rakenduse lingil või minna ühe akna režiimi, sarnaselt mobiilirakendustega.
- Lisatud API WebXR Plane Detection, mis annab teavet tasapindade kohta virtuaalses 3D-keskkonnas. Antud API võimaldab vältida ressursimahukat andmete töötlemist, mis saadakse MediaDevices.getUserMedia() kutsumisest, kasutades oma masinõppe algoritmide realiseeringut. Tuletame meelde, et API WebXR võimaldab ühtlustada töötamist erinevate virtuaalreaalsuse seadmete klassidega, alates statsionaarsetest 3D-prillidest kuni mobiilseadmete lahendusteni.
- WebTransport on protokoll ja sellega seotud JavaScript API andmete saatmiseks ja vastuvõtmiseks brauseri ja serveriga. Sidekanal luuakse HTTP/3 peal koos QUIC-protokolli transportimisega, mis omakorda on UDP protokolli pealistruktuur, toetades mitme ühenduse multiplexerimist ja pakkudes krüpteerimismeetodeid, mis on TLS/SSL-iga võrdsed.
- Rakendatud tugi WebSocketsidele HTTP/2 (RFC 8441) peal, mis kehtib ainult turvatud WebSocketi päringute jaoks ja juba serveriga loodud HTTP/2 ühenduse korral, kus on välja kuulutatud laienduse «WebSockets over HTTP/2» tugi.
- Taimeri väärtuste täpsuse piirangud, mis antakse performance.now() kutsumise kaudu, on ühtlustatud kõigi toetatud platvormide jaoks ja kohandatud arvestades töötlejate võimalikku isoleerimist eraldi protsessides. Näiteks lauaarvutite süsteemidel on täpsus mitteisoleeritud kontekstides vähendatud 5 mikrosekundilt 100 mikrosekundile.
- Töölauasüsteemide kogumites on realiseeritud võimalus lugeda faile ühisklipboard'ist (failide kirjutamine ühisklipboard'i on endiselt keelatud). async function onPaste(e) { let file = e.clipboardData.files[0]; let contents = await file.text(); }
- CSS-is on rakendatud reegel @counter-style, mis võimaldab määrata isiklikke stiile loendurite ja siltide jaoks nummerdatud nimekirjades.
- CSS-i pseudo-klassi «:host()» ja «:host-context()» on lisatud võimalus edastada üksikute väärtuste koostisosade valijate (<compound-selector>) lisaks valijate loenditele (<compound-selector-list>).
- Lisatud on GravitySensor liides, et määrata kolmemõõtmelisi (kolme koordinaatakse telje järgi) andmeid gravitatsioonisensorist.
- File System Access API-s on antud võimalus määrata soovitusi faili ja katalooge nimetamiseks, mis pakutakse failide loomise või avamise dialoogis.
- Teistelt domeenidelt laaditud iframe-ides on lubatud pöörduda WebOTP API poole, kui kasutaja annab vastavad volitused. WebOTP võimaldab lugeda SMS-iga saadetud ühekordseid kinnituskoodide.
- Samaaegse juurdepääsu andmete jagamine saidi konto jaoks, mille ühendamine toimub DAL (Digital Asset Links) mehhanismi abil, mis võimaldab seostada Android rakendusi veebisaitidega, et lihtsustada sisse logimist.
- Service workeris on lubatud JavaScripti moodulite kasutamine. Kui konktreetset tüüpi 'module' kasutatakse konstruktorit käivitamisel, laaditakse ära määratud skriptid moodulitena ja need on saadaval imporditavaks worker-i kontekstis. Moodulite tugi lihtsustab koodi jagamise teostamist veebi lehtedel ja Service workerites.
- JavaScriptis on lisatud võimalus kontrollida privaatsete väljade olemasolu objektis, kasutades süntaksit "#foo in obj". class A { static test(obj) { console.log(#foo in obj); } #foo = 0; } A.test(new A()); // true A.test({}); // false
- JavaScriptis on vaikimisi lubatud await märksõna kasutamine moodulite tipust, mis võimaldab sujuvamalt integreerida asünkroonseid kõnesid moodulite laadimisprotsessis ja vältida 'async function' kasutamist. Näiteks selle asemel, et kirjutada (async function() { await Promise.resolve(console.log('test')); }()); saab nüüd kirjutada await Promise.resolve(console.log('test'));
- JavaScript'i V8 mootoris on suurendatud mallide vahemälu tõhusust, mis on parandanud Speedometer2-FlightJS testi läbimise kiirus 4,5% võrra.
- Web-arendajate tööriistades on tehtud mitmeid olulisi täiustusi. Lisatud on uus mälu inspektori režiim (Memory inspector), mis pakub võimalusi ArrayBuffer'i ja Wasm mäludetailide uurimiseks.

Performance paneelile on lisatud kokkuvõtlik jõudluse indikaator, mis võimaldab hinnata, kas veebileht vajab optimeerimist.

Elementide paneelis ja võrguküsimuste analüüsi paneelis on piltide eelvaate ajal saadaval teave pildi kuvasuhe, visualiseerimise parameetrite ja faili suuruse kohta.

Võrguekspertide paneelis on võimalik muuta vastuvõetud Content-Encoding päise väärtusi.

Stiilide paneelis on nüüd võimalik kiiresti vaadata arvutatud väärtust, kui navigeerite CSS parameetrite vahel ja valite kontekstimenüüst „Vaata arvutatud väärtust“.

Uues versioonis on lisaks uuendustele ja veaparandustele kõrvaldatud 32 haavatavust. Paljud haavatavused tuvastati automatiseeritud testimise tööriistade nagu AddressSanitizer, MemorySanitizer, Control Flow Integrity, LibFuzzer ja AFL abil. Kriitilisi probleeme, mis võimaldaksid kõrvale juhtida kõik brauseri kaitsekihtide tasemed ja käivitada süsteemis koodi liivakasti keskkonnast väljaspool, ei tuvastatud. Loodavatele haavatavustele tõkkeid andmise preemiate programmi raames on Google praeguse versiooni eest välja maksnud 21 preemiat kogusummas 92000 USA dollarit (üks preemia $20000, üks preemia $15000, neli preemiat $7500, kolm preemiat $5000, kolm preemiat $3000, kaks preemiat $1000 ja kaks preemiat $500). 5 preemia suurust pole veel määratud.
Allikas: opennet.ru







