Компания Google релиз на уеб браузъра . Водночас стабилна версия на свободния проект , който е основата на Chrome. Уеб браузърът Chrome чрез използване на логотипите на Google, възможност за изтегляне на Flash модули по запитване, наличието на система за уведомления в случай на срив, модули за възпроизвеждане на защитено видео съдържание, система за автоматично инсталиране на актуализации и предаване при търсене . Следващото издание на Chrome 75 е насрочено за 4 юни.
:
- При настъпване на събитие onUnload, което се активира при затваряне на страницата, сега ще се блокират изскачащите прозорци (възможността за window.open() е блокирана), което ще предпази потребителите от принудително отваряне на реклами след затваряне на съмнителни сайтове;
- В JavaScript двигателят е добавен нов режим (флаг «—jitless»), който дава възможност за изпълнение на JavaScript без използване на JIT (използва се само интерпретатор) и без заделяне на изпълняема памет по време на изпълнение на кода. Деактивирането на JIT може да бъде полезно за повишаване на сигурността при работа с потенциално опасни уеб приложения, а също така за осигуряване на компилация на платформи, забраняващи използването на JIT (например в iOS, на някои Smart TV и игрови конзоли). При деактивиране на JIT производителността на JavaScript изпълнението намалява с 40% в теста Speedometer 2.0 и с 80% в теста Web Tooling Benchmark, но при симулация на работа с YouTube е отчетено намаление на производителността само с 6%. Потреблението на памет в този случай намалява незначително, с около 1.7%;
- В V8 също е предложена голяма порция нови оптимизации. Например, времето за изпълнение на функциите, при които числото на фактически предадените параметри не съответства на указаното при определяне на функцията, е ускорено с 60%. Достъпът до свойствата на DOM чрез функцията get е ускорен, което оказа положително влияние върху производителността на Angular фреймворка. Работата по парсинга на JavaScript е ускорена: оптимизацията на UTF-8 декодера подобри производителността на парсера в streaming режим (парсинг в процес на зареждане) с 8%, а изключването на излишни операции за дублиране доведе до допълнителен ръст от 10.5%;
- Проведена е работа по намаляване на потреблението на памет на JavaScript двигателя.
Добавен е код за почистване на кеша на байткода, който заема приблизително 15% от общия размер на купчината. В сборщика на боклук е добавена стъпка за извеждане от кеша рядко компилиран байткод за използвани функции или функции, които се извикват само при инициализация. Решението за почистване се взема на основание на нови броячи, отчитащи последното време на достъп до байткода. Указаната промяна даде възможност за намаляване на потреблението на памет с 5–15% без отрицателно влияние върху производителността. Освен това, в компилатора на байткода е изключена генерацията на очевидно неизползваем код, например, кодът след return или break (ако няма Jump-преход);
- За WebAssembly подкрепа за потоци и атомарни операции (API WebAssembly Threads и WebAssembly Atomics);
- За отделна доставка на скриптове е добавена подкрепа за заглавие „#!“, което определя интерпретатор за изпълнение. Например, по аналогия с другите скриптови езици, файлът JavaScript може да изглежда по следния начин:
#!/usr/bin/env node
console.log(42); - В CSS е добавен нов media-запрос „“, позволяващ на сайта да определи състоянието на настройките в операционната система, свързани с деактивирането на анимираните ефекти. Чрез предложения запрос собственикът на сайта може да разбере, че потребителят е деактивирал анимираните ефекти и също така да изключи различни анимационни възможности на сайта, например, да премахне ефекта на трептене на бутоните, използвани за привличане на внимание;
- В допълнение към появилата се в Chrome 72 възможност за определяне на публични полета обозначаване на полета като частни, след което достъпът до техните стойности ще бъде отключен само вътре в класа. За да се означи полето като частно, трябва да се постави знак „#“ пред името на полето. Както и в случая с публичните полета, частните свойства не изискват явно използване на конструктора.
- HTTP-заглавието Feature-Policy, позволяващо управление на поведението на API и включването на определени функции (например, може да се включи синхронен режим на работа на XMLHttpRequest или деактивиране на Geolocation API), е допълнено за контрол на активността на тези или онези функции. За разработчиците са предложени два нови метода document.featurePolicy и frame.featurePolicy, предлагащи три функции:
allowedFeatures() за получаване на списък с разрешените функции за текущия домейн, allowsFeature() за selectively проверка за включване на конкретни възможности и getAllowlistForFeature() за извеждане на списък на домейни, за които на текущата страница е разрешена посочената възможност; - Добавена е експериментална поддръжка на режима ("chrome://flags#enable-text-fragment-anchor") , позволяващ формироването на връзки към отделни думи или фрази, без явното указване в документа на маркери чрез таг «a name» или свойството «id». За предаването на връзката се предлага специалният параметър «#targetText=», в който може да се укаже текст за преминаване. Допуска се указването на маска, включваща фрази, посочващи началото и края на фрагмента, използвайки запетая като техен разделител (например, «example.com#targetText=startwords, endwords»);
- В конструктора AudioContext е добавена опция , позволяваща да се зададе честотата на дискретизация за операции със звук през Web Audio API;
- Добавена е поддръжка на клас , предоставящ методи за анализ и обработка на зададените от локализацията параметри за език, регион и стил, както и за четене и запис на разширени Unicode тагове, запазване на потребителските настройки на локализацията в сериализиран формат;
- Механизмът (SXG) е разширен с средства за разпространители на съдържание за грешки при зареждане на подписано съдържание, като проблеми с верификация на сертификати. Обработката на грешки се извършва чрез API Extensions . Напомняме, че SXG позволява на собственика на един сайт с цифров подпис да упълномощава разположението на определени страници на друг сайт, след което при достъп до тези страници на втория сайт браузърът ще показва на потребителя URL на оригиналния сайт, въпреки че страницата е заредена от друг хост;
- В клас TextEncoder е добавен метод , позволяващ записването на закодирания низ директно в предварително отделен буфер. Методът encodeInto() е високопроизводителна алтернатива на метода encode(), който изисква извършването на операция по отделяне на буфер при всяко повикване.
- В Service worker буферизиране на извикването на client.postMessage() до момента на готовност на документа. Съобщенията, изпратени чрез client.postMessage(), ще бъдат задържани до етапа на генериране на събитие DOMContentLoaded, настройка на onmessage или извикване на startMessages();
- В съответствие с изискванията на спецификацията CSS Transitions събитията transitionrun, transitioncancel, transitionstart и transitionend, генерирани когато CSS-преходът е поставен в опашка, отменен, започва или завършва.
- При указания чрез overrideMimeType() или неправилен MIME тип за кодирането на символи за XMLHttpRequest, сега се извършва обратен скок на UTF-8 вместо Latin-1;
- Обявено за остаряло и ще бъде премахнато в следващите версии свойството 'allow-downloads-without-user-activation', което позволява автоматично изтегляне на файлове при обработка на iframe. В бъдеще иницирането на изтегляне на файлове без явно действие на потребителя ще бъде забранено, тъй като се използва активно за злоупотреби, налагане на изтегляния и внедряване на части от зловреден софтуер на компютъра на потребителя. За да започне изтеглянето, ще е необходим потребителски клик на същата страница. Първоначално свойството беше планирано да бъде премахнато в Chrome 74, но премахването беше отложено до Chrome 76.
- За платформата Windows е предложена опционална тъмна тема на интерфейса (в предишното издание тъмната тема беше подготвена за macOS). Тъй като тъмната тема почти е идентична на оформлението в режим инкогнито, за да се подчертае режимът на работа без записи, е добавен специален индикатор вместо иконата на потребителския профил;
- За корпоративни потребители е добавена възможността за управление на настройките на браузърите на потребителите чрез конзолата на Google Admin;
Освен нововъведенията и корекциите на грешки, в новата версия са отстранени . Много от уязвимостите са открити в резултат на автоматизирано тестване с инструменти. , , , и . Критични проблеми, които позволяват заобикаляне на всички нива на защита на браузъра и изпълнение на код в системата извън средата на пясъчника, не са установени. В рамките на програмата за награди за откритие на уязвимости за текущото издание компанията Google е изплатила 19 награди на стойност 26837 долара САЩ (четири награди по $3000, четири награди по $2000, една награда по $1337, четири награди по $1000, три награди по $500). Размерът на 4 награди все още не е определен.
Източник: opennet.ru

