Выпуск 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 ‹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-элемента ‹dialog›, действие которой аналогично вызову JavaScript-метода requestClose().
  • В WebGPU добавлена поддержка 3D-текстур, сжатых с использованием форматов BC и ASTC. Также добавлен экспериментальный (Origin Trial) режим обеспечения совместимости, предоставляющий урезанный API WebGPU, пригодный для работы с устаревшими графическими API, такими как OpenGL и Direct3D11.
  • Для SVG-элементов ‹script› (SVGScriptElement) добавлена поддержка атрибута «async» для выполнения скриптов в асинхронном режиме.
  • Для усложнения пассивной идентификации экземпляра браузера в HTTP-заголовке Accept-Language теперь перечисляются не все выбранные пользователем языки, а только наиболее приоритетные языки.
  • Добавлен экспериментальный (Origin trials) API [[https://chromestatus.com/feature/5134603979063296]] Prompt, предоставляющий вызовы для взаимодействия с большими языковыми моделями, используя в запросах текст, изображения и звуковой ввод. Результат возвращается в удобном для разбора структурированном виде. Среди примеров использования упоминаются генерация описания изображений, визуальный поиск, транскрибирование речи, классификация звуков, генерация текста по заданной инструкции и извлечение информации из текста.
  • В инструментах для web-разработчиков проведена работа
    по устранению известных проблем функциональностью и недоработок в интерфейсе пользователя. Благодаря проделанной работе, число открытых уведомлений о проблемах сокращено на 27%. Во встроенный AI-ассистент добавлена поддержка загрузки произвольных изображений. В панели инспектирования сети реализована поддержка добавления столбцов для отображения состояния произвольных HTTP-заголовков.

  • Прекращена поддержка операционной системы macOS 11, для работы теперь требуется как минимум выпуск macOS 12.
  • В версии для Android прекращена поддержка платформ Android 8 (Oreo) и Android 9 (Pie).

Кроме нововведений и исправления ошибок в новой версии устранены 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».

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