Выпуск Web-браузера Chrome 133

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

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

  • Для 1% пользователей включена поддержка заморозки вкладок в режиме экономии потребления энергии (Energy saver). Автоматически замораживаются вкладки, потребляющие много ресурсов CPU и скрытые в течение более 5 минут. Под заморозку не подпадают вкладки, выводящие звук, а также связанные с управлением внешними устройствами или проведением видео и аудио конференций (подобные вкладки определяются на основании доступа к API для работы с USB, Bluetooth, камерой, устройствами ввода и микрофоном, а также организации канала связи с использованием RTCDataChannel или MediaStreamTrack). Для управления включением автозаморозки можно использовать настройку “chrome://flags/#freezing-on-energy-saver”.
  • В сервисе Chrome Sync прекращена поддержка версий Chrome, более чем 4-годичной давности. Для хранения информации в привязке к учётной записи в Google и синхронизации браузерных данных между системами следует использовать как минимум выпуск Chrome 89.
  • В версии для Android добавлена настройка для отключения JIT-оптимизаторов в JavaScript-движке V8. Отключение JIT может быть полезным для повышения безопасности работы с потенциально опасными web-приложениями за счёт уменьшения возможных векторов для совершения атаки. В версиях Chrome для настольных систем подобная настройка доступна на странице chrome://settings/security, начиная с выпуска Chrome 122.
  • Приведён к соответствию со стандартом разбор неспециальных схем URL (не включённых в список типовых схем). Например, URL “git://example.com/path”.
  • Расширены возможности CSS-функции attr(), позволяющей использовать в CSS значения определённого HTML-атрибута. Если ранее функция attr() могла работать только со свойством “content” псевдо-элементов и преобразовывать значения в CSS-тип “”, то теперь её можно применять с любыми CSS-свойствами и преобразовывать значения в любые CSS-типы. В примере ниже цвет в CSS-свойстве “color” выставляется на основе разбора указанного в элементе “div” собственного атрибута “data-foo”, а если атрибут не указан используется значение “red”.
    test

    … div { color: attr(data-foo type(), red); }

  • Реализован CSS-запрос “@container scroll-state(), позволяющий определять состояние прокрутки области. Поддерживаются состояния: “stuck” – контейнер, прикреплённый к одной из сторон области с прокруткой; “snapped” – контейнер, прикреплённый с выравниванием по горизонтали или вертикали; “scrollable” – контейнер, который можно прокручивать в указанном направлении.
  • Добавлены CSS-свойства “text-box”, “text-box-trim” и “text-box-edge”, позволяющие точно управлять отступами до и после текста. Свойство
    “text-box-trim” определяет область обрезки (верх, низ или с обоих сторон), а “text-box-edge” задаёт способ обрезки краёв. Свойство “text-box” объединяет возможности “text-box-trim” и “text-box-edge”.
  • В CSS добавлен псевдо-класс “:open“, позволяющий определить, когда для элементов и открыты диалоговые окна, а для элементов и показаны окна выбора.
  • Добавлен DOM-примитив moveBefore для перемещения элемента в DOM-дереве без сброса его состояния.
  • Добавлен интерфейс FileSystemObserver, позволяющий сайтам отслеживать изменения в файловой системе.
  • В API PublicKeyCredential добавлен метод getClientCapabilities() для определения возможностей WebAuthn, поддерживаемых браузером.
  • В объект Atomics добавлено свойство pause() для информирования о том, что код ожидает освобождения блокировки.
  • В API WebCrypto добавлена поддержка схемы согласования ключей X25519, которая может использоваться через программный интерфейс SubtleCrypto (методы generateKey, importKey, exportKey, deriveKey и deriveBits).
  • В WebAssembly реализована возможность использования 64-разрядных указателей (Memory64), позволяющих работать с линейными областями памяти, превышающими 4 ГБ. Изменение не добавляет новых инструкций WebAssembly, а лишь позволяет использовать в уже существующих инструкциях 64-разрядные индексы для таблиц и областей памяти. Работа в режиме Memory64 приводит к ощутимым накладным расходам – в зависимости от вида нагрузки наблюдается замедление от 10% до двух раз.
  • Расширены возможности инструментов для web-разработчиков. Обеспечено сохранение истории чата с AI-ассистентом между сеансами. Добавлена панель “What’s new” с обзором изменений в новой версии. Добавлена возможность помещения скриптов в список игнорирования, для исключения их показа на диаграмме профилирования производительности. В панели Performance во вкладке Insights обеспечено выделение изображений, размер которых можно оптимизировать, а во вкладке Summary показана трассировка стека JavaScript-вызовов (включая асинхронные вызовы).



Кроме нововведений и исправления ошибок в новой версии устранены 12 уязвимостей. Многие из уязвимостей выявлены в результате автоматизированного тестирования инструментами AddressSanitizer, MemorySanitizer, Control Flow Integrity, LibFuzzer и AFL. Двум проблемам, приводящим к обращению у уже освобождённой памяти в движке V8 и библиотеке Skia, присвоен высокий уровень опасности. Критических проблем, которые позволяют обойти все уровни защиты браузера и выполнить код в системе за пределами sandbox-окружения, не выявлено. В рамках программы по выплате денежного вознаграждения за обнаружение уязвимостей для текущего релиза компания Google выплатила 2 премии на сумму 9 тысяч долларов США (по одной премии в $7000 и $2000). Размер одного вознаграждения пока не определён.

Release. Ссылка here.