Společnost Google představila verzi webového prohlížeče Chrome 101. Současně je k dispozici stabilní verze svobodného projektu Chromium, který je základem Chrome. Prohlížeč Chrome se od Chromia liší použitím logotypů Google, systémem zasílání upozornění v případě pádu, moduly pro přehrávání videoobsahu chráněného před kopírováním (DRM), systémem automatické instalace aktualizací, trvalým zapnutím Sandbox izolace, dodáním klíčů k Google API a předáním RLZ parametrů při vyhledávání. Pro ty, kdo potřebují více času na aktualizaci, je k dispozici větev Extended Stable, která je provázena osmi týdny, během nichž je vytvořeno aktualizace pro poslední verzi Chrome 100. Další verze Chrome 102 je plánována na 24. května.
Hlavní změny v Chrome 101:
- Byla přidána funkce Side Search, která umožňuje prohlížet výsledky vyhledávání na bočním panelu současně s prohlížením jiné stránky (v jednom okně je možné vidět jak obsah stránky, tak i výsledky vyhledávání). Po přechodu na nějakou stránku z výsledků vyhledávání Google se před polem pro zadávání adresy v adresním řádku objeví ikona s písmenem „G“, po kliknutí na kterou se otevře boční panel s výsledky dříve provedeného vyhledávání. Funkce je ve výchozím nastavení zapnuta ne na všech systémech; pro její aktivaci lze použít nastavení „chrome://flags/#side-search.“

- V adresním řádku Omnibox byla implementována předběžná vykreslování (prerendering) obsahu doporučení, jež jsou nabízeny během zadávání. Dříve pro urychlení přechodu z adresního řádku se nejpravděpodobnější doporučení načítala bez čekání na kliknutí uživatele pomocí volání Prefetch. Nyní, kromě načítání, jsou také vykreslována do vyrovnávací paměti (včetně provádění skriptů a vytváření DOM stromu), což umožňuje okamžité zobrazení doporučení po kliknutí. Pro správu předběžného vykreslování jsou nabídnuty nastavení „chrome://flags/#enable-prerender2“, „chrome://flags/#omnibox-trigger-for-prerender2“ a „chrome://flags/#search-suggestion-for-prerender2.“
- Informace v HTTP hlavičce User-Agent a JavaScript parametrech navigator.userAgent, navigator.appVersion a navigator.platform byly zkráceny. V hlavičce zůstávají pouze údaje o názvu prohlížeče, hlavní verzi prohlížeče (složky verze MINOR.BUILD.PATCH byly nahrazeny 0.0.0), platformě a typu zařízení (mobilní telefon, PC, tablet). Pro zisk dalších dat, jako je přesná verze a rozšířené informace o platformě, je potřeba použít API User Agent Client Hints. Pro weby, kterým nové informace nestačí a které ještě nejsou připraveny přejít na User Agent Client Hints, byla do května 2023 poskytnuta možnost vrátit plný User-Agent.
- Chování funkce setTimeout bylo změněno při předávání nulového argumentu, který určuje zpoždění volání. Od verze Chrome 101, pokud je uvedeno „setTimeout(…, 0)“, se kód spustí okamžitě, bez zpoždění 1 ms, jak vyžaduje specifikace. Pro opakované vnořené volání setTimeout je aplikováno zpoždění 4 ms.
- V verzi pro platformu Android byla implementována podpora žádosti o práva na zobrazení oznámení (v Androidu 13 pro zobrazení oznámení musí mít aplikace právo „POST_NOTIFICATIONS“, jinak budou oznámení blokována). Při spuštění Chrome v prostředí Android 13 nyní prohlížeč zobrazí žádost o udělení práv na zobrazení oznámení.
- Možnost použití API WebSQL ve třetích skriptech byla odstraněna. Ve výchozím nastavení byla blokace WebSQL ve skriptech nahraných z jiných webů povolena v Chrome 97, ale byla zde možnost tuto funkci vypnout. V Chrome 101 byla tato možnost odstraněna. V budoucnu se plánuje postupné úplné ukončení podpory WebSQL, bez ohledu na kontext použití. Místo WebSQL se doporučuje používat API Web Storage a Indexed Database. Zpracovatel WebSQL je založen na kódu SQLite a mohl být zneužit útočníky k exploitaci zranitelností v SQLite.
- Byla odstraněna jména politik pro podniky (chrome://policy), která obsahují exkluzivní výrazy. Od verze Chrome 86 byla pro uvedené politiky navržena nahrazení, která používají inkluzivní terminologii. Provedla se úprava takových termínů, jako jsou „whitelist“, „blacklist“, „native“ a „master“. Například politika URLBlacklist byla přejmenována na URLBlocklist, AutoplayWhitelist na AutoplayAllowlist a NativePrinters na Printers.
- V režimu Origin Trials (experimentální funkce, které vyžadují samostatnou aktivaci) bylo zahájeno testování API Federated Credential Management (FedCM) zatím pouze ve verzích pro platformu Android. To umožňuje vytvářet sjednocené identifikační služby, které zajišťují ochranu soukromí a fungují bez mechanismů mezisíťového sledování, jako je zpracování třetích stran Cookie. Origin Trial umožňuje používat uvedené API z aplikací stažených z localhost nebo 127.0.0.1, nebo po registraci a získání speciálního tokenu, který platí omezenou dobu pro konkrétní web.
- Byl stabilizován a nabídnut všem zájemcům mechanismus Priority Hints, který umožňuje určit důležitost jednotlivě načítaných zdrojů prostřednictvím přidání dalšího atributu „importance“ v tagách, jako jsou iframe, img a link. Atribut může nabývat hodnot „auto“, „low“ a „high“, které ovlivňují pořadí načítání externích zdrojů prohlížečem.
- Byla přidána vlastnost AudioContext.outputLatency, díky které je možné zjistit informace o předpokládané latenci před vyvedením zvuku (latence mezi požadavkem na zvuk a začátkem zpracování přijatých dat zvukovým výstupním zařízením).
- Byla přidána CSS-vlastnost font-palette a pravidlo @font-palette-values, které umožňují vybrat paletu z barevného písma nebo definovat vlastní paletu. Například tyto možnosti mohou být využity k přizpůsobení barevných symbolů nebo emoji barevné schématu obsahu, nebo k zapnutí tmavého či světlého režimu pro písmo.
- Byla přidána CSS-funkce hwb(), která poskytuje alternativní způsob určování barev sRGB ve formátu HWB (Hue, Whiteness, Blackness), což je podobné formátu HSL (Hue, Saturation, Lightness), ale snadněji srozumitelné pro lidi.
- V metodě window.open() je nyní určení vlastnosti popup v řetězci windowFeatures, bez přiřazení hodnoty (tj. kdy je jednoduše uvedeno popup, a ne popup=true), zpracováno jako povolení otevření miniatury vyskakovacího okna (analogicky „popup=true“) namísto přiřazení výchozí hodnoty „false“, což bylo nelogické a mátlo vývojáře.
- V API MediaCapabilities, který poskytuje informace o možnostech zařízení a prohlížeče při dekódování multimediálního obsahu (podporované kodeky, profily, bitraty a rozlišení), byla přidána podpora pro WebRTC streamy.
- Byla navržena třetí verze API Secure Payment Confirmation, která poskytuje nástroje pro dodatečné potvrzení prováděné platební operace. Nová verze obsahuje podporu identifikátorů, které vyžadují zadání údajů, definici ikony pro označení selhání ověření a také volitelnou vlastnost payeeName.
- V API USBDevice byla přidána metoda forget() pro odvolání předtím udělených oprávnění uživatelem k přístupu k USB zařízení. Dále jsou instance USBConfiguration, USBInterface, USBAlternateInterface a USBEndpoint nyní při přísném porovnání ("===", ukazují na stejný objekt), pokud jsou vráceny pro stejné USBDevice.
- Byly provedeny vylepšení v nástrojích pro webové vývojáře. Byla poskytnuta možnost importu a exportu zaznamenaných uživatelských akcí ve formátu JSON (příklad). V webové konzoli a rozhraní pro prohlížení kódu bylo vylepšeno počítání a zobrazování soukromých vlastností. Byla přidána podpora pro práci s barevným modelem HWB. V panelu CSS byla přidána možnost prohlížení kaskádových vrstev definovaných pravidlem @layer.

Kromě novinek a oprav chyb v nové verzi bylo odstraněno 30 zranitelností. Mnoho zranitelností bylo zjištěno pomocí automatizovaného testování nástroji AddressSanitizer, MemorySanitizer, Control Flow Integrity, LibFuzzer a AFL. Nebyly nalezeny kritické problémy, které by umožnily obejít všechny úrovně ochrany prohlížeče a provést kód v systému mimo sandboxové prostředí. V rámci programu na odměňování za nalezení zranitelností společnost Google vyplatila v aktuálním vydání 25 odměn v celkové výši 81 tisíc dolarů (jedna odměna 10 000 dolarů, tři odměny 7 500 dolarů, tři odměny 7 000 dolarů, jedna odměna 6 000 dolarů, dvě odměny 5 000 dolarů, čtyři odměny 2 000 dolarů, tři odměny 1 000 dolarů a jedna odměna 500 dolarů). Výše 6 odměn zatím nebyla určena.
Zdroj: opennet.ru


