Издание Chrome 90

Google представи версия 90 на уеб браузъра Chrome. Стабилна версия на свободния проект Chromium, който служи за основа на Chrome, също е налична. Браузърът Chrome се отличава с използването на логотипи на Google, наличието на система за изпращане на известия при срив, модули за възпроизвеждане на защитено видеосъдържание (DRM), автоматична система за инсталиране на актуализации и предаване на RLZ параметри при търсене. Следващата версия Chrome 91 е планирана за 25 май.

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

  • На всички потребители е включено отварянето на сайтове по подразбиране чрез HTTPS при въвеждане на имена на хостове в адресната лента. Например, при въвеждане на хост example.com, по подразбиране ще бъде отворен сайтът https://example.com, а ако при отварянето възникнат проблеми, ще се направи възможност за откат до http://example.com. За управление на използването по подразбиране на "https://" е предложена настройка "chrome://flags#omnibox-default-typed-navigations-to-https".
  • Реализирана е възможността за задаване на различни етикети на прозорците за по-ясно разделяне в панела на работния плот. Подкрепата за смяна на името на прозореца ще улесни организацията на работата при използването на отделни прозорци на браузъра за различни задачи, например, при отваряне на различни прозорци за работни задачи, лични интереси, развлечения, отложени материали и т.н. Името се променя чрез опцията "Добавяне на име на прозорец" в контекстното меню, което се появява при щракване с десния бутон на мишката върху празна зона в лентата с табове. След смяната на името, в панела с приложения вместо името на сайта от активната вкладка се извежда избраното име, което може да бъде полезно при отваряне на същите сайтове в различни прозорци, свързани с отделни акаунти. Свързването се запазва между сесиите и след повторно стартиране на прозорците те ще бъдат възстановени с избраните имена.
    Издание Chrome 90
  • Добавена е възможността за скриване на «Списък за четене» (Reading List) без необходимост от промяна на настройките в «chrome://flags» («chrome://flags#read-later»). За скриване сега може да се използва опцията «Show Reading List» в долната част на контекстното меню, което се показва при кликване с десния бутон на панела с отметки. Напомняме, че в предишната версия при натискане на звездичката в адресната лента, освен бутона «Добави отметка», се появява и втори бутон «Добави в списъка за четене», а в десния ъгъл на панела с отметки се появява меню «Списък за четене», в което са изброени всички преди това добавени страници. При отваряне на страница от списъка, тя се отбелязва като прочетена. Страниците в списъка също могат да бъдат маркирани ръчно като прочетени или непрочетени или да бъдат изтрити от списъка.
  • Добавена е поддръжка на сегментиране на мрежата за защита от методи за проследяване на движението на потребителя между сайтовете, основани на съхраняване на идентификатори в области, които не са предназначени за постоянно съхранение на информация («Supercookies»). Тъй като ресурсите в кеша се съхраняват в общо пространство от имена, независимо от изходния домейн, един сайт може да определи зареждането на ресурси от друг сайт чрез проверка наличието на този ресурс в кеша. Защитата се основава на прилагането на сегментиране на мрежата (Network Partitioning), чието значение е да се добави допълнителна връзка на записите в общите кешове към домейн, от който е отворена основната страница, което ограничава обхвата на кеша за скриптовете за проследяване на движението единствено до текущия сайт (скрипт от iframe не може да провери дали ресурсът е бил зареден от друг сайт). Цената на сегментиране е намаляване на ефективността на кеширането, което води до незначително увеличаване на времето за зареждане на страницата (максимум с 1.32%, но за 80% от сайтовете с 0.09-0.75%).
  • Разширен е черният списък на мрежовите портове, за които се блокира изпращането на HTTP, HTTPS и FTP заявки с цел защита от атака NAT slipstreaming, позволяваща, при отваряне на специално подготвена от атакуващия уеб-страница в браузъра, да се установи мрежова връзка с сървър атакуващ към всяко UDP или TCP порт на системата на потребителя, независимо от използването на вътрешен диапазон адреси (192.168.x.x, 10.x.x.x). Числото на забранените портове включва 554 (протокол RTSP) и 10080 (използва се в Amanda backup и VMWare vCenter). Преди това вече бяха блокирани портовете 69, 137, 161, 554, 1719, 1720, 1723, 5060, 5061 и 6566.
  • Добавена е начална поддръжка за отваряне на PDF документи с XFA формуляри в браузъра.
  • За част от потребителите е активирана нова секция с настройки „Chrome Settings > Privacy and security > Privacy sandbox“, позволяваща управление на параметрите на API FLoC, с цел определяне на категорията интереси на потребителя без индивидуална идентификация и без връзка с историята на посещенията на конкретни сайтове.
  • Осигурено е по-понятно уведомление с изброяване на разрешените действия, показвано при свързване на потребителя с профил, за който е включено централизираното управление.
  • Интерфейсът за искане на права е направен по-малко натрапчив. Искания, които потребителят вероятно няма да одобри, сега се блокират автоматично с показване на съответния индикатор в адресната лента, чрез който потребителят може да премине към интерфейса за управление на правата, свързани с всеки сайт.
    Издание Chrome 90
  • Включена е поддръжка за разширения Intel CET (Intel Control-flow Enforcement Technology) за хардуерна защита от изпълнение на експлойти, изградени с използване на техники на връщащото програмиране (ROP, Return-Oriented Programming).
  • Продължава работата по преминаването на браузера към инклузивна терминология. Файлът „master_preferences“ е преименуван на „initial_preferences“, за да не наранява чувствата на потребителите, които възприемат думата master като намек за бившото робство на техните предци. За запазване на съвместимостта поддръжката на „master_preferences“ все още ще се запази в браузера за известно време. По-рано браузерът вече е отстранил употребата на термини като „whitelist“, „blacklist“ и „native“.
  • В Android версия при активиране на режима за икономия на трафика „Lite“ е реализирано намаление на битрейта при зареждане на видеа, когато се свързвате през мобилни оператори, което ще намали разходите на потребителите с тарифни планове, включващи таксуване на трафик. В режима „Lite“ също е осигурено компресиране на изображения, запитвани от публично достъпни ресурси (не изискващи удостоверяване) по HTTPS.
  • Добавен е кодек за видео формат AV1, специално оптимизиран за използване в видеоконференции, базирани на протокола WebRTC. Използването на AV1 в видеоконференции позволява да се увеличи ефективността на компресията и осигурява възможност за предаване на канали с капацитет на ниво 30 кбит/сек.
  • В JavaScript в обектите Array, String и TypedArrays е реализиран метод at(), който позволява използване на относителна индексация (относителна позиция се указва като индекс на масива), включително задаване на отрицателни стойности спрямо края (например, „arr.at(-1)“ ще върне последния елемент на масива).
  • В JavaScript за регулярни изрази е добавено свойство „.indices“, което съдържа масив с начални и крайни позиции на групите съвпадения. Свойството се попълва само при изпълнение на регулярния израз с флага „/d“. const re = /(a)(b)/d; const m = re.exec(‘ab’); console.log(m.indices[0]); // 0 — всички групи съвпадение // → [0, 2] console.log(m.indices[1]); // 1 — първата група съвпадение // → [0, 1] console.log(m.indices[2]); // 2 — втората група съвпадение // → [1, 2]
  • Оптимизирана е производителността на свойствата „super“ (например, super.x), за които е реализиран inline- кеш. Производителността при използване на „super“ сега е близка до производителността на достъп до обикновени свойства.
  • Виклиците на функции WebAssembly от JavaScript са значително ускорени благодарение на приложението на inline разгръщане. Посочената оптимизация все още остава експериментална и изисква стартиране с флага „—turbo-inline-js-wasm-calls“.
  • Добавен API WebXR Depth Sensing, който позволява да се установи разстоянието между обектите в средата на потребителя и неговото устройство, например, за създаване на по-реалистични приложения за разширена реалност. Напомняме, че API WebXR позволява унифициране на работата с различни класове устройства за виртуална реалност, от стационарни 3D шлемове до решения на базата на мобилни устройства.
  • Стабилизирана е възможността WebXR AR Lighting Estimation, която позволява в сесиите на WebXR за разширена реалност да се определят параметрите на околното осветление, за да придаде на моделите по-естествен вид и по-гармонична интеграция с околната среда на потребителя.
  • В режим Origin Trials (експериментални функции, изискващи отделна активизация) са добавени няколко нови API, които за момента са ограничени до платформата Android. Origin Trial предполага възможността за работа с указаното API от приложения, заредени от localhost или 127.0.0.1, или след преминаване на регистрация и получаване на специален токен, който важи ограничено време за конкретен сайт.
    • Методът getCurrentBrowsingContextMedia(), който предоставя възможност за организиране на захващане на видео потока MediaStream, отразяващ съдържанието на текущата таб. В отличие от подобен метод getDisplayMedia(), при извикване на getCurrentBrowsingContextMedia() на потребителя се показва прост диалог за потвърждение или блокиране на операцията за предаване на видео със съдържанието на таба.
    • API Insertable Streams, предоставящ възможност за манипулиране на необработени (raw) мултимедийни потоци, предавани през API MediaStreamTrack, като данни от камерата и микрофона, резултат от захващането на екрана или междинни данни от декодиране от кодек. За представяне на необработените кадри се използват интерфейсите WebCodec, след което се формира поток, аналогичен на този, който API WebRTC Insertable Streams генерира на базата на RTCPeerConnections. От практическа страна новият API позволява реализиране на функционалности, като прилагане на методи за машинно обучение за идентификация или анотиране на обекти в реално време, или добавяне на ефекти, като изрязване на фона, преди кодиране или след декодиране от кодека.
    • Възможност за пакетиране на ресурси в пакети (Web Bundle) за по-ефективно зареждане на голям брой свързани файлове (CSS стилове, JavaScript, изображения, iframe). Сред недостатъците в наличната поддръжка на пакети за JavaScript файлове (webpack), които се опитват да бъдат разрешени с Web Bundle: в HTTP кеша може да остане самият пакет, но не и неговите съставни части; компилацията и изпълнението може да започнат само след пълно зареждане на пакета; допълнителните ресурси, като CSS и изображения, трябва да бъдат кодирани под формата на JavaScript низове, което води до увеличаване на размера и изпълнението на още една фаза на анализ.
    • Поддръжка на обработка на изключения в WebAssembly.
  • Стабилизиран API Declarative Shadow DOM за създаване на нови коренови клони в Shadow DOM, например за отделяне на импортирания външен стил на елемента и свързаното с него поддърво DOM от основния документ. Предложеният декларативен API позволява открепяне на клони DOM само с HTML без необходимост от писане на JavaScript код.
  • В CSS свойството aspect-ratio, което позволява явно свързване на съотношението на страните към всеки елемент (за автоматично изчисляване на липсващия размер при указване само на височина или ширина), е реализирана възможността за интерполация на стойности при анимация (гладък преход от едно съотношение на страните към друго).
  • Добавена е възможност за отразяване на състоянието на собствените HTML елементи (custom element) в CSS чрез псевдо-клас ‘:state()’. Функционалността е реализирана аналогично на възможността на стандартните HTML елементи да променят състоянието си в зависимост от взаимодействието с потребителя.
  • В CSS свойството «appearance» е добавена поддръжка на стойността ‘auto’, която по подразбиране се задава за и , а на платформата Android допълнително и за , , , и .
  • В CSS свойството «overflow» е добавена поддръжка на стойността «clip», при задаване на която излизащото извън блока съдържание се изрязва по границата на допустимото преливане на блока без възможност за превъртане. Стойността, определяща колко далеч съдържанието може да излиза извън действителната граница на блока преди започване на изрязването, се задава чрез новото CSS свойство «overflow-clip-margin». В сравнение с «overflow: hidden», използването на «overflow: clip» позволява постигане на по-висока производителност.
    Издание Chrome 90Издание Chrome 90
  • Новият заглавие Permissions-Policy замени HTTP заглавието Feature-Policy за контрол на делегиране на права и активиране на разширени функционалности, което включва поддръжка на структурираните стойности на полета (например, сега може да се зададе «Permissions-Policy: geolocation=()» вместо «Feature-Policy: geolocation ‘none'»).
  • Засилена е защитата срещу злоупотреба с Protocol Buffers за атаки, предизвикани от спекулативно изпълнение на инструкции в процесорите. Защитата е реализирана чрез добавяне на MIME типа «application/x-protobuffer» в списъка на никога не прослушвани (sniffed) MIME типове, чиято обработка се извършва чрез механизма Cross-Origin-Read-Blocking. По-рано в подобен списък вече беше добавен MIME тип «application/x-protobuf», но «application/x-protobuffer» остана пропуснат.
  • В API File System Access е реализирана възможността за изместване на текущата позиция в файла извън неговия край с попълване на нулите в образувания интервал при последващо записване чрез извикване на FileSystemWritableFileStream.write(). Тази функция позволява създаване на разредени файлове с празноти и значително опростява организацията на записите в файл на потоци с неупорядочен вход на блокове данни (например, това се практикува в BitTorrent).
  • Добавен е конструктор StaticRange с реализация на лекотежки типове Range, които не изискват актуализиране на всички свързани обекти при всяка промяна в DOM дървото.
  • Възможността за задаване на параметрите width и height за елементите <source>, посочени в елемента <picture>. Тази възможност позволява да се изчисли съотношението между ширината и височината на елементите <picture>, подобно на начина, по който е направено за <img>, <canvas> и <video>.
  • Поддръжката на RTP Data Channels, която не е стандартизирана, е премахната от WebRTC, вместо това се препоръчва използването на SCTP базирани канали за данни.
  • Свойствата navigator.plugins и navigator.mimeTypes сега винаги връщат празна стойност (след прекратяването на поддръжката на Flash, необходимостта от тези свойства отпадна).
  • Извършени са много малки подобрения в инструментите за уеб разработчици и е добавен нов инструмент за отстраняване на проблеми с CSS flexbox.
    Издание Chrome 90

Освен новите функции и корекциите на грешки, в новата версия са отстранени 37 уязвимости. Много от уязвимостите са открити чрез автоматизирано тестване с инструментите AddressSanitizer, MemorySanitizer, Control Flow Integrity, LibFuzzer и AFL. Не са открити критични проблеми, които да заобиколят всички защитни нива на браузера и да изпълняват код в системата извън sandbox средата. В рамките на програмата за изплащане на награди за откриване на уязвимости, Google е изплатила 19 награди на обща стойност 54000 долара (една награда от 20000 долара, една награда от 10000 долара, две награди от 5000 долара, три награди от 3000 долара, една награда от 2000 долара, една от 1000 долара и четири награди от 500 долара). Размерът на 6 награди все още не е определен.

Отделно може да се отбележи, че вчера, след генерирането на коригиращото издание 89.0.4389.128, но преди излизането на Chrome 90, беше публикуван още един експлойт, в който е използвана нова 0-day уязвимост, която не е поправена в Chrome 89.0.4389.128. Все още не е ясно дали този проблем е отстранен в Chrome 90. Както и в първия случай, експлойтът обхваща само една уязвимост и не съдържа код за заобикалянe на sandbox изолацията (при стартиране на chrome с флага „—no-sandbox“ експлойтът позволява стартиране на notepad при отваряне на уеб страница на платформата Windows). Свързаната с новия експлойт уязвимост засяга технологията WebAssembly.

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

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