Spoločnosť Google predstavila vydanie webového prehliadača Chrome 94. Zároveň je k dispozícii stabilné vydanie voľného projektu Chromium, ktorý slúži ako základ pre Chrome. Prehliadač Chrome sa odlišuje použitím loga Google, systémom zasielania upozornení v prípade havárie, modulmi pre prehrávanie chráneného video obsahu (DRM), systémom automatickej inštalácie aktualizácií a prenášaním parametrov RLZ pri vyhľadávaní. Ďalšie vydanie Chrome 95 je naplánované na 19. októbra.
Začínajúc vydaním Chrome 94 bola vývoj preložený na nový cyklus prípravy vydaní. Nové významné vydania sa odteraz budú publikovať raz za 4 týždne, nie raz za 6 týždňov, čo umožní urýchliť zavádzanie nových funkcií k používateľom. Je zaznamenané, že optimalizácia procesu prípravy vydaní a zlepšenie systému testovania umožňujú častejšie vytváranie vydaní bez obetovania kvality. Pre firmy a pre tých, ktorí potrebujú viac času na aktualizáciu, bude každé 8 týždňov samostatne vydávaná verzia Extended Stable, ktorá umožní prechod na nové funkčné vydania nie raz za 4 týždne, ale raz za 8 týždňov.
Hlavné zmeny v Chrome 94:
- Pridaný režim HTTPS-First, ktorý pripomína režim HTTPS Only, ktorý sa predtým objavil vo Firefoxe. Ak je režim aktivovaný v nastaveniach, pri pokuse o otvorenie zdroja bez šifrovania cez HTTP sa prehliadač najprv pokúsi pripojiť na stránku cez HTTPS a ak bude pokus neúspešný, používateľovi sa zobrazí upozornenie o neexistencii podpory HTTPS a ponúkne sa mu možnosť otvoriť stránku bez šifrovania. V budúcnosti Google zvažuje možnosť aktivácie režimu HTTPS-First ako predvoleného pre všetkých používateľov, obmedzenie prístupu k niektorým funkciám webovej platformy pre stránky otvorené cez HTTP, a pridanie ďalších upozornení, ktoré informujú používateľov o hrozbách vznikajúcich pri prístupe na stránky bez šifrovania. Režim sa aktivuje v nastaveniach „Ochrana súkromia a bezpečnosť“ > „Bezpečnosť“ > „Rozšírené“.

- Pre stránky, otvorené bez HTTPS, je zakázané posielať požiadavky (načítavanie zdrojov) na lokálne URL (napríklad „http://router.local“ a localhost) a vnútorné rozsahy adries (127.0.0.0/8, 192.168.0.0/16, 10.0.0.0/8 atď.). Výnimka je urobená iba pre stránky, ktoré sú načítané z serverov, majú vnútorné IP. Napríklad stránka načítaná z servera 1.2.3.4 sa môže pripojiť k zdroju umiestnenému na IP 192.168.0.1 alebo IP 127.0.0.1, zatiaľ čo stránka načítaná zo servera 192.168.1.1 — môže. Zmena vnáša dodatočnú úroveň ochrany proti zneužívaniu zraniteľností v spracovateľoch, ktoré prijímajú požiadavky na lokálne IP, a tiež pomôže chrániť pred útokmi typu „DNS rebinding“.
- Pridaná funkcia „Sharing Hub“, ktorá umožňuje rýchlo zdieľať odkaz na aktuálnu stránku s inými používateľmi. Je k dispozícii možnosť generovania QR kódu s URL, uloženia stránky, odoslania odkazu na iné zariadenie prepojené s účtom používateľa a zdieľania odkazu na externé stránky ako Facebook, WhatsApp, Twitter a VK. Možnosť je zatiaľ dostupná nie všetkým používateľom. Na povolenie tlačidla „Share“ v ponuke a adresnom riadku môžete použiť nastavenia „chrome://flags/#sharing-hub-desktop-app-menu“ a „chrome://flags/#sharing-hub-desktop-omnibox“.

- Prebehla reštrukturalizácia rozhrania nastavenia prehliadača. Každá sekcia nastavení sa teraz zobrazuje na samostatnej stránke, a nie na jednej spoločnej.

- Realizovaná podpora dynamického aktualizovania logu vydaných a odvolaných certifikátov (Certificate Transparency), ktorý sa teraz bude aktualizovať nezávisle od aktualizácie prehliadača.
- Pridaná stránka „chrome://whats-new“ s prehľadom viditeľných zmien pre používateľa v novej verzii. Stránka sa zobrazuje automaticky hneď po aktualizácii alebo je dostupná prostredníctvom tlačidla „Čo je nové“ (What’s New) v ponuke Pomoc (Help). V súčasnosti na stránke sú spomenuté vyhľadávanie na kartách, možnosť rozdelenia profilov a funkcionalita zmeny farby pozadia, ktoré nie sú špecifické pre Chrome 94 a objavili sa v predchádzajúcich vydaniach. Zobrazenie stránky zatiaľ nie je povolené pre všetkých používateľov: na riadenie aktivácie môžete použiť nastavenia „chrome://flags#chrome-whats-new-ui“ a „chrome://flags#chrome-whats-new-in-main-menu-new-badge“.

- Bola vyhlásená zastaranosť volania na API WebSQL z obsahu načítaného zo stránok tretích strán (napr. prostredníctvom iframe). V prehliadači Chrome 94 sa pri pokuse o prístup k WebSQL z externých skriptov zobrazuje varovanie, ale od verzie Chrome 97 budú takéto prístupy blokované. V budúcnosti sa plánuje postupne úplne ukončiť podporu WebSQL, bez ohľadu na kontext použitia. Spracovateľ WebSQL je založený na kóde SQLite a mohol byť zneužitý útočníkmi na vykonávanie útokov na zraniteľnosti v SQLite.
- Z bezpečnostných dôvodov a na predchádzanie škodlivej činnosti sa začalo s blokovaním používania zastaraného protokolu MK (URL:MK), ktorý sa kedysi používal v Internet Explorer a umožňoval webovým aplikáciám získavať informácie zo skomprimovaných súborov.
- Podpora synchronizácie so staršími verziami Chrome (Chrome 48 a starší) bola ukončená.
- Do HTTP hlavičky Permissions-Policy, určeného na aktiváciu určitých možností a správu prístupu k API, bola pridaná podpora pre flag „display-capture“, ktorý umožňuje spravovať používanie API Screen Capture na stránke (predvolene je možnosť zachytiť obsah obrazovky z externých iframe blokovaná).
- Do režimu Origin Trials (experimentálne funkcie, ktoré vyžadujú samostatnú aktiváciu) bolo pridaných niekoľko nových API. Origin Trial umožňuje prístup k uvedenému API z aplikácií načítaných z localhost alebo 127.0.0.1, alebo po registrácii a získaní špeciálneho tokenu, ktorý platí obmedzený čas pre konkrétnu stránku.
- Bol pridaný API WebGPU, ktorý nahrádza API WebGL a poskytuje prostriedky na vykonávanie operácií na GPU, ako je renderovanie a výpočty. Konceptuálne je WebGPU príbuzný API Vulkan, Metal a Direct3D 12. Konceptuálne sa WebGPU líši od WebGL približne tak, ako sa grafické API Vulkan líši od OpenGL, ale nezakladá sa na konkrétnom grafickom API, ale predstavuje univerzálnu vrstvu, ktorá využíva tie isté nízkoúrovňové primitívy, aké sú v Vulkan, Metal a Direct3D 12.
WebGPU poskytuje aplikáciám na JavaScripte prostriedky na nízkoúrovňové ovládanie organizácie, spracovania a prenosu príkazov do GPU, ako aj umožňuje spravovať súvisiace zdroje, pamäť, buffery, objekty textúr a skompilované grafické shadery. Takýto prístup umožňuje dosiahnuť vyšší výkon grafických aplikácií znížením režijných nákladov a zlepšením efektívnosti práce s GPU. API tiež umožňuje vytvárať pre web komplexné 3D projekty, ktoré fungujú rovnako dobre ako samostatné aplikácie, ale nie sú viazané na konkrétne platformy.
- Pre vyhradené PWA aplikácie bola implementovaná možnosť registrácie ako spracovateľov URL. Napríklad aplikácia music.example.com sa môže zaregistrovať ako spracovateľ URL https://*.music.example.com, pričom všetky prechody z externých aplikácií prostredníctvom týchto odkazov, napríklad z messengerov a e-mailových klientov, povedú k otvoreniu tejto PWA aplikácie namiesto novej záložky v prehliadači.
- Bola implementovaná podpora nového HTTP kódu odpovede — 103, ktorý môže byť použitý na predbežný výstup hlavičiek. Kód 103 umožňuje informovať klienta o obsahu niektorých HTTP hlavičiek ihneď po požiadavke, bez čakania, kým server vykoná všetky súvisiace operácie a začne odosielať obsah. Takto je možné poskytnúť odkazy na súvisiace prvky stránky, ktoré môžu byť predbežne načítané (napríklad môžu byť uvedené odkazy na použité CSS a JavaScript na stránke). Po prijatí informácií o týchto zdrojoch začne prehliadač ich načítanie bez čakania na dokončenie odosielania hlavnej stránky, čo umožňuje skrátiť celkový čas spracovania požiadavky.
- Bol pridaný API WebGPU, ktorý nahrádza API WebGL a poskytuje prostriedky na vykonávanie operácií na GPU, ako je renderovanie a výpočty. Konceptuálne je WebGPU príbuzný API Vulkan, Metal a Direct3D 12. Konceptuálne sa WebGPU líši od WebGL približne tak, ako sa grafické API Vulkan líši od OpenGL, ale nezakladá sa na konkrétnom grafickom API, ale predstavuje univerzálnu vrstvu, ktorá využíva tie isté nízkoúrovňové primitívy, aké sú v Vulkan, Metal a Direct3D 12.
- Bol pridaný API WebCodecs na manipuláciu s multimediálnymi tokmi na nízkej úrovni, doplňujúci vysokú úroveň API HTMLMediaElement, Media Source Extensions, WebAudio, MediaRecorder a WebRTC. Nový API môže byť užitočný v oblastiach ako streamovanie hier, aplikácia efektov na strane klienta, pre kódovanie tokov a podpora neštandardných multimediálnych kontejnerov. Namiesto implementácie samostatných kodekov v JavaScripte alebo WebAssembly, API WebCodecs poskytuje prístup k hotovým vysoko výkonným komponentom, zabudovaným do prehliadača. Najmä v API WebCodecs sú k dispozícii dekodéry a enkodéry zvuku a videa, dekodéry obrázkov a funkcie na prácu s jednotlivými snímkami videa na nízkej úrovni.
- Stabilizovaný API Insertable Streams, ktorý umožňuje manipulovať s pôvodnými (raw) multimedálnymi tokmi prenášanými prostredníctvom API MediaStreamTrack, ako sú dáta z kamery a mikrofónu, výsledok zachytenia obrazovky alebo medzidaty dekódovania kodekom. Na reprezentáciu pôvodných snímok sa používajú rozhrania WebCodec, po čom sa vytvorí tok obdobný tomu, ktorý API WebRTC Insertable Streams generuje na základe RTCPeerConnections. Z praktického hľadiska nový API umožňuje realizovať takú funkcionalitu, ako je aplikácia metód strojového učenia na identifikáciu alebo anotovanie objektov v reálnom čase alebo pridávanie efektov, ako je odstránenie pozadia, pred kódovaním alebo po dekódovaní kodekom.
- Stabilizovaná metóda scheduler.postTask(), ktorá umožňuje riadiť plánovanie vykonávania úloh (callback volaní JavaScriptu) s rôznymi úrovňami priority. Poskytujú sa tri úrovne priority: 1 - vykonanie na prvom mieste, aj keď môže byť zablokovaná činnosť používateľa; 2 - povolené viditeľné zmeny pre používateľa; 3 - vykonanie na pozadí. Na zmenu priority a zrušenie úloh je možné použiť objekt TaskController.
- Stabilizovaný a teraz distribuovaný mimo Origin Trials API Idle Detection na určenie neaktivity používateľa. API umožňuje určiť čas, kedy používateľ neinteraguje s klávesnicou/myšou, je spustený spoľahlivý obraz, obrazovka je zablokovaná alebo sa práca vykonáva na inom monitore. Informovanie aplikácie o neaktivite sa vykonáva prostredníctvom zasielania oznámenia po dosiahnutí zadaného prahu neaktivity.
- Formalizovaný proces správy farby v objektoch CanvasRenderingContext2D a ImageData a používania v nich farebného priestoru sRGB. Poskytla sa možnosť vytvárania objektov CanvasRenderingContext2D a ImageData v farebných priestoroch odlišných od sRGB, ako je Display P3, na využitie rozšírených možností moderných monitorov.
- V API VirtualKeyboard boli pridané metódy a vlastnosti na riadenie zobrazenia a skrytia virtuálnej klávesnice, ako aj na získanie informácií o veľkosti zobrazeného virtuálneho klávesnice.
- V JavaScripte sú triedam poskytnuté možnosti používania statických inicializačných blokov na zoskupenie kódu, ktorý sa vykonáva raz pri spracovaní triedy: class C { // Blok bude spustený pri spracovaní samotnej triedy static { console.log(„Statický blok C“); } }
- V CSS vlastnostiach flex-basis a flex sú implementované kľúčové slová content, min-content, max-content a fit-content na pružnejšiu správu veľkosti hlavnej oblasti Flexboxu.
- Pridané CSS vlastnosť scrollbar-gutter na spravovanie rezervovania miesta na obrazovke pre posuvník. Napríklad, keď nie je potrebné posúvanie obsahu, je možné rozšíriť výstup a využiť priestor posuvníka.
- Pridané API Self Profiling s implementáciou profilačného systému, ktorý umožňuje merať čas vykonávania JavaScriptu na strane používateľa na odladenie problémov s výkonom v JavaScriptovom kóde bez potreby ručných manipulácií v rozhraní pre webových vývojárov.
- Po odstránení Flash pluginu sa rozhodlo vracať prázdne hodnoty v vlastnostiach navigator.plugins a navigator.mimeTypes, avšak ukázalo sa, že niektoré aplikácie ich používali na overenie prítomnosti pluginov na zobrazenie súborov PDF. Keďže Chrome má zabudovaný prehliadač PDF, odteraz budú vlastnosti navigator.plugins a navigator.mimeTypes vracať pevný zoznam štandardných pluginov a MIME typov na zobrazenie PDF — „PDF Viewer, Chrome PDF Viewer, Chromium PDF Viewer, Microsoft Edge PDF Viewer a WebKit built-in PDF“.
- Vykonané vylepšenia v nástrojoch pre webových vývojárov. Do zoznamu simulovaných obrazoviek boli pridané zariadenia Nest Hub a Nest Hub Max. Do rozhrania pre inspectovanie sieťovej aktivity bola pridaná tlačidlo na invertovanie filtrov (napríklad pri nastavení filtra „status-code: 404“ je možné rýchlo pozrieť všetky ostatné požiadavky), a taktiež bola poskytnutá možnosť zobraziť pôvodné hodnoty hlavičiek Set-Cookie (umožňuje posúdiť prítomnosť nekorektných hodnôt odstraňovaných pri normalizácii). Bočná lišta v webovej konzole bola vyhlásená za zastaranú a bude odstránená v niektorých z nasledujúcich vydaní. Pridaná experimentálna možnosť skrývania problémov na karte Issues. V nastaveniach bola pridaná možnosť výberu jazyka rozhrania.

Okrem noviniek a opráv chýb v novej verzii bolo odstránených 19 zraniteľností. Mnohé z týchto zraniteľností boli odhalené v dôsledku automatizovaného testovania pomocou nástrojov AddressSanitizer, MemorySanitizer, Control Flow Integrity, LibFuzzer a AFL. Neboli zistené kritické problémy, ktoré by umožnili obísť všetky úrovne ochrany prehliadača a vykonať kód v systéme mimo sandboxového prostredia. V rámci programu vyplácania peňažných odmien za objavovanie zraniteľností pre aktuálny release spoločnosť Google vyplatila 17 odmien v celkovej výške 56500 dolárov (jedna odmena $15000, dve odmeny $10000, jedna odmena $7500, štyri odmeny $3000, dve odmeny $1000). Výška 7 odmien zatiaľ nebola určená.
Zdroj: opennet.ru





