Релиз на Chrome 74

Компания Google представи релиз на уеб браузъра Chrome 74. Водночас е наличен стабилна версия на свободния проект Chromium, който е основата на Chrome. Уеб браузърът Chrome се отличава чрез използване на логотипите на Google, възможност за изтегляне на Flash модули по запитване, наличието на система за уведомления в случай на срив, модули за възпроизвеждане на защитено видео съдържание, система за автоматично инсталиране на актуализации и предаване при търсене параметри RLZ. Следващото издание на Chrome 75 е насрочено за 4 юни.

Основни промени в Chrome 74:

  • При настъпване на събитие onUnload, което се активира при затваряне на страницата, сега забранена ще се блокират изскачащите прозорци (възможността за window.open() е блокирана), което ще предпази потребителите от принудително отваряне на реклами след затваряне на съмнителни сайтове;
  • В JavaScript двигателят реализирана е добавен нов режим JIT-less (флаг «—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-преход);

    Релиз на Chrome 74
  • За WebAssembly реализирана подкрепа за потоци и атомарни операции (API WebAssembly Threads и WebAssembly Atomics);
  • За отделна доставка на скриптове е добавена подкрепа за заглавие „#!“, което определя интерпретатор за изпълнение. Например, по аналогия с другите скриптови езици, файлът JavaScript може да изглежда по следния начин:

    #!/usr/bin/env node
    console.log(42);

  • В CSS е добавен нов media-запрос „prefers-reduced-motion“, позволяващ на сайта да определи състоянието на настройките в операционната система, свързани с деактивирането на анимираните ефекти. Чрез предложения запрос собственикът на сайта може може да разбере, че потребителят е деактивирал анимираните ефекти и също така да изключи различни анимационни възможности на сайта, например, да премахне ефекта на трептене на бутоните, използвани за привличане на внимание;
  • В допълнение към появилата се в Chrome 72 възможност за определяне на публични полета е реализирана подкрепа за обозначаване на полета като частни, след което достъпът до техните стойности ще бъде отключен само вътре в класа. За да се означи полето като частно, трябва да се постави знак „#“ пред името на полето. Както и в случая с публичните полета, частните свойства не изискват явно използване на конструктора.
  • HTTP-заглавието Feature-Policy, позволяващо управление на поведението на API и включването на определени функции (например, може да се включи синхронен режим на работа на XMLHttpRequest или деактивиране на Geolocation API), е допълнено с JavaScript API за контрол на активността на тези или онези функции. За разработчиците са предложени два нови метода document.featurePolicy и frame.featurePolicy, предлагащи три функции:
    allowedFeatures() за получаване на списък с разрешените функции за текущия домейн, allowsFeature() за selectively проверка за включване на конкретни възможности и getAllowlistForFeature() за извеждане на списък на домейни, за които на текущата страница е разрешена посочената възможност;
  • Добавена е експериментална поддръжка на режима ("chrome://flags#enable-text-fragment-anchor") Scroll-To-Text, позволяващ формироването на връзки към отделни думи или фрази, без явното указване в документа на маркери чрез таг «a name» или свойството «id». За предаването на връзката се предлага специалният параметър «#targetText=», в който може да се укаже текст за преминаване. Допуска се указването на маска, включваща фрази, посочващи началото и края на фрагмента, използвайки запетая като техен разделител (например, «example.com#targetText=startwords, endwords»);
  • В конструктора AudioContext е добавена опция sampleRate, позволяваща да се зададе честотата на дискретизация за операции със звук през Web Audio API;
  • Добавена е поддръжка на клас Intl.Locale, предоставящ методи за анализ и обработка на зададените от локализацията параметри за език, регион и стил, както и за четене и запис на разширени Unicode тагове, запазване на потребителските настройки на локализацията в сериализиран формат;
  • Механизмът (SXG), предназначен за организиране на хостване на верифицирани копия на уеб страници на други сайтове. (SXG) е разширен с средства за информиране разпространители на съдържание за грешки при зареждане на подписано съдържание, като проблеми с верификация на сертификати. Обработката на грешки се извършва чрез API Extensions Network Error Logging. Напомняме, че SXG позволява позволява на собственика на един сайт с цифров подпис да упълномощава разположението на определени страници на друг сайт, след което при достъп до тези страници на втория сайт браузърът ще показва на потребителя URL на оригиналния сайт, въпреки че страницата е заредена от друг хост;
  • В клас TextEncoder е добавен метод encodeInto(), позволяващ записването на закодирания низ директно в предварително отделен буфер. Методът 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). Тъй като тъмната тема почти е идентична на оформлението в режим инкогнито, за да се подчертае режимът на работа без записи, е добавен специален индикатор вместо иконата на потребителския профил;
  • За корпоративни потребители е добавена възможността Chrome Browser Cloud Management за управление на настройките на браузърите на потребителите чрез конзолата на Google Admin;

    Релиз на Chrome 74

Освен нововъведенията и корекциите на грешки, в новата версия са отстранени 39 уязвимости. Много от уязвимостите са открити в резултат на автоматизирано тестване с инструменти. AddressSanitizer, MemorySanitizer, Integrity на Контролния Поток, LibFuzzer и AFL. Критични проблеми, които позволяват заобикаляне на всички нива на защита на браузъра и изпълнение на код в системата извън средата на пясъчника, не са установени. В рамките на програмата за награди за откритие на уязвимости за текущото издание компанията Google е изплатила 19 награди на стойност 26837 долара САЩ (четири награди по $3000, четири награди по $2000, една награда по $1337, четири награди по $1000, три награди по $500). Размерът на 4 награди все още не е определен.

Източник: opennet.ru

Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри 🔥 Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри | ProHoster