Компания Google обяви пуск на уеб браузера Chrome 99. Същевременно е налична стабилна версия на свободния проект Chromium, който е основата на Chrome. Браузерът Chrome се отличава с използването на логотипи на Google, наличието на система за известия при срив, модули за възпроизвеждане на защитено от копиране видео съдържание (DRM), система за автоматична инсталация на обновления и прехвърляне на RLZ параметри при търсене. Следващата версия Chrome 100 е планирана за 29 март.
Основни промени в Chrome 99:
- В Chrome за Android е включен механизъм за прозрачност на сертификатите, осигуряващ поддържането на независим публичен регистър на всички издадени и оттеглени сертификати. Публичният регистър предоставя възможност за независим одит на всички изменения и действия на удостоверяващите центрове и позволява веднага да се проследяват всякакви опити за скрито създаване на фалшиви записи. Сертификатите, които не са отразени в механизма за прозрачност на сертификатите, ще бъдат автоматично отхвърлени от браузъра с показване на съответната грешка. По-рано посоченият механизъм беше включен само за настолната версия и за малък процент потребители на Android.
- Поради голям брой жалби, предлаганият преди това в тестов режим механизъм за достъп до частна мрежа, насочен на усилване на защитата срещу атаки, свързани с достъп до ресурси в локалната мрежа или на компютъра на потребителя (localhost) от скриптове, зареждани при отваряне на сайт, беше деактивиран. За защита от подобни атаки, при достъп до всякакви подресурси в вътрешната мрежа, е предложено изпращането на явен иск за разрешение за зареждане на подобни подресурси. Google ще преразгледа изпълнението, като вземе предвид получените отзиви и в едно от бъдещите издания ще предложи подобрен вариант.
- Възстановена е възможността за изтриване на предложените по подразбиране търсачки. Напомняме, че от Chrome 97 в конфигуратора в секция „Управление на търсещите системи“ (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 Handwriting Recognition, който позволява използването на услуги за разпознаване на ръкописен вход, предоставяни от операционната система.
- За инсталирани самостоятелни уеб-приложения (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


