Společnost Google uvedla na trh novou verzi webového prohlížeče Chrome 90. Současně je k dispozici stabilní verze otevřeného projektu Chromium, který je základem pro Chrome. Prohlížeč Chrome se vyznačuje použitím loga Google, systémem pro odesílání oznámení v případě pádu, moduly pro přehrávání chráněného videa (DRM), automatickou aktualizací a přenosem RLZ parametrů při hledání. Další verze Chrome 91 je plánována na 25. května.
Hlavní změny v Chrome 90:
- Všichni uživatelé nyní mohou otevírat webové stránky výchozí cestou HTTPS při zadávání názvů hostitelů do adresního řádku. Například, při zadání hostitele example.com bude výchozí otevřena stránka https://example.com, a pokud nastanou problémy, dojde k návratu k http://example.com. Pro správu výchozího použití „https://“ byla navržena nastavení „chrome://flags#omnibox-default-typed-navigations-to-https“.
- Byla implementována možnost přiřazení různých názvů oknům pro jejich snadné rozlišení na pracovní ploše. Podpora změny názvu okna usnadní organizaci práce při používání jednotlivých oken pro různé úkoly, například při otevírání oken pro pracovní úkoly, osobní zájmy, zábavu, odložené materiály atd. Název se mění pomocí volby „Přidat název okna“ v kontextovém menu, které se objeví kliknutím pravým tlačítkem myši na prázdnou oblast na liště záložek. Po změně názvu se na panelu aplikací místo názvu stránky aktivní záložky zobrazí vybraný název, což může být užitečné při otevírání stejných webových stránek v různých oknech spojených s jednotlivými účty. Přiřazení se uchovává mezi relacemi a po restartu budou okna obnovena s vybranými názvy.

- Byla přidána možnost skrýt „Seznam čtení“ bez potřeby měnit nastavení v „chrome://flags“ („chrome://flags#read-later“). Pro skrytí nyní lze použít možnost „Zobrazit seznam čtení“ v dolní části kontextového menu, které se zobrazuje při pravém kliknutí na panelu záložek. Připomínáme, že v předchozím vydání se u některých uživatelů po kliknutí na hvězdičku v adresním řádku vedle tlačítka „Přidat záložku“ zobrazilo druhé tlačítko „Přidat do seznamu čtení“, a v pravém rohu panelu záložek se objevilo menu „Seznam čtení“, které obsahovalo všechny dříve přidané stránky. Při otevření stránky ze seznamu je označena jako přečtená. Stránky v seznamu mohou být také ručně označeny jako přečtené nebo nepřečtené, nebo mohou být ze seznamu odstraněny.
- Byla přidána podpora segmentace sítě pro ochranu před metodami sledování pohybů uživatele mezi webovými stránkami, založenými na ukládání identifikátorů v oblastech, které nejsou určeny pro trvalé uchovávání informací („Supercookies“). Vzhledem k tomu, že zdroje v mezipaměti jsou uchovávány ve společném jmenném prostoru, nezávisle na doméně, může jeden web zjistit načtení zdrojů z jiného webu tím, že zkontroluje přítomnost tohoto zdroje v mezipaměti. Ochrana je založena na aplikaci segmentace sítě (Network Partitioning), jejímž smyslem je přidání další vazby záznamů ke domain, ze kterého byla otevřena hlavní stránka, což omezuje dosah mezipaměti pro sledovací skripty pouze na aktuální web (skript z iframe nebude schopen zjistit, zda byl zdroj načten z jiného webu). Cenou za segmentaci je snížení efektivity ukládání do mezipaměti, což vede k mírnému zvýšení doby načítání stránky (maximálně o 1,32 %, ale pro 80 % webů o 0,09–0,75 %).
- Byl doplněn černý seznam síťových portů, pro které je blokováno odesílání HTTP, HTTPS a FTP požadavků s cílem ochrany před útokem NAT slipstreaming, který umožňuje při otevření speciálně připravené útočníkem webové stránky v prohlížeči navázat síťové spojení s serveru útočníka na jakýkoli UDP nebo TCP port na systému uživatele, a to i při použití interního adresního rozsahu (192.168.x.x, 10.x.x.x). Na seznam zakázaných portů byly přidány 554 (protokol RTSP) a 10080 (používá se v zálohování Amanda a VMWare vCenter). Dříve již byly zablokovány porty 69, 137, 161, 554, 1719, 1720, 1723, 5060, 5061 a 6566.
- Byla přidána základní podpora pro otevírání PDF dokumentů s XFA formuláři v prohlížeči.
- Pro část uživatelů byla aktivována nová sekce nastavení „Nastavení Chrome > Soukromí a zabezpečení > Soukromí sandbox“, která umožňuje spravovat parametry API FLoC, zaměřeného na určení kategorie zájmů uživatele bez provádění individuální identifikace a bez vazby na historii návštěv konkrétních webů.
- Bylo zajištěno zobrazení srozumitelnějšího upozornění se seznamem povolených akcí, které se zobrazuje v případě připojení uživatele k profilu, pro který je zapnuto centralizované řízení.
- Bylo učiněno rozhraní pro žádost o oprávnění méně dotěrné. Žádosti, které uživatel pravděpodobně neschválí, jsou nyní automaticky blokovány s odpovídajícím indikátorem v adresním řádku, pomocí kterého se uživatel může přepnout do rozhraní pro správu oprávnění vázaných na každý web.

- Byla zavedena podpora rozšíření Intel CET (Intel Control-flow Enforcement Technology) pro hardwarovou ochranu proti exploitům založeným na technikách orientovaného návratu (ROP, Return-Oriented Programming).
- Pokračuje práce na přechodu prohlížeče na používání inkluzivní terminologie. Soubor „master_preferences“ byl přejmenován na „initial_preferences“, aby se nepoškodily city uživatelů, kteří slovo master vnímají jako připomínku otroctví svých předků. Aby byla zachována kompatibilita, podpora „master_preferences“ ještě nějakou dobu zůstane v prohlížeči. Prohlížeč se již dříve zbavil používání slov „whitelist“, „blacklist“ a „native“.
- Ve verzi pro Android je při aktivaci režimu úspory dat „Lite“ implementováno snížení bitové rychlosti při přehrávání videa při připojení přes mobilní sítě. To umožní snížit náklady uživatelů, kteří mají tarif s omezeným datovým objemem. V režimu „Lite“ je také zajištěno komprimování obrázků požadovaných z veřejně dostupných zdrojů (nevyžadujících autentizaci) přes HTTPS.
- Byl přidán video formátový enkodér AV1, speciálně optimalizovaný pro použití ve videokonferencích založených na protokolu WebRTC. Použití AV1 ve videokonferencích umožňuje zvýšit efektivitu komprese a zajistit možnost přenosu na kanálech s propustností na úrovni 30 kbit/s.
- V JavaScriptu byl v objektech Array, String a TypedArrays implementován výchozí metod at(), který umožňuje použití relativní indexace (jako index pole se udává relativní pozice), včetně specifikace záporných hodnot vzhledem k konci (například „arr.at(-1)“ vrátí poslední prvek pole).
- V JavaScriptu byla pro regulární výrazy přidána vlastnost „.indices“, která obsahuje pole s počátečními a koncovými pozicemi shodujících se skupin. Tato vlastnost je vyplněna pouze při provádění regulárního výrazu s vlajkou „/d“. const re = /(a)(b)/d; const m = re.exec(‘ab’); console.log(m.indices[0]); // 0 — všechny shodující se skupiny // → [0, 2] console.log(m.indices[1]); // 1 — první shodující se skupina // → [0, 1] console.log(m.indices[2]); // 2 — druhá shodující se skupina // → [1, 2]
- Byla provedena optimalizace výkonu vlastností „super“ (například super.x), pro které je využíván inline-cache. Výkon použití „super“ je nyní blízký výkonu přístupu k běžným vlastnostem.
- Výrazně byla zrychlena volání WebAssembly funkcí z JavaScriptu díky použití inline rozvinutí. Tato optimalizace zatím zůstává experimentální a vyžaduje spuštění s flagem „—turbo-inline-js-wasm-calls“.
- Byla přidána API WebXR Depth Sensing, která umožňuje určovat vzdálenost mezi objekty v okolí uživatele a zařízeními uživatele, například pro vytváření realističtějších aplikací pro rozšířenou realitu. Připomeňme, že API WebXR umožňuje standardizovat práci s různými třídami zařízení virtuální reality, od stacionárních 3D headsetů až po řešení založená na mobilních zařízeních.
- Byla stabilizována funkce WebXR AR Lighting Estimation, která umožňuje v sezeních WebXR pro rozšířenou realitu určovat parametry okolního osvětlení pro dosažení přirozenějšího vzhledu modelů a jejich harmonické integrace s okolím uživatele.
- V režimu Origin Trials (experimentální funkce vyžadující zvláštní aktivaci) byly přidány nové API, která jsou zatím omezena na platformu Android. Origin Trial znamená možnost pracovat s uvedeným API z aplikací načítaných z localhost nebo 127.0.0.1, nebo po registraci a získání speciálního tokenu, který je omezený časově pro konkrétní web.
- Metoda getCurrentBrowsingContextMedia(), která umožňuje zachytit videostream MediaStream, odrážející obsah aktuálního panelu. Na rozdíl od podobné metody getDisplayMedia() při volání getCurrentBrowsingContextMedia() uživateli zobrazí jednoduchý dialog pro potvrzení nebo blokaci operace přenosu videa s obsahem panelu.
- API Insertable Streams, které umožňuje manipulaci s neupravenými (raw) multimediálními streamy přenášenými přes API MediaStreamTrack, jako jsou data z kamery a mikrofonu, výsledek zachycení obrazovky nebo mezivýsledky dekódování kodekem. Pro zpracování neupravených snímků se používají rozhraní WebCodec, po kterém se vytváří stream, podobný tomu, který generují API WebRTC Insertable Streams na základě RTCPeerConnections. Z praktického hlediska nové API umožňuje implementaci funkcionality, jako je použití metod strojového učení k identifikaci nebo anotaci objektů v reálném čase nebo k přidání efektů, jako je odstranění pozadí, před kódováním nebo po dekódování kodekem.
- Možnost balení zdrojů do balíčků (Web Bundle) pro efektivnější načítání velkého množství souvisejících souborů (CSS styly, JavaScript, obrázky, iframe). Mezi nevýhody stávající podpory balíčků pro soubory JavaScript (webpack), které se snaží odstranit ve Web Bundle: v HTTP cache může zůstat samotný balíček, ale ne jeho součásti; kompilace a spuštění může začít až po úplném načtení balíčku; další zdroje, jako CSS a obrázky, musí být zakódovány ve formě JavaScriptových řetězců, což vede ke zvýšení velikosti a provedení další fáze analýzy.
- Podpora zpracování výjimek v WebAssembly.
- Stabilizováno API Declarative Shadow DOM pro vytváření nových kořenových větví v Shadow DOM, například aby se oddělil importovaný externí styl prvku a s ním související podvětev DOM od hlavního dokumentu. Navrhované deklarativní API umožňuje oddělit větve DOM pouze HTML bez nutnosti psaní kódu v JavaScriptu.
- V CSS vlastnosti aspect-ratio, která umožňuje výslovně přiřadit poměr stran k jakémukoli prvku (pro automatické výpočty chybějící velikosti při uvedení pouze výšky nebo šířky), byla implementována možnost interpolace hodnot při animaci (plynulý přechod od jednoho poměru stran k druhému).
- Byla přidána možnost odrážet stav vlastních HTML prvků (custom element) v CSS prostřednictvím pseudo-třídy ':state()'. Funkčnost byla realizována analogicky schopnosti standardních HTML prvků měnit svůj stav v závislosti na interakci s uživateli.
- V CSS vlastnosti 'appearance' se objevila podpora hodnoty ‘auto’, která je ve výchozím nastavení nastavena pro a , a na platformě Android navíc pro , , , a .
- Do vlastnosti CSS „overflow“ byla přidána podpora hodnoty „clip“, která při nastavení zajišťuje, že obsah přesahující hranici bloku bude oříznut bez možnosti posouvání. Hodnota, která určuje, jak daleko může obsah přesahovat skutečnou hranici bloku před oříznutím, je nastavena prostřednictvím nového CSS vlastnosti „overflow-clip-margin“. V porovnání s „overflow: hidden“ použití „overflow: clip“ umožňuje dosáhnout vyšší výkonnosti.


- Nový HTTP header Permissions-Policy nahradil header Feature-Policy pro řízení delegace oprávnění a aktivaci rozšířených funkcí, přičemž podporuje strukturované hodnoty polí (např. nyní lze specifikovat „Permissions-Policy: geolocation=()“ místo „Feature-Policy: geolocation ‘none'“).
- Ochrana proti používání Protocol Buffers k provádění útoků způsobených spekulativním prováděním instrukcí v procesorech byla posílena. Ochrana byla realizována přidáním MIME typu „application/x-protobuffer“ do seznamu nikdy neprověřovaných (sniffed) MIME typů, které jsou zpracovávány prostřednictvím mechanismu Cross-Origin-Read-Blocking. Dříve byl do podobného seznamu již zařazen MIME typ „application/x-protobuf“, ale „application/x-protobuffer“ byl opomenut.
- V API File System Access byla zavedena možnost posunutí aktuální pozice v souboru za jeho konec s vyplněním meziprostoru nulami při následném zápisu prostřednictvím volání FileSystemWritableFileStream.write(). Tato možnost umožňuje vytvářet sparse soubory s prázdnotami a zásadně usnadňuje organizaci zápisu do souboru toků s neuspořádaným přicházením datových bloků (např. to je běžně praktikováno v BitTorrent).
- Byl přidán konstruktor StaticRange s implementací lehkých typů Range, které nevyžadují aktualizaci všech souvisejících objektů při každé změně stromu DOM.
- Byla implementována možnost zadat parametry width a height pro prvky <source>, uvedené uvnitř prvku <picture>. Tato možnost umožňuje vypočítat poměr stran pro prvky <picture>, podobně jako je to uděláno pro <img>, <canvas> a <video>.
- Z WebRTC byla odstraněna nestandardizovaná podpora RTP datových kanálů (RTP Data Channels), místo kterých se doporučuje používat datové kanály založené na SCTP.
- Vlastnosti navigator.plugins a navigator.mimeTypes nyní vždy vracejí prázdnou hodnotu (po ukončení podpory Flash zmizela potřeba těchto vlastností).
- Byla provedena řada drobných vylepšení v nástrojích pro webové vývojáře a byl přidán nový nástroj pro ladění CSS flexbox.

Kromě novinek a oprav chyb byla v nové verzi odstraněna 37 zranitelností. Mnohé z těchto zranitelností byly odhaleny pomocí automatizovaného testování nástroji AddressSanitizer, MemorySanitizer, Control Flow Integrity, LibFuzzer a AFL. Nebyly odhaleny žádné kritické problémy, které by umožnily obejít všechny úrovně ochrany prohlížeče a vykonat kód v systému mimo sandboxové prostředí. V rámci programu odměn za odhalení zranitelností pro aktuální vydání vyplatila společnost Google 19 prémií v celkové výši 54 000 dolarů (jedna prémium 20 000 dolarů, jedna prémium 10 000 dolarů, dvě prémie 5 000 dolarů, tři prémie 3 000 dolarů, jedna prémium 2 000 dolarů, jedna 1 000 dolarů a čtyři prémie 500 dolarů). Výše 6 odměn zatím nebyla určena.
Zvlášť je třeba zmínit, že včera, po vytvoření opravného vydání 89.0.4389.128, ale před vydáním Chrome 90, byla zveřejněna další exploita, která využívala novou 0-day zranitelnost, která nebyla opravena v Chrome 89.0.4389.128. Zatím není jasné, zda byla tato problém v Chrome 90 odstraněna. Stejně jako v prvním případě exploita zahrnuje pouze jednu zranitelnost a neobsahuje kód pro obcházení sandboxové izolace (při spuštění chrome s příznakem „—no-sandbox“ exploita při otevření webové stránky na platformě Windows umožní spuštění notepadu). Zranitelnost související s novým exploitem se týká technologie WebAssembly.
Zdroj: opennet.ru





