Společnost Google představila novou verzi webového prohlížeče Chrome 99. Současně je k dispozici stabilní verze svobodného projektu Chromium, na kterém Chrome běží. Prohlížeč Chrome se vyznačuje používáním loga Google, systémem pro zasílání oznámení v případě zhroucení, moduly pro přehrávání vide obsahujícího ochranu proti kopírování (DRM), systémem automatické instalace aktualizací a přenášením parametrů RLZ během vyhledávání. Další verze Chrome 100 je plánována na 29. března.
Hlavní změny v Chrome 99:
- V Chrome pro Android byla zahrnuta funkce Certificate Transparency, která zajišťuje vedení nezávislé veřejné evidence všech vydaných a odvolaných certifikátů. Veřejná evidence umožňuje provádět nezávislý audit všech změn a činů certifikačních autorit a umožní okamžité sledování jakýchkoli pokusů o skryté vytváření falešných záznamů. Certifikáty, které nejsou v Certificate Transparency uvedeny, budou automaticky zamítnuty prohlížečem s odpovídající chybovou hláškou. Dříve byla tato funkce aktivována pouze pro desktopovou verzi a pro malé procento uživatelů Android.
- Vzhledem k mnoha stížnostem byl pozastaven dříve testovaný mechanismus Private Network Access, zaměřený na zvýšení ochrany proti útokům souvisejícím s přístupem k prostředkům v lokální síti nebo na počítači uživatele (localhost) prostřednictvím skriptů načítaných při otevření webu. Pro ochranu před těmito útoky se navrhuje odesílat explicitní žádost o oprávnění pro načítání takovýchto subresursů. Google přehodnotí implementaci a v některé z budoucích verzí nabídne vylepšenou variantu.
- Byla vrácena možnost odstranění výchozích vyhledávacích systémů. Připomínáme, že od Chrome 97 byla v konfigurátoru v sekci „Správa vyhledávacích systémů“ (chrome://settings/searchEngines) zrušena možnost vymazání položek ze seznamu výchozích vyhledávacích systémů (Google, Bing, Yahoo) a úpravy parametrů vyhledávacího systému, což vyvolalo nespokojenost mnoha uživatelů.
- Na platformě Windows byla umožněna možnost odstranění samostatných webových aplikací (PWA, Progressive Web App) prostřednictvím systémových nastavení nebo ovládací panel podobně jako při odstraňování aplikací Windows.
- Probíhá finální testování možné narušení fungování webových stránek po dosažení verze prohlížeče, která se skládá ze tří číslic namísto dvou (v minulosti po vydání Chrome 10 se v knihovnách pro analýzu User-Agent objevilo mnoho problémů). Při aktivaci možnosti „chrome://flags#force-major-version-to-100“ začíná hlavička User-Agent vykazovat verzi 100.
- V CSS byla implementována podpora kaskádových vrstev, které se definují pomocí pravidla @layer a importují se prostřednictvím pravidla @import pomocí funkce layer(). CSS pravidla uvnitř jedné kaskádové vrstvy se kaskádově kombinují, což usnadňuje správu celého kaskádu, poskytuje flexibilní možnosti úpravy pořadí vrstev a umožňuje explicitní správu CSS souborů, čímž se zabraňuje vzniku konfliktů. Kaskádové vrstvy jsou pohodlné pro použití při tvorbě designů, definování stylů prvků podle výchozích hodnot a extrakci designu komponent do externích knihoven.
- Do třídy HTMLInputElement byla přidána metoda showPicker(), která umožňuje zobrazit předdefinované dialogy pro vyplnění standardních hodnot v polích s typy „date“, „month“, „week“, „time“, „datetime-local“, „color“ a „file“, stejně jako pro pole podporující automatické vyplnění (autofill) a výběr ze seznamu (datalist). Například je možné zobrazit rozhraní ve formě kalendáře pro výběr data nebo paletu pro zadání barvy.

- V režimu Origin Trials (experimentální funkce vyžadující samostatné aktivace) byla zavedena možnost aktivace tmavého režimu designu pro webové aplikace. Barvy a pozadí pro tmavou téma se vybírají pomocí nového pole color_scheme_dark v manifestu webové aplikace. Origin Trial předpokládá možnost práce s uvedeným API z aplikací nahraný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 stabilizováno a nabídnuto všem zájemcům API Handwriting Recognition, které umožňuje využívat služby rozpoznávání ručně psaného textu poskytované operačním systémem.
- Pro instalované samostatné webové aplikace (PWA, Progressive Web App) byl stabilizován komponent Window Controls Overlay, který rozšiřuje obrazovou plochu aplikace na celé okno, včetně oblasti záhlaví, na kterou se překrývají nativní ovládací prvky okna (uzavření, minimalizace, maximalizace). Webová aplikace může ovládat vykreslování a zpracování vstupu v celém okně, s výjimkou překryté oblasti s ovládacími prvky okna.
- V CSS funkci calc() je povoleno uvádět hodnoty „infinity“, „-infinity“ a „NaN“ nebo výrazy, které vedou k podobným hodnotám, například 'calc(1/0)'.
- Do vlastnosti CSS color-scheme, která umožňuje specifikovat, v jakých barevných schématech může být element správně zobrazen („light“, „dark“, „day mode“ a „night mode“), byl přidán parametr „only“, který umožňuje vyloučit nucenou změnu barevného schématu pro jednotlivé HTML elementy. Například, pokud uvedete „div { color-scheme: only light }“, pak pro element div bude používána pouze světlá téma, i když bude v prohlížeči nuceně zapnuta tmavá varianta.
- Pro změnu hodnot vlastnosti document.adoptedStyleSheets nyní mohou být používány operace push() a pop() místo úplného přepsání vlastnosti. Například, „document.adoptedStyleSheets.push(newSheet);“.
- Do implementace rozhraní CanvasRenderingContext2D byla přidána podpora událostí ContextLost a ContextRestored, metody reset(), možnosti „willReadFrequently“, CSS modifikátorů textu, primitivu pro vykreslení roundRect a kuželovitých gradientů. Zlepšena byla podpora SVG filtrů.
- Byl odstraněn prefix „-webkit-“ pro vlastnosti „text-emphasis“, „text-emphasis-color“, „text-emphasis-position“ a „text-emphasis-style“.
- Pro stránky otevřené bez HTTPS je zakázán přístup k API Battery Status, které umožňuje získat informace o stavu baterie.
- V metodě navigator.getGamepads() je zajištěn výstup pole objektů Gamepad místo GamepadList. GamepadList již není podporován v Chrome, což odpovídá požadavku standardu a chování enginů Gecko a Webkit.
- API WebCodecs bylo přivedeno do souladu se specifikací. Zejména byly změněny metoda EncodedVideoChunkOutputCallback() a konstruktor VideoFrame().
- V JavaScriptovém enginu V8 byly do API Intl.Locale přidány nové vlastnosti calendars, collations, hourCycles, numberingSystems, timeZones, textInfo a weekInfo, které poskytují informace o podporovaných kalendářích, časových zónách a parametrech času a textu. const arabicEgyptLocale = new Intl.Locale(‘ar-EG’) \/\/ ar-EG arabicEgyptLocale.calendars \/\/ [‘gregory’, ‘coptic’, ‘islamic’, ‘islamic-civil’, ‘islamic-tbla’] arabicEgyptLocale.collations \/\/ [‘compat’, ’emoji’, ‘eor’] arabicEgyptLocale.hourCycles \/\/ [‘h12’] arabicEgyptLocale.numberingSystems \/\/ [‘arab’] arabicEgyptLocale.timeZones \/\/ [‘Africa\/Cairo’] arabicEgyptLocale.textInfo \/\/ { direction: ‘rtl’ } japaneseLocale.textInfo \/\/ { direction: ‘ltr’ } chineseTaiwanLocale.textInfo \/\/ { direction: ‘ltr’ }
- Byla přidána funkce Intl.supportedValuesOf(code), která vrací pole podporovaných identifikátorů pro API Intl pro vlastnosti calendar, collation, currency, numberingSystem, timeZone a unit. Intl.supportedValuesOf(‘unit’) \/\/ [‘acre’, ‘bit’, ‘byte’, ‘celsius’, ‘centimeter’, …]
- Byla vylepšena nástroje pro webové vývojáře. V síťovém panelu byla přidána možnost zpomalení požadavků WebSocket pro usnadnění ladění v podmínkách pomalého připojení. Do záložky „Application“ byla přidána panel ke sledování zpráv generovaných přes API Reporting. V panelu Recorder byla před přehráváním nahrané příkazu implementována podpora čekání, dokud se prvek nestane viditelným nebo dostupným pro kliknutí. Zjednodušena emulace tmavého režimu. Vylepšeno ovládání panelů z dotykových obrazovek. V webové konzoli byla přidána podpora escape sekvencí pro zvýraznění textu barvou, přidána podpora zástupných znaků %s, %d, %i a %f, zlepšena funkčnost filtrů zpráv.

Kromě novinek a oprav chyb v nové verzi bylo odstraněno 28 zranitelností. Mnoho zranitelností bylo odhaleno v důsledku automatizovaného testování nástroji AddressSanitizer, MemorySanitizer, Control Flow Integrity, LibFuzzer a AFL. Nebyly zjištěny žá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 vyplácení finančních odměn za objevení zranitelností pro aktuální vydání společnost Google vyplatila 21 ocenění v celkové výši 96 tisíc dolarů (jedno ocenění $15000, dvě ocenění $10000, šest ocenění $7000, dvě ocenění $5000, dvě ocenění $3000 a po jednom ocenění v $2000 a $1000.
Zdroj: opennet.ru


