Společnost Google vydání webového prohlížeče . Současně stabilní vydání otevřeného projektu , který tvoří základ Chrome. Prohlížeč Chrome využívá loga Google, umožňuje stahování modulu Flash na vyžádání, přináší systém oznámení při selhání, moduly pro přehrávání chráněného video obsahu, systém automatického instalování aktualizací a přenos při vyhledávání . Další vydání Chrome 75 je naplánováno na 4. června.
:
- Při události onUnload, která je vyvolána při zavření stránky, nyní otvírat vyskakovací okna (blokuje se volání window.open()), což chrání uživatele před nuceným otevíráním reklamních stránek po zavření pochybného webu;
- V JavaScriptovém enginu se objevil nový režim (přepínač «—jitless»), který umožňuje vykonávat JavaScript bez použití JIT (pouze se používá interpret) a bez alokace spustitelné paměti během vykonávání kódu. Deaktivace JIT může být užitečná pro zvýšení bezpečnosti při práci s potenciálně nebezpečnými webovými aplikacemi, stejně jako pro zajištění provozu na platformách, které zakazují použití JIT (například na iOS, některých chytrých televizích a herních konzolích). Při vypnutí JIT klesá výkon JavaScriptu o 40 % v testu Speedometer 2.0 a o 80 % v testu Web Tooling Benchmark, ale při simulaci práce s YouTube bylo zaznamenáno snížení výkonu pouze o 6 %. Spotřeba paměti se přitom snížila nepatrně, celkově o 1,7%;
- V enginu V8 byla také navržena řada nových optimalizací. Například vykonávání funkcí, v nichž počet skutečně předaných parametrů neodpovídá počtu argumentů uvedenému při definici funkce, bylo zrychleno o 60 %. Přístup k vlastnostem DOM pomocí funkce get byl optimalizován, což mělo pozitivní vliv na výkon frameworku Angular. Práce s analýzou JavaScriptu byla zrychlena: optimalizace dekodéru UTF-8 zvýšila výkon parseru v režimu streaming (rozbor během načítání) o 8 %, a vyloučení zbytečných deduplikačních operací přineslo další nárůst o 10,5%;
- Byla provedena práce na snížení spotřeby paměti JavaScriptového enginu.
Byl přidán kód pro čištění mezipaměti bytecode, který zabírá přibližně 15 % z celkové velikosti hromady. Do sběrače odpadu byla přidána fáze pro odstranění z mezipaměti zřídka kompilovaného bytecode pro používané funkce nebo funkce vyvolávané pouze při inicializaci. Rozhodnutí o čištění se přijímá na základě nových čítačů, které zohledňují poslední čas přístupu k bytecode. Uvedená změna umožnila snížit spotřebu paměti o 5–15 % bez negativního vlivu na výkon. Navíc byla v kompilátoru bytecode vyloučena generace zjevně nepoužívaného kódu, například kódu, který následuje po return nebo break (pokud na něj není Jump-přechod);
- Pro WebAssembly podpora vláken a atomových operací (API WebAssembly Threads a WebAssembly Atomics);
- Pro oddělenou dodávku skriptů byla přidána podpora hlavičky "#!" určující interpretera pro spuštění. Například obdobně jako u jiných skriptovacích jazyků může vypadat soubor JavaScript takto:
#!/usr/bin/env node
console.log(42); - Do CSS byl přidán nový media dotaz "", který umožňuje webu zjistit stav nastavení operačního systému související s vypnutím animovaných efektů. Pomocí navrženého dotazu může majitel webu zjistit, že uživatel si vypnul animované efekty a také vypnout různé animační možnosti na webu, například odstranit efekt chvění tlačítek, která se používají k přitahování pozornosti;
- Kromě možnosti určení veřejných polí, která se objevila v Chrome 72, byla implementována podpora HTTP hlavička Feature-Policy, která umožňuje řídit chování API a zahrnutí určitých funkcí (například lze zahrnout synchronní režim pro XMLHttpRequest nebo zakázat Geolocation API), byla doplněna
- JavaScript API k řízení aktivity určitých funkcí. Pro vývojáře byly navrženy dvě nové metody document.featurePolicy a frame.featurePolicy, které nabízejí tři funkce:
allowedFeatures() pro získání seznamu funkcí povolených pro aktuální doménu, allowsFeature() pro selektivní kontrolu zapnutí konkrétních funkcí a getAllowlistForFeature() pro vypsání seznamu domén, pro které je na aktuální stránce povolena uvedená funkce; - Byla přidána experimentální podpora režimu ("chrome://flags#enable-text-fragment-anchor") , позволяющего формировать ссылки на отдельные слова или фразы, без явного указания в документе меток при помощи тега «a name» или свойства «id». Для передачи ссылки предлагается специальный параметр «#targetText=», в котором можно указать текст для перехода. Допускается указание маски, включающей фразы, указывающие на начало и конец фрагмента с использованием запятой в качестве их разделителя (например, «example.com#targetText=start%20words, end%20words»);
- Do konstruktoru AudioContext byla přidána možnost , která umožňuje nastavit vzorkovací frekvenci pro operace se zvukem přes Web Audio API;
- Byla přidána podpora třídy , která poskytuje metody pro analýzu a zpracování parametrů jazyka, regionu a písma stanovených locale, jakož i pro čtení a zápis tagů rozšíření Unicode a uchování uživatelských nastavení locale v serializovaném formátu;
- Mechanismus (SXG) byl rozšířen prostředky pro distributory obsahu o chybách při načítání podepsaného obsahu, jako jsou problémy s ověřováním certifikátů. Zpracování chyb se provádí prostřednictvím rozšíření API . Připomínáme, že SXG umožňuje vlastníkovi jednoho webu autorizovat umístění určitých stránek na jiném webu pomocí digitálního podpisu, po čemž při návštěvě těchto stránek na druhém webu prohlížeč uživateli zobrazí adresu původního webu, přestože stránka byla načtena z jiného hostitele;
- Do třídy TextEncoder byla přidána metoda , která umožňuje zapsat zakódovaný řetězec přímo do předem vyhrazeného bufferu. Metoda encodeInto() je vysoce výkonnou alternativou k metodě encode(), která vyžaduje provedení operace vyhrazení bufferu při každém přístupu.
- Ve Service worker Zpoždění volání client.postMessage() do okamžiku, kdy je dokument připraven. Zprávy odeslané prostřednictvím client.postMessage() budou zadrženy až do fáze generování události DOMContentLoaded, nastavení onmessage nebo zavolání startMessages();
- V souladu s požadavkem specifikace CSS Transitions události transitionrun, transitioncancel, transitionstart a transitionend, které se generují, když je CSS přechod umístěn do fronty, zrušen, zahájen nebo dokončen.
- Při určení neplatného MIME typu nebo kódování znaků pro žádost XMLHttpRequest pomocí overrideMimeType() nyní probíhá návrat k UTF-8 místo Latin-1;
- Bylo vyhlášeno jako zastaralé a bude odstraněno v jednom z následujících vydání vlastnost „allow-downloads-without-user-activation“, pomocí které bylo možné organizovat automatické stahování souborů při zpracování iframe. V budoucnu bude zahájení stahování souborů bez výslovné akce uživatele zakázáno, neboť bylo často zneužíváno pro nucené stahování a nahrazování částí škodlivého softwaru v počítači uživatele. K zahájení stahování bude vyžadováno kliknutí uživatele na téže stránce. Původně bylo plánováno odstranění této vlastnosti v Chrome 74, ale odstranění bylo do Chrome 76.
- Pro platformu Windows byla navržena volitelná tmavá motivace rozhraní (v minulém vydání byla tmavá motivace připravena pro macOS). Vzhledem k tomu, že tmavá motivace je téměř identická s motivem v režimu inkognito, byl pro zvýraznění soukromého režimu užívání přidán speciální indikátor namísto ikony profilu uživatele;
- Pro firemní uživatele byla přidána možnost pro správu nastavení prohlížečů uživatelů prostřednictvím konzole Google Admin;
Kromě novinek a oprav chyb v nové verzi bylo odstraněno . Mnoho zranitelností bylo odhaleno v důsledku automatizovaného testování nástroji , , , a Nebyla zjištěna žádná kritická problém, která by umožnila obcházení všech úrovní ochrany prohlížeče a spuštění kódu v systému mimo sandboxové prostředí. V rámci programu pro odměny za zjištění zranitelností pro aktuální verzi společnost Google vyplatila 19 odměn v celkové výši 26 837 USD (čtyři odměny po 3000 USD, čtyři odměny po 2000 USD, jedna odměna 1337 USD, čtyři odměny po 1000 USD, tři odměny po 500 USD). Výše 4 odměn zatím nebyla určena.
Zdroj: opennet.ru

