Chrome версия 90

Google представи версията на уеб браузъра Chrome 90. В същото време е налична стабилна версия на безплатния проект 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
  • Добавена е възможност за скриване на „Списък за четене“, без да се налага да променяте настройките в „chrome://flags“ („chrome://flags#read-later“). За да скриете, вече можете да използвате опцията „Показване на списъка за четене“ в долната част на контекстното меню, което се показва, когато щракнете с десния бутон върху лентата с отметки. Нека ви напомним, че в последната версия, когато някои потребители кликнат върху звездичката в адресната лента, в допълнение към бутона „Добавяне на отметка“ се появява втори бутон „Добавяне към списъка за четене“, а в десния ъгъл на панел с отметки се появява менюто „Списък за четене“, което изброява всички предишни страници, добавени към списъка. Когато отворите страница от списъка, тя се маркира като прочетена. Страниците в списъка могат също да бъдат маркирани ръчно като прочетени или непрочетени или премахнати от списъка.
  • Добавена е поддръжка за мрежово сегментиране за защита срещу методи за проследяване на движенията на потребителите между сайтове въз основа на съхраняване на идентификатори в зони, които не са предназначени за постоянно съхранение на информация („Супербисквитки“). Тъй като кешираните ресурси се съхраняват в общо пространство от имена, независимо от първоначалния домейн, един сайт може да определи, че друг сайт зарежда ресурси, като проверява дали този ресурс е в кеша. Защитата се основава на използването на мрежово сегментиране (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 > Поверителност и сигурност > Пясъчник за поверителност”, който ви позволява да управлявате параметрите на FLoC API, насочени към определяне на категорията на потребителските интереси без индивидуална идентификация и без препратка към историята на посещението на определени сайтове.
  • Вече се показва по-ясно известие със списък с разрешени действия, когато потребител се свърже с профил, за който е активирано централизирано управление.
  • Направи интерфейса за искане на разрешения по-малко натрапчив. Заявките, които потребителят вероятно няма да одобри, вече се блокират автоматично със съответния индикатор, показван в адресната лента, с който потребителят може да отиде до интерфейса за управление на разрешения за всеки сайт.
    Chrome версия 90
  • Поддръжката на Intel CET (Intel Control-flow Enforcement Technology) е включена за хардуерна защита срещу експлойти, изградени с помощта на техники за програмиране с връщане (ROP, Return-Oriented Programming).
  • Продължава работата по преминаването на браузъра към използване на включваща терминология. Файлът "master_preferences" е преименуван на "initial_preferences", за да се избегне нараняване на чувствата на потребителите, които възприемат думата "master" като намек за предишното робство на техните предци. За да се поддържа съвместимостта, поддръжката за „master_preferences“ ще остане в браузъра известно време. Преди това браузърът вече се беше отървал от използването на думите „бял ​​списък“, „черен списък“ и „роден“.
  • Във версията на Android, когато е активиран режимът за пестене на трафик „Lite“, битрейтът се намалява при изтегляне на видео, когато е свързан през мрежите на мобилните оператори, което ще намали разходите на потребителите, които имат активирани тарифи, базирани на трафика. Режимът „Lite“ също така осигурява компресиране на изображения, поискани от публично достъпни ресурси (не изискващи удостоверяване) чрез HTTPS.
  • Добавен е енкодер за видео формат AV1, специално оптимизиран за използване във видеоконференции, базирани на протокола WebRTC. Използването на AV1 във видеоконференциите позволява да се увеличи ефективността на компресията и да се осигури възможност за излъчване на канали с честотна лента от 30 kbit/sec.
  • В 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.x), за които е активиран вграденият кеш, е оптимизирана. Производителността при използване на "super" вече е близка до производителността при достъп до обикновени свойства.
  • Извикването на функции на WebAssembly от JavaScript е значително ускорено поради използването на вградено внедряване. Тази оптимизация засега остава експериментална и изисква работа с флага „-turbo-inline-js-wasm-calls“.
  • Добавен API за разпознаване на дълбочина WebXR, който ви позволява да определяте разстоянието между обекти в средата на потребителя и устройството на потребителя, например, за да създавате по-реалистични приложения с добавена реалност. Нека ви напомним, че WebXR API ви позволява да обедините работата с различни класове устройства за виртуална реалност, от стационарни 3D шлемове до решения, базирани на мобилни устройства.
  • Функцията WebXR AR Lighting Estimation е стабилизирана, позволявайки на WebXR AR сесиите да определят параметрите на околното осветление, за да придадат на моделите по-естествен външен вид и по-добра интеграция със средата на потребителя.
  • Режимът Origin Trials (експериментални функции, които изискват отделно активиране) добавя няколко нови API, които в момента са ограничени до платформата Android. Origin Trial предполага възможност за работа с посочения API от приложения, изтеглени от localhost или 127.0.0.1, или след регистрация и получаване на специален токен, който е валиден за ограничено време за конкретен сайт.
    • Методът getCurrentBrowsingContextMedia(), който прави възможно заснемането на видео поток MediaStream, отразяващ съдържанието на текущия раздел. За разлика от подобния метод getDisplayMedia(), при извикване на getCurrentBrowsingContextMedia(), на потребителя се представя прост диалогов прозорец за потвърждение или блокиране на операцията по прехвърляне на видео със съдържанието на раздела.
    • API за вмъкнати потоци, който ви позволява да манипулирате необработени медийни потоци, предавани чрез API на MediaStreamTrack, като данни от камера и микрофон, резултати от заснемане на екрана или данни за декодиране на междинен кодек. Интерфейсите на WebCodec се използват за представяне на необработени рамки и се генерира поток, подобен на това, което API за вмъкнати потоци на WebRTC генерира въз основа на RTCPeerConnections. От практическа страна новият API позволява функционалност като прилагане на техники за машинно обучение за идентифициране или анотиране на обекти в реално време или добавяне на ефекти като изрязване на фона преди кодиране или след декодиране от кодек.
    • Възможността за пакетиране на ресурси в пакети (Web Bundle) за организиране на по-ефективно зареждане на голям брой придружаващи файлове (CSS стилове, JavaScript, изображения, iframes). Сред недостатъците в съществуващата поддръжка на пакети за JavaScript файлове (webpack), които Web Bundle се опитва да отстрани: самият пакет, но не и съставните му части, може да се окаже в HTTP кеша; компилирането и изпълнението може да започне само след като пакетът е напълно изтеглен; Допълнителни ресурси като CSS и изображения трябва да бъдат кодирани под формата на JavaScript низове, което увеличава размера и изисква друга стъпка за анализ.
    • Поддръжка за обработка на изключения в WebAssembly.
  • Стабилизира приложния програмен интерфейс (API) на Declarative Shadow DOM, за да създаде нови основни клонове в Shadow DOM, например за отделяне на импортиран стил на елемент от трета страна и свързания с него DOM подклон от основния документ. Предложеният декларативен API ви позволява да използвате само HTML, за да откачите DOM клонове, без да е необходимо да пишете JavaScript код.
  • CSS свойството aspect-ratio, което ви позволява изрично да обвържете съотношението на страните към всеки елемент (за автоматично изчисляване на липсващия размер, когато посочвате само височината или ширината), реализира възможността за интерполиране на стойности по време на анимация (плавен преход от един аспектно съотношение към друг).
  • Добавена е възможност за отразяване на състоянието на персонализирани HTML елементи в CSS чрез псевдо-класа „:state()“. Функционалността е реализирана по аналогия със способността на стандартните HTML елементи да променят състоянието си в зависимост от взаимодействието на потребителя.
  • CSS свойството “appearance” вече поддържа стойността 'auto', която е зададена по подразбиране за и , а на платформата Android допълнително за , , , и .
  • Поддръжката на стойността „clip“ е добавена към свойството CSS „overflow“, когато е зададено, съдържанието, което се простира отвъд блока, се изрязва до границата на допустимото препълване на блока без възможност за превъртане. Стойността, която определя колко далеч съдържанието може да се простира отвъд действителната граница на полето, преди да започне изрязването, се задава чрез новото CSS свойство „overflow-clip-margin“. В сравнение с "overflow: hidden", използването на "overflow: clip" позволява по-добра производителност.
    Chrome версия 90Chrome версия 90
  • HTTP заглавката Feature-Policy е заменена от нова Permissions-Policy заглавка за контролиране на делегирането на разрешения и активирането на разширени функции, което включва поддръжка за стойности на структурирани полета (например вече можете да посочите „Permissions-Policy: геолокация =()" вместо "Политика за функция: геолокация 'няма'").
  • Подобрена защита срещу използването на протоколни буфери за атаки, причинени от спекулативно изпълнение на инструкции в процесорите. Защитата се реализира чрез добавяне на типа MIME „application/x-protobuffer“ към списъка с никога неизпитвани MIME типове, който се обработва чрез механизма Cross-Origin-Read-Blocking. По-рано типът MIME „application/x-protobuf“ вече беше включен в подобен списък, но „application/x-protobuffer“ беше пропуснат.
  • API за достъп до файловата система реализира възможността за изместване на текущата позиция във файл отвъд неговия край, като запълва получената празнина с нули по време на последващо записване чрез извикването FileSystemWritableFileStream.write(). Тази функция ви позволява да създавате разредени файлове с празни пространства и значително опростява организацията на запис във файлови потоци с неподредено пристигане на блокове данни (например това се практикува в BitTorrent).
  • Добавен конструктор StaticRange с внедряване на олекотени типове Range, които не изискват актуализиране на всички свързани обекти всеки път, когато DOM дървото се промени.
  • Реализирана е възможността за указване на параметри за ширина и височина за елементи, посочени в елемента . Тази функция ви позволява да изчислите съотношението на страните за елементи , подобно на начина, по който се прави за , и .
  • Нестандартизираната поддръжка за RTP канали за данни е премахната от WebRTC и се препоръчва вместо това да се използват базирани на SCTP канали за данни.
  • Свойствата navigator.plugins и navigator.mimeTypes вече винаги връщат празна стойност (след като поддръжката на Flash приключи, тези свойства вече не бяха необходими).
  • Бяха направени голяма част от малки подобрения в инструментите за уеб разработчици и беше добавен нов инструмент за отстраняване на грешки в CSS, flexbox.
    Chrome версия 90

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

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

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

Добавяне на нов коментар