Релиз Chrome 110

Компания Google представила релиз web-браузера Chrome 110. Одновременно доступен стабильный выпуск свободного проекта Chromium, выступающего основой Chrome. Браузер Chrome отличается от Chromium использованием логотипов Google, наличием системы отправки уведомлений в случае краха, модулями для воспроизведения защищённого от копирования видеоконтента (DRM), системой автоматической установки обновлений, постоянным включением Sandbox-изоляции, поставкой ключей к Google API и передачей при поиске RLZ-параметров. Для тех, кому необходимо больше времени на обновление, отдельно поддерживается ветка Extended Stable, сопровождаемая 8 недель. Следующий выпуск Chrome 111 запланирован на 7 марта.

Основные изменения в Chrome 110:

  • Реализована опциональная возможность использования биометрической аутентификации перед каждым автоматическим заполнением полей с паролями.

  • Для обособленных web-приложений реализована предлагаемая по умолчанию страница, показываемая в случае проблем с доступом к сети, если разработчики web-приложения не предусмотрели возможность работы в режиме offline.

  • Обновлена реализация режима работы без вывода на экран (headless), который позволяет запускать браузер на системах без монитора и графической подсистемы, например, на серверах. Режим позволяет автоматически выполнять работы, требующие наличия полноценного web-браузера, например, можно автоматизировать настройку новых систем через web-интерфейсы, извлекать web-страницы и создавать собственные сервисы отрисовки web-содержимого. Новая реализация приближена к штатному режиму работы Chrome и поддерживает такие расширенные возможности, как учёт корпоративных политик.
  • При включении расширенной защиты браузера (Safe Browsing > Enhanced protection) реализован сбор телеметрии об Сookie, запрашиваемых дополнениями, с целью выявления на стороне Google вредоносной активности в дополнениях и нецелевого доступа к передаваемым через Cookie идентификаторам. Кроме того, в новой версии на платформе Android обеспечена синхронизация белого списка для режимов “Enhanced Safe Browsing” и “Make Browsing Better” с использованием штатного компонента доставки обновлений, что повысит оперативность загрузки новых версий белого списка.
  • Упрощён процесс смены пароля в случае выявления компрометации пользовательской базы на текущем сайте. В инструменте проверки паролей расширена база ссылок на формы смены паролей различных сайтов (теперь можно сразу перейти к смене пароля из уведомления о компрометации сайта).

  • Активирована шестая стадия урезания информации в HTTP-заголовке User-Agent и JavaScript параметрах navigator.userAgent, navigator.appVersion и navigator.platform, реализуемая с целью сокращения информации, которая может использоваться для пассивной идентификации пользователя. В Chrome 110 сокращена выводимая в строке User-Agent информация о платформе Android (например, было “Android 9; SM-A205U”, станет “Android 9; S”).
  • На странице “chrome://settings/language” предложены расширенные настройки перевода, позволяющие выбрать текущий целевой язык, языки для которых не нужно выполнять перевод и языки для которых всегда следует выполнять перевод.
  • В CSS предложен псевдо-класс “:picture-in-picture“, при помощи которого можно изменить оформление элементов интерфейса для просмотра видео в режиме “картинка в картинке“.
  • В манифесте обособленных web-приложений реализована поддержка блока launch_handler, при помощи которого можно управлять поведением при запуске web-приложения, например, открытием в отдельном или существующем окне.
  • В элемент iframe добавлен новый атрибут “credentialless”, позволяющий организовать встраивание через iframe стороннего контента, который будет обработан в изолированном от основного сайта окружении с пустыми Cookie и отдельными хранилищами, такими как LocalStorage и CacheStorage. Атрибут в iframe позволяет обойтись без выставления на сайте заголовка COEP (Cross-Origin Embedder Policy).
  • Добавлено CSS-свойство initial-letter для задания размера и смещения на соседние строки начальных букв в абзацах. Например, при указании “initial-letter: 3;” первая буква абзаца займёт три строки:

  • В API FileSystemHandle добавлен метод remove() для удаления файлов по файловому дескриптору, связанному с файлом, выбранным пользователем в диалоге showSaveFilePicker (речь ведётся не об удалении произвольных файлов, а о ситуации, когда пользователь выбрал в диалоге сохранения имя файла, web-приложение сохранило файл, но потом потребовалось удалить этот сохранённый файл).
  • Добавлен метод AudioContext.setSinkId(), через который можно выбрать устройство для вывода звука, например, когда пользователю необходимо перенаправить звук на подключённое внешнее устройство.
  • При обработке URL по аналогии с Firefox и Safari задействован нетранзакционный режим обработки интернационализированных имён в URL (IDNA 2008), который отличается от транзакционного режима тем, что в транзакционном режиме символ ß отражается в ss, ς в σ, а пустые разделители ZWJ и ZWNJ удаляются. Использование разных режимов, например, приводило к тому, что при обращении к домену faß.de в Firefox и Chrome открывались разные сайты.
  • Прекращена поддержка операционных систем Windows 7/8/8.1, а также частично прекращена поддержка выпусков Windows Server 2012 и 2012 R2, для которых до 10 октября предусмотрена возможность формирования обновлений с устранением критических уязвимостей.
  • С целью защиты от проведения MITM-атак запрещена обработка запросов WebAuthn на сайтах, имеющих проблемы с TLS-сертификатами.
  • Полностью блокирована возможность использования API WebSQL, независимо от контекста (ранее использование WebSQL было запрещено только в скриптах, загруженных не с текущего сайта). Вместо WebSQL рекомендуется использовать API Web Storage и Indexed Database. Обработчик WebSQL основан на коде SQLite и мог использоваться злоумышленниками для эксплуатации уязвимостей в SQLite.
  • Удалён API управления квотами window.webkitStorageInfo, который числился устаревшим с 2013 года и был заменён на стандартизированный API StorageManager.
  • Внесены улучшения в инструменты для web-разработчиков. Обеспечена очистка содержимого панели Performance при нажатии на кнопку перезагрузки страницы. В Recorder реализована подсветка кода, связанного с текущим этапом выполнения, предоставлена возможность редактирования содержимого не прерывая записи и добавлена возможность записи только определённых типов селекторов. В web-консоли расширены возможности автодополнения ввода.
    В панели Sources по умолчанию включён режим наглядного форматирования (pretty print) минифицированного JavaScript-кода и улучшена подсветка структур Vue, JSX, Dart, LESS, SCSS, SASS и inline CSS.

Кроме нововведений и исправления ошибок в новой версии устранено 15 уязвимостей. Многие из уязвимостей выявлены в результате автоматизированного тестирования инструментами AddressSanitizer, MemorySanitizer, Control Flow Integrity, LibFuzzer и AFL. Критических проблем, которые позволяют обойти все уровни защиты браузера и выполнить код в системе за пределами sandbox-окружения, не выявлено. В рамках программы по выплате денежного вознаграждения за обнаружение уязвимостей для текущего релиза компания Google выплатила 10 премий на сумму 26.5 тысяч долларов США (по одной премии в $7000, $4000 и $1500, по две премии $3000 и $1000, три премии $2000).

Release. Ссылка here.