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

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

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

  • Добавлена возможность использования AI-модели для формирования поисковых рекомендаций в адресной строке и на странице открытия новой вкладки. Для показа подобных AI-рекомендаций в адресную строку добавлена кнопка “AI Mode”, а в списке рекомендаций вывод от AI помечен или выделен в отдельную секцию. Возможность пока активирована по умолчанию только для части пользователей.

  • В централизованно управляемых системах расширена возможность создания собственных ярлыков быстрого поиска через адресную строку (можно создать ярлык “@имя” для поиска на определённом сайте). В новой версии добавлена дополнительная настройка, позволяющая разрешить переопределение, удаление или отключение пользователем ярлыков, заданных администратором.
  • В версии для Android в режимах стандартной и расширенной защиты Google Safe Browsing реализована проверка безопасности загружаемых APK-пакетов. Проверка осуществляется через обращение к серверам Google. В случае, если файл признан опасным пользователю выводится соответствующее предупреждение, а доступ к файлу блокируется (в интерфейсе предусмотрена отдельная возможность доступа в обход блокировки).

  • Удалена настройка ExtensionManifestV2Availability, позволявшая вернуть поддержку второй версии манифеста Chrome, определяющего возможности и ресурсы, доступные для дополнений, написанных с использованием API WebExtensions. В браузере теперь возможно использование только дополнений на базе третьей версии манифеста.
  • В официальных стабильных сборках Chrome прекращена поддержка опций командной строки “–extensions-on-chrome-urls” и “–disable-extensions-except”, позволявших отключить блокировку установки рискованных дополнений, например, подставляемых в браузер без спроса пользователя. В Chromium и тестовых сборках Chrome поддержка указанных опций сохранена.
  • На странице открытия новой вкладки реализована нижняя панель, на которой показывается информация о дополнениях, влияющих на содержимое страницы новой вкладки, а также сведения о применяемых политиках централизованного управления.

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

  • Отключена возможность автоматического отката на использование для WebGL системы программной отрисовки SwiftShader, программно реализующей API Vulkan. В случае отсутствия должного бэкенда на базе GPU создание контекста WebGL теперь будет возвращать ошибку, а не переключаться на SwiftShader. Прекращение использования SwiftShader позволит повысить безопасность, благодаря исключению выполнения сгенерированного JIT-компилятором кода в процессе, отвечающем за взаимодействие с GPU. На платформах Linux и macOS системы без GPU больше не смогут использовать WebGL. В Windows поддержка SwiftShader оставлена только для устройств без GPU или с проблемными GPU, добавленными в чёрный список.
  • Во встроенном хранилище корневых сертификатов (Chrome Root Store) прекращено доверие к удостоверяющим центрам Chunghwa Telecom и Netlock
    из-за нарушений требований к удостоверяющим центрам. В связи с отсутствием действий по устранению выявленных недостатков, TLS-сертификаты, выданные Chunghwa Telecom и Netlock после 31 июля 2025 года, теперь воспринимаются в Chrome как не заслуживающие доверия. Сертификаты, выпущенные до 31 июля, продолжают восприниматься как нормальные.
  • В API Web Speech добавлена поддержка распознавания речи, используя локально доступные на устройстве движки. Сайт может запросить наличие движков распознавания для необходимого языка, выбрать между локальными и облачными сервисами, запросить установку необходимых ресурсов для локального распознавания и убедиться, что распознавание будет выполнено на устройстве пользователя без отправки данных во внешние сервисы.
  • В CSS, помимо задания радиуса скругления при помощи свойства border-radius, реализовано свойство “corner-shape” для управления формой и кривизной углов прямоугольных элементов. Например, при помощи “corner-shape” можно делать плавные переходы от квадрата к кругу (squircle), вогнутые углы (scoop), срезать фаску (bevel) и делать вырезы (notch), а также анимировать изменение формы углов.
  • Добавлена поддержка спецификации Custom Functions, позволяющей создавать собственные функции для CSS, действующие по аналогии с собственными параметризованными CSS-свойствами. Отличие сводится к тому, что CSS-свойства могут вернуть только одно фиксированное значение, а CSS-функции могут возвращать значения на основе других собственных CSS-свойств, параметров и условий. Для определения CSS-функций добавлено правило “@function”. @function –negative(–value) { result: calc(-1 * var(–value)); } @function –shadow(–shadow-color : inherit) { result: 2px 2px var(–shadow-color, black); }
  • Добавлено CSS-свойство “caret-animation”, позволяющее управлять анимацией изменения курсора в полях ввода (например, мигание курсора можно заменить на собственную анимацию).
  • С целью соблюдения спецификации и улучшения совместимости с другими браузерами добавлено CSS-свойство “font-width”, аналогичное ранее доступному свойству “font-stretch”.
  • При блокировке Service Worker-а из-за срабатывания правил CSP (Content Security Policy) теперь в асинхронном режиме отправляется событие “error”, вместо генерации исключения SecurityError сразу после вызова конструктора “new Worker(url)” или “new SharedWorker(url)”.
  • Предоставлена возможность создания единого web-приложения, работающего с несколькими доменами верхнего уровня или разными поддоменами. Для настройки привязки к доменам в манифесте предусмотрено поле “scope_extensions“. { “name”: “Example”, “display”: “standalone”, “start_url”: “/index.html”, “scope_extensions”: [ { “origin”: “https://*.example.com” }, { “origin”: “https://example.co.uk” }, { “origin”: “https://*.example.co.uk” } ]
    }
  • Реализовано определение всех корректных MIME-типов для данных JSON, отмеченных в спецификации WHATWG MIME Sniffing. В дополнение к традиционным MIME-типам “application/json” и “text/json” добавлена поддержка составных MIME-типов, таких как “text/html+json” и “image/svg+json”.
  • В API Invoker Commands добавлена команда “request-close” для принудительного закрытия диалога на базе HTML-элемента , действие которой аналогично вызову JavaScript-метода requestClose().
  • В WebGPU добавлена поддержка 3D-текстур, сжатых с использованием форматов BC и ASTC. Также добавлен экспериментальный (Origin Trial) режим обеспечения совместимости, предоставляющий урезанный API WebGPU, пригодный для работы с устаревшими графическими API, такими как OpenGL и Direct3D11.
  • Для SVG-элементов

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

Дополнительно можно отметить включение в кодовой базе, на основе которой формируется выпуск Chrome 140, режима OverrideDefaultOzonePlatformHintToAuto, активирующего автоматический выбор бэкенда в прослойке Ozone. Изменение позволит адаптивно активировать Wayland-бэкенд на системах с поддержкой Wayland, не привязываясь по умолчанию с бэкенду X11. Вручную включить автоматический выбор бэкенда можно и в выпуске Chrome 139 при помощи настройки “chrome://flags/#ozone-platform-hint” или флага командной строки “–ozone-platform-hint=auto”.

Release. Ссылка here.