Компания Google представи новата версия на уеб браузъра Chrome 99. Стабилната версия на свободния проект Chromium, който стои в основата на Chrome, също е налична. Браузърът Chrome се отличава с логото на Google, система за уведомяване при срив, модули за възпроизвеждане на защитено от копиране видео съдържание (DRM), автоматично инсталиране на актуализации и предаване на RLZ параметри при търсене. Следващият выпуск на Chrome 100 е планиран за 29 март.
Основни промени в Chrome 99:
- Chrome за Android включва механизма Certificate Transparency, който осигурява независим публичен журнал на всички издадени и оттеглени сертификати. Публичният журнал дава възможност за независим одит на всички промени и действия на удостоверяващите центрове и позволява незабавно проследяване на всякакви опити за тайно създаване на фалшиви записи. Сертификатите, които не са отразени в Certificate Transparency, ще бъдат автоматично отхвърляни от браузъра, показвайки съответна грешка. Предишният механизъм бе активиран само за настолната версия и за малък процент потребители на Android.
- Поради множеството оплаквания, по-рано предложената в тестов режим функция Private Network Access, целяща да засили защитата от атаки, свързани с достъпа до ресурси в локалната мрежа или на компютъра на потребителя (localhost) от скриптове, зареждани при отваряне на сайта, бе деактивирана. За защита от подобни атаки при достъп до всички субресурси в вътрешната мрежа, бе предложено изпращане на ясен запитване за разрешение за зареждането на подобни субресурси. Google ще прегледа реализирането на функцията, вземайки предвид получените отзиви, и в един от бъдещите версии ще предложи подобрена опция.
- Бе възстановена възможността за премахване на предлаганите по подразбиране търсачки. Напомняме, че от версии 97 на Chrome в конфигуратора в секцията 'Управление на търсачките' (chrome://settings/searchEngines) бе прекратена възможността за премахване на елементи от списъка с търсачки по подразбиране (Google, Bing, Yahoo) и редактиране на параметрите на търсачките, което предизвика недоволство у много потребители.
- На платформата Windows е предоставена възможност за премахване на самостоятелни уеб приложения (PWA, Прогресивно уеб приложение) през системните настройки или панела за управление подобно на премахването на Windows приложения.
- Извършва се финално тестване на възможно нарушение на работата на сайтовете след достигане на версия на браузъра, състояща се от три цифри вместо две (в свое време след пускането на Chrome 10 в библиотеките за парсване на User-Agent изскочиха много проблеми). При активиране на опцията «chrome://flags#force-major-version-to-100» в заглавието на User-Agent започва да се показва версия 100.
- В CSS е добавена поддръжка за каскадни слоеве, определяни с правилото @layer и импортирани чрез CSS правилото @import, използвайки функцията layer(). CSS правилата вътре в един каскаден слой се каскадират заедно, опростявайки управлението на целия каскад, предоставяйки гъвкави възможности за промяна на реда на слоевете и позволявайки по-ясно управление на CSS файловете, предотвратявайки конфликтите. Каскадните слоеве са удобни за приложение на теми, определяне на стилове по подразбиране и изнасяне на оформления на компоненти в външни библиотеки.
- В класа HTMLInputElement е добавен метод showPicker(), позволяващ показването на готови диалози за попълване на типични стойности в полета с типове «date», «month», «week», «time», «datetime-local», «color» и «file», както и за полета, поддържащи автоматично попълване (autofill) и избор от списък (datalist). Например, може да се покаже интерфейс под формата на календар за избор на дата или палитра за въвеждане на цвят.

- В режим Origin Trials (експериментални възможности, изискващи отделно активиране) е реализирана възможност за включване на тъмен режим на оформление за уеб приложения. Цветовете и фоновете за тъмната тема се избират с помощта на новото поле color_scheme_dark в файла с манифест на уеб приложението. Origin Trial предполага възможност за работа с посочения API от приложения, заредени от localhost или 127.0.0.1, или след регистрация и получаване на специален токен, който действа ограничено време за конкретен сайт.
- Стабилизиран и предложен на всички желаещи API за разпознаване на почерк, позволяващ използването на услуги за разпознаване на ръкописен вход, предоставени от операционната система.
- За инсталирани независими уеб приложения (PWA, Progressive Web App) е стабилизиран компонентът Window Controls Overlay, който разширява екранната област на приложението до цялото прозорец, включително заглавието, върху което се налагат стандартните контролни бутони на прозореца (затваряне, минимизиране, максимизиране). Уеб приложението може да управлява рисуването и обработката на входа през цялото прозорец, с изключение на наложения блок с бутоните за управление на прозореца.
- В CSS функцията calc() е разрешено указване на стойности „infinity“, „-infinity“ и „NaN“ или изрази, които водят до подобни стойности, например, ‘calc(1/0)’.
- В CSS свойството color-scheme, което позволява да се определи в какви цветови схеми може да бъде правилно показан елементът („light“, „dark“, „day mode“ и „night mode“), е добавен параметър „only“, който позволява да се изключи задължителната промяна на цветната схема за отделни HTML елементи. Например, ако се зададе „div { color-scheme: only light }“, то за елемента div ще се използва само светлото оформление, дори ако в браузъра е задействано принудително тъмното оформление.
- За промяна на стойностите на свойството document.adoptedStyleSheets вече могат да се прилагат операциите push() и pop() вместо пълно преназначаване на свойството. Например, „document.adoptedStyleSheets.push(newSheet);“.
- В реализацията на интерфейса CanvasRenderingContext2D е добавена поддръжка на събитията ContextLost и ContextRestored, метода reset(), опцията „willReadFrequently“, CSS модификатори на текста, примитив за рисуване roundRect и конусни градиенти. Подобрена е поддръжката на SVG филтри.
- Премахнат е префиксът „-webkit-“ от свойствата „text-emphasis“, „text-emphasis-color“, „text-emphasis-position“ и „text-emphasis-style“.
- За страниците, отворени без HTTPS, е забранен достъпът до API-то Battery Status, което позволява получаване на информация за заряда на акумулатора.
- В метода navigator.getGamepads() е осигурен изход на масив от обекти Gamepad вместо GamepadList. GamepadList вече не се поддържа в Chrome, което отговаря на изискванията на стандарта и поведението на движките Gecko и Webkit.
- API WebCodecs е приведен в съответствие със спецификацията. По-специално, изменени са методът EncodedVideoChunkOutputCallback() и конструктора VideoFrame().
- В JavaScript двигателя V8 в API Intl.Locale са добавени нови свойства calendars, collations, hourCycles, numberingSystems, timeZones, textInfo и weekInfo, които предоставят информация за поддържаните календари, часови зони и параметри на време и текст. const arabicEgyptLocale = new Intl.Locale('ar-EG') // ar-EG arabicEgyptLocale.calendars // ['gregory', 'coptic', 'islamic', 'islamic-civil', 'islamic-tbla'] arabicEgyptLocale.collations // ['compat', 'emoji', 'eor'] arabicEgyptLocale.hourCycles // ['h12'] arabicEgyptLocale.numberingSystems // ['arab'] arabicEgyptLocale.timeZones // ['Africa/Cairo'] arabicEgyptLocale.textInfo // { direction: 'rtl' } japaneseLocale.textInfo // { direction: 'ltr' } chineseTaiwanLocale.textInfo // { direction: 'ltr' }
- Добавена е функцията Intl.supportedValuesOf(code), която връща масив от поддържани идентификатори за API Intl за свойствата calendar, collation, currency, numberingSystem, timeZone и unit. Intl.supportedValuesOf('unit') // ['acre', 'bit', 'byte', 'celsius', 'centimeter', …]
- Направени са подобрения в инструментите за уеб разработчици. В мрежовата конзола е добавена функция за забавяне на WebSocket заявки за отстраняване на грешки при работа в условия на бавна интернет връзка. В раздела „Application“ е добавена панел за проследяване на отчети, генерирани чрез API Reporting. В панела Recorder преди възпроизвеждането на записана команда е реализирана поддръжка за изчакване, докато елементът стане видим или достъпен за кликване. Упрощена е емулацията на тъмен режим. Подобрено е управлението на панелите с чувствителни екрани. В уеб конзолата е добавена поддръжка за escape последователности за оцветяване на текст, добавена е поддръжка за маски подставки %s, %d, %i и %f, подобрена е работата на филтрите на съобщения.

Освен нововъведенията и поправките в новата версия, са отстранени 28 уязвимости. Много от уязвимостите са открити в резултат на автоматизирано тестване с инструменти като AddressSanitizer, MemorySanitizer, Control Flow Integrity, LibFuzzer и AFL. Критични проблеми, които позволяват заобикаляне на всички нива на защита на браузъра и изпълнение на код в системата извън sandbox средата, не са установени. В рамките на програмата за отпускане на парични награди за откритие на уязвимости, компанията Google е изплатила 21 награда на обща стойност 96 хиляди долара (една награда от $15000, две награди от $10000, шест награди от $7000, две награди от $5000, две награди от $3000 и по една награда от $2000 и $1000.
Източник: opennet.ru


