Выпуск web-браузера Chrome 129

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

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

  • Добавлена возможность настройки содержимого панели инструментов, позволяющая пользователю закреплять, откреплять и менять местами пиктограммы при помощи конфигуратора, отображаемого в боковой панели. Например, можно разместить на панели кнопки для вызова интерфейса для разработчиков, очистки данных о работе браузера, открытия режима для чтения, перехода в диспетчер задач, перехода в менеджер паролей и т.п.
    Для управления включением возможности закрепления пиктограмм добавлен параметр «chrome://flags/#toolbar-pinning».

  • Предложена функция сравнения вкладок, позволяющая использовать элементы машинного обучения для генерации сравнительного обзора товаров, страницы с информацией о которых открыты в разных вкладках. Возможность пока доступна только для пользователей из США.

  • В версии для платформы Android реализовано перемещение неактивных вкладок в отдельную секцию (Inactive Tabs) интерфейса переключения между вкладками. Имеется возможность просмотра всех старых вкладок и из закрытия разом. По умолчанию новая возможность включена для 1% пользователей. Вкладки автоматически удаляются после нахождения в секции Inactive Tabs больше 60 дней.
  • Добавлен экспериментальный режим совместного использования процессов, суть которого в том, что для разных вкладок, в которых открыт один и тот же сайт, будет использоваться один общий процесс отрисовки, вместо раздельных процессов. Изменение позволяет ускорить загрузку страниц и снизить потребление памяти. Для включения режиме добавлена настройка «chrome://flags/#enable-process-per-site-up-to-main-frame-threshold».
  • Добавлена возможность предоставления сайтам одноразовых полномочий, действующих только в рамах текущего сеанса (например, можно предоставить доступ к камере и микрофону, который будет действовать до закрытия вкладки или перехода на другой сайт).
  • Прекращена поддержка платформы macOS 10.15, сопровождение которой было прекращено компанией Apple в 2022 году.
  • Для платформ Windows и macOS в конфигураторе реализован новый интерфейс управления сертификатами (ранее на данных платформах вызывались системные интерфейсы управления сертификатами).
  • Включена блокировка доступа к IP 0.0.0.0 для предотвращения атак на локальные сервисы.
  • Анонсирована предстоящая замена в TLS алгоритма обмена ключами Kyber768+X25519 на ML-KEM768+X25519 (недавно принятый стандарт ML-KEM основан на постквантовом алгоритме Кyber, но полностью не совместим с его прошлой реализацией).
  • В API Scheduler добавлен метод «scheduler.yield()«, позволяющий при выполнении длительных задач на время возвращать управление в основной поток браузера, что позволяет приостанавливать текущую длительную задачу для выполнения важных работ, таких как обработка ввода и отрисовка кадров. Идея в том, чтобы разбить длительно выполняемые задачи на более мелкие, периодически передавая управление в основной поток через вызов «await scheduler.yield();» в коде, что позволяет уменьшить негативное влияние длительно выполняемых задач на отзывчивость при работе с сайтом.

  • Добавлено CSS-свойство «interpolate-size», позволяющее выбирать размер анимации не в абсолютных величинах, а относительно значений, вычисленных при использовании свойств auto, min-content или fit-content. Для более точного управления размером предложена CSS-функция
    calc-size(), похожая на calc(), но поддерживающая операции с фактическим размером элементов, меняющимся в зависимости от содержимого.

  • Внесены изменения в CSS-свойства для управления показом элементов, привязанных к местоположению других элементов (CSS Anchor Positioning), без использования JavaScript, например, для прикрепления к элементам всплывающих окон (popover), появляющихся по аналогии со всплывающими подсказками. В соответствии с рекомендацией рабочей группы, занимающейся стандартизацией СSS, CSS-свойство «inset-area» переименовано в «position-area», свойство «position-try-options» переименовано в «position-try-fallbacks», а в свойстве «position-try» убрана необходимость указания inset-area(), т.е. вместо «position-try-fallbacks: inset-area(top)» следует писать «position-try-fallbacks: top».
  • В API Intl добавлен метод Intl.DurationFormat для форматирования данных о продолжительности во времени с учётом выбранной локали. Например:
    
       const l = "ru-RU";
       const d = {hours: 1, minutes: 46, seconds: 40};
       const opts = {style: "long"};
       new Intl.DurationFormat(l, opts).format(d);
       // "1 час, 46 минут 40 секунд"
    
  • В API Web GPU реализована возможность использования всего диапазона яркости, поддерживаемого экраном, при выводе HDR-изображений.
  • В API WebRTC добавлена поддержка отправки блобов при помощи метода RTCDataChannel.send(Blob) и получения данных с типом Blob при обработке события onMessage, если в атрибуте «binaryType» указано значение «blob» (ранее поддерживалась передача строк и ArrayBuffer). Размер блоба ограничен значением maxMessageSize.
  • В API WebAuthn добавлены методы PublicKeyCredential.toJSON(), parseCreationOptionsFromJSON() и parseRequestOptionsFromJSON() для сериализации/десериализации WebAuthn-ответов c использованием формата JSON.
  • В режиме «Origin trials» реализован API FileSystemObserver, позволяющий сайтам отслеживать изменения файлов и каталогов.
  • В режиме «Origin trials» добавлен API Mesh2D Canvas для визуализации большого количества текстурированных треугольников. Из областей применения API упоминаются реализация расширенных методов текстурного маппинга и создания эффектов деформации в двумерном контексте.
  • Расширены возможности инструментов для web-разработчиков.

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

Источник: http://www.opennet.ru/opennews/art.shtml?num=61912