Společnost Google představila vydání webového prohlížeče Chrome 95. Současně je k dispozici stabilní verze svobodného projektu Chromium, který tvoří základ Chrome. Prohlížeč Chrome se vyznačuje používáním logotypů Google, přítomností systému pro zasílání oznámení v případě pádu, moduly pro přehrávání chráněného videoobsahu (DRM), systémem automatické instalace aktualizací a přenosem RLZ parametrů při vyhledávání. V souladu s novým čtyřtýdenním cyklem vývoje je další vydání Chrome 96 naplánováno na 16. listopadu. Pro ty, kteří potřebují více času na aktualizaci, je podporována samostatná větev Extended Stable, trvající 8 týdnů, v níž byla vytvořena aktualizace pro předchozí verzi Chrome 94.
Hlavní změny v Chrome 95:
- Pro uživatele Linuxu, Windows, macOS a ChromeOS byla navržena nová postranní lišta, zobrazující se vpravo od obsahu a aktivovaná kliknutím na speciickou ikonu na panelu s adresním řádkem. V liště se zobrazuje shrnutí záložek a seznam pro čtení. Tato změna není aktivována pro všechny uživatele, pro aktivaci lze použít nastavení „chrome://flags/#side-panel“.

- Byla implementována explicitní žádost o oprávnění k uložení adres zadaných ve webových formulářích pro následné použití v systému automatického vyplňování. Při zjištění přítomnosti adres ve formulářích se nyní uživateli zobrazuje dialog, který umožňuje adresu uložit, upravit, aktualizovat dříve uloženou adresu nebo se vzdát ukládání.
- Byl odstraněn kód pro podporu protokolu FTP. V Chrome 88 byla podpora FTP ve výchozím nastavení deaktivována, ale byla ponechána možnost jejího obnovení.
- Byla ukončena podpora URL s názvy hostitelů končícími číslicí, které však neodpovídají adresám IPv4. Například URL „http://127.1/“, „http://foo.127.1/“ a „http://127.0.0.0.1“ jsou nyní považovány za neplatné.
- Pro WebAssembly byla zavedena možnost vytváření obslužných rutin výjimek, které mohou zachytit provádění v případě vzniku výjimky při provádění určitého kódu. Podporováno je jak zachycení známých výjimek modulu WebAssembly, tak výjimek vzniklých při volání importovaných funkcí. Pro zachycení výjimek musí být modul WebAssembly zkompilován s kompilátorem podporujícím výjimky, jako je Emscripten.
Zaznamenává se, že zpracování výjimek na úrovni WebAssembly umožňuje výrazně zmenšit velikost generovaného kódu ve srovnání se zpracováním výjimek pomocí JavaScriptu. Například kompilace optimalizátoru Binaryen s použitím zpracování výjimek pomocí JavaScriptu vede ke zvýšení kódu o 43 %, zatímco s WebAssembly o 9 %. Dále, při použití optimalizačního režimu „-O3“ se kód se zpracováním výjimek pomocí WebAssembly prakticky neliší výkonem od kódu bez zpracovatelů výjimek, naopak zpracování výjimek pomocí JavaScriptu vede ke zpomalení výkonu o 30 %.
- Je zakázáno sdílení modulů WebAssembly mezi různými doménami (cross-origin) při zpracování jedné stránky.
- V režimu Origin Trials (experimentální funkce vyžadující samostatnou aktivaci) bylo přidáno několik nových API. Origin Trial zahrnuje možnost práce se specifikovaný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ý platí omezenou dobu pro konkrétní web.
- Bylo zahrnuto zkrácení informací v HTTP hlavičce User-Agent a JavaScript parametrech navigator.userAgent, navigator.appVersion a navigator.platform. V hlavičce jsou ponechány pouze informace o názvu prohlížeče, významné verzi prohlížeče, platformě a typu zařízení (mobilní telefon, PC, tablet). Pro získání dalších dat, jako je přesná verze a rozšířené údaje o platformě, je nutné použít API User Agent Client Hints. Zahájení zkracování User-Agent na systémech běžných uživatelů je naplánováno na vydání Chrome 102, které bude publikováno za půl roku.
- Byla navržena možnost vytváření přístupových deskriptorů (Access Handles) pro API File System Access, což umožňuje webovým aplikacím číst a zapisovat data přímo do souborů a složek na zařízení uživatele. Aby se omezily způsoby, jak mohou webové aplikace přistupovat k souborovému systému, plánuje společnost Google spojit API File System Access a Storage Foundation. Jako příprava na toto spojení byla navržena podpora přístupových deskriptorů, doplňující metody práce na základě souborových deskriptorů o rozšířené funkce, jako je zamezení zápisu jinými procesy a vytváření oddělených toků pro zápis a čtení, včetně podpory čtení a zápisu z workerů v synchronním režimu.
- Byl stabilizován a nastaven jako výchozí API Secure Payment Confirmation s implementací nového rozšíření 'payment', které zajišťuje dodatečné potvrzení prováděné platební operace. Kontrolující strana, například banka, má možnost vygenerovat veřejný klíč PublicKeyCredential, který může být požadován prodávajícím pro dodatečné bezpečné potvrzení platby prostřednictvím API Payment Request, použitím metody platby 'secure-payment-confirmation'.
- V callbackových voláních, nastavených prostřednictvím konstruktoru PerformanceObserver, byla implementována přenos vlastnosti droppedEntriesCount, která umožňuje zjistit, kolik metrik výkonnosti webu bylo zamítnuto, protože se nevešly do poskytnutého bufferu.
- Bylo přidáno API EyeDropper, které umožňuje vyvolat rozhraní poskytované prohlížečem pro určení barvy libovolných pixelů na obrazovce, což může být použito například v grafických editorech realizovaných jako webové aplikace. const eyeDropper = new EyeDropper(); const result = await eyeDropper.open(); // result = {sRGBHex: '#160731'}
- Byla přidána funkce self.reportError(), která umožňuje skriptům vypisovat chyby na konzoli a emulovat vznik neodchycené výjimky.
- Bylo přidáno API URLPattern pro kontrolu shody URL s určitým vzorem, což například může být použito pro analýzu odkazů a pro přesměrování požadavků na zpracovatele v service worker. const p = new URLPattern({ protocol: 'https', hostname: 'example.com', pathname: '/:folder/*/:fileName.jpg' });
- Byl rozšířen API Intl.DisplayNames, prostřednictvím kterého lze získat lokalizované názvy jazyků, zemí, měn, prvků dat atd. V nové verzi byly přidány nové typy jmen 'calendar' a 'dateTimeField', kterými lze zjistit lokalizované názvy kalendáře a polí data a času (například názvy měsíců). Pro typ 'language' byla přidána podpora pro použití dialektů jazyků.
- V API Intl.DateTimeFormat byla přidána podpora nových hodnot parametru timeZoneName: 'shortGeneric' pro výstup krátkého identifikátoru časového pásma (například 'PT', 'ET'), 'longGeneric' — dlouhého ('Pacific Time', 'Mountain Time'), 'shortOffset' — s krátkým posunem vůči GMT ('GMT+5') a 'longOffset' s dlouhým posunem vůči GMT ('GMT+0500').
- API U2F (Cryptotoken) byl označen jako zastaralý, místo něj by se mělo používat API Web Authentication. API U2F bude ve výchozím nastavení vypnuto ve verzi Chrome 98 a zcela odstraněno v Chrome 104.
- Byla vylepšena zařízení pro webové vývojáře. V panelu Stylů byla zjednodušena úprava vlastností CSS souvisejících s velikostí (výška, okraje atd.). V záložce Problémy byla přidána možnost skrýt jednotlivé problémy. V konzoli pro vývojáře a na panelech Zdroje a Vlastnosti bylo vylepšeno zobrazení vlastností (vlastní vlastnosti jsou nyní zvýrazněny tučně a zobrazují se na vrcholu seznamu).

Kromě novinek a oprav chyb v nové verzi bylo odstraněno 19 zranitelností. Mnohé z nich byly odhaleny díky automatizovanému testování pomocí nástrojů AddressSanitizer, MemorySanitizer, Control Flow Integrity, LibFuzzer a AFL. Nebyly nalezeny kritické problémy, které by umožnily obejít všechny úrovně zabezpečení prohlížeče a provést kód v systému mimo sandboxové prostředí. V rámci programu výplaty odměn za odhalení zranitelností byla společnost Google vyplacena 16 odměn v celkové výši 74 tisíc dolarů (jedna odměna $20000, dvě odměny $10000, jedna odměna $7500, jedna odměna $6000, tři odměny $5000 a po jedné odměně $3000, $2000 a $1000). Výše 5 odměn zatím nebyla určena.
Zdroj: opennet.ru


