Chrome 139 бета

Опубликовано: 25 июня 2025 г.

Если не указано иное, следующие изменения относятся к новейшей бета-версии Chrome для Android, ChromeOS, Linux, macOS и Windows. Подробнее о перечисленных здесь функциях можно узнать по предоставленным ссылкам или из списка на ChromeStatus.com. Chrome 139 находится в бета-версии по состоянию на 25 июня 2025 года. Вы можете загрузить последнюю версию на Google.com для настольных компьютеров или в Google Play Store для Android.

CSS

В этом релизе добавлены шесть новых функций CSS и пользовательского интерфейса.

Замыкание функций var() и attr()

Если резервный вариант не используется, функции var() и attr() вычисляются без поиска циклов в этом резервном варианте. Следующий CSS работает, потому что существуют --green и --blue .

--green: green;
--blue: blue;
--a: var(--green, var(--b));
--b: var(--blue, var(--a));

Свойство CSS caret-animation

Chrome уже поддерживал анимацию с помощью свойства caret-color , но при анимации стандартное мигание курсора мешало работе анимации. Свойство CSS caret-animation имеет два возможных значения: auto и manual , где auto означает значение по умолчанию для браузера (мигание), а manual означает, что анимацией курсора управляет веб-разработчик. Это свойство также позволяет пользователям отключать мигание с помощью пользовательской таблицы стилей.

Формирование углов

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

Продолжайте выполнение переходов при переключении на начальное значение перехода.

Изменение свойств, связанных с переходом, должно влиять только на вновь запущенные переходы. Это означает, что если вы измените свойства перехода, то, если вы не измените также свойства, имеющие активные анимации перехода, эти анимации перехода будут продолжаться с ранее указанной длительностью, сглаживанием и т. д. Blink некорректно отменял переходы, когда свойство перехода было установлено на «none», даже если он не отменяет их, если вы изменяете только длительность перехода. Благодаря этой функции Blink будет работать согласованно с Webkit и Gecko, позволяя активным переходам продолжаться до тех пор, пока значение их свойства не изменится, вызвав обновление нового перехода.

Пользовательские функции CSS

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

@function --negate(--value) {
result: calc(var(--value) * -1);
}

div {
--gap: 1em;
margin-top: --negate(var(--gap));
}

Поддержка width и height в качестве атрибутов отображения для вложенных элементов <svg>

Поддерживается применение width и height в качестве атрибутов представления к вложенным элементам <svg> как через разметку SVG, так и через CSS. Такой двойной подход обеспечивает еще большую гибкость, позволяя более эффективно управлять и стилизовать элементы SVG в сложных проектах.

Веб-API

Манифест веб-приложения: указать возможность обновления, URL-адреса значков неизменяемы. Cache-Control: immutable

Укажите алгоритм проверки возможности обновления в спецификации манифеста. Это сделает процесс обновления более детерминированным и предсказуемым, предоставив разработчикам больший контроль над тем, следует ли (и когда) применять обновления к существующим установкам, а также позволит отказаться от «ограничения проверки обновлений», которое в настоящее время приходится реализовывать пользовательским агентам, чтобы избежать нерационального использования сетевых ресурсов.

Улучшения производительности технологии определения глубины WebXR

Представлены несколько новых механизмов для настройки поведения функции определения глубины в рамках сеанса WebXR с целью повышения производительности генерации или потребления буфера глубины. Ключевые механизмы включают: возможность запроса необработанного или сглаженного буфера глубины, возможность запроса на прекращение или возобновление предоставления буфера глубины средой выполнения, а также возможность предоставления буфера глубины, который не совпадает точно с областью обзора пользователя, чтобы пользовательскому агенту не приходилось выполнять ненужные перепроецирования в каждом кадре.

Разрешить использование большего количества символов в API DOM JavaScript.

HTML-парсер всегда (или долгое время) допускал наличие у элементов и атрибутов широкого спектра допустимых символов и имен, но JavaScript DOM API, создающие те же элементы и атрибуты, более строги и не соответствуют требованиям парсера. Это изменение ослабляет проверку JavaScript DOM API, чтобы она соответствовала требованиям HTML-парсера.

команда вызова request-close

Диалоговые элементы можно закрыть различными способами, но иногда разработчикам необходимо иметь возможность предотвратить закрытие. Для этого диалоги инициируют событие отмены. Изначально это событие инициировалось только при запросе на закрытие (например, при нажатии клавиши Esc ), но недавно была добавлена ​​функция JavaScript ` requestClose() , которая также инициирует событие отмены. Команда request-close добавляет эту новую возможность в API декларативных команд вызывающего окна.

WebGPU: поддержка 3D-текстур для форматов сжатия BC и ASTC.

Функции texture-compression-bc-sliced-3d и texture-compression-astc-sliced-3d WebGPU добавляют поддержку 3D-текстур для форматов сжатия BC и ASTC соответственно.

Безопасное подтверждение платежа: ключи, привязанные к браузеру.

Добавляет дополнительную криптографическую подпись к подтверждениям безопасных платежей и созданию учетных данных. Соответствующий закрытый ключ не синхронизируется между устройствами. Это помогает веб-разработчикам соответствовать требованиям к привязке устройств для платежных транзакций.

Безопасное подтверждение платежа: обновление пользовательского интерфейса.

Обновлены элементы пользовательского интерфейса диалогового окна SPC в Android Chrome. Помимо улучшения пользовательского интерфейса, добавляются следующие элементы:

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

core-features-and-limits WebGPU

Функция core-features-and-limits означает, что адаптер и устройство WebGPU поддерживают основные характеристики и ограничения спецификации.

Приоритетное решение проблемы с привязкой к прокрутке

В настоящее время алгоритм привязки при прокрутке выбирает приоритетные кандидаты, если они доступны в качестве целевых элементов привязки. В настоящее время приоритетными кандидатами являются сфокусированный редактируемый элемент и выделения, отображаемые при поиске на странице. Это может привести к неоптимальному пользовательскому опыту, если имеется большой сфокусированный редактируемый элемент, содержимое которого изменяется за пределами экрана (в результате курсор смещается). Это исправление изменяет алгоритм: вместо выбора приоритетного кандидата в качестве привязки, используется кандидат в качестве области видимости или корня обычного алгоритма выбора привязки, который выбирает в качестве привязки самый глубокий элемент на экране.

Поддержка атрибута async для элементов SVG <script>

В интерфейсе SVGScriptElement в SVG 2.0 появился атрибут async , аналогичный HTMLScriptElement . Этот атрибут позволяет выполнять скрипты асинхронно, повышая производительность и отзывчивость веб-приложений, использующих SVG.

API веб-речи на устройстве

Эта функция добавляет поддержку распознавания речи на устройстве к Web Speech API, позволяя веб-сайтам гарантировать, что ни аудио, ни расшифрованная речь не будут отправляться в сторонний сервис для обработки. Веб-сайты могут запрашивать информацию о доступности распознавания речи на устройстве для конкретных языков, предлагать пользователям установить необходимые ресурсы для распознавания речи на устройстве и выбирать между распознаванием речи на устройстве или в облаке по мере необходимости.

Очистить window.name для межсайтовой навигации, которая переключает группу контекста просмотра.

В настоящее время значение свойства window.name сохраняется на протяжении всего времени существования вкладки, даже при навигации, переключающей группы контекста просмотра, что может привести к утечке информации и потенциально использоваться в качестве вектора отслеживания. Очистка свойства window.name решает эту проблему. Это должно быть изменением с низким риском, поскольку поиск контекста просмотра по имени уже не работает, если он находится в другой группе контекста просмотра, поэтому имя фактически бесполезно.

Корпоративная политика: ClearWindowNameCrossSiteBrowsing (перестанет работать в Chrome 142).

Расширения области действия веб-приложения

Добавляет поле в манифест веб-приложения "scope_extensions" , позволяющее веб-приложениям расширять свою область действия на другие источники.

Это позволяет сайтам, контролирующим несколько поддоменов и доменов верхнего уровня, представляться как единое веб-приложение. Требуется подтверждение связи указанных источников с веб-приложением с помощью конфигурационного файла .well-known/web-app-origin-association .

Определение MIME-типа JSON, соответствующее спецификации.

Теперь Chromium распознает все допустимые MIME-типы JSON, определенные спецификацией WHATWG mimesniff. Это включает в себя любой MIME-тип, подтип которого заканчивается на +json , в дополнение к традиционным application/json и text/json . Это изменение гарантирует, что веб-API и функции, использующие распознавание JSON, будут работать согласованно со стандартом веб-платформы и другими браузерами. Ключевой причиной этого изменения является исправление поведения импорта модулей JSON, где ранее допустимые MIME-типы JSON, такие как text/html+json и image/svg+json не загружались в качестве модулей.

API частной агрегации: отчеты об ошибках агрегации.

При использовании API частной агрегации может возникать ряд ошибок. Например, может исчерпаться бюджет конфиденциальности, что предотвратит дальнейшие публикации в виде гистограмм. Эта функция позволяет разработчикам регистрировать публикации в виде гистограмм, которые должны отправляться только при возникновении определенного типа ошибки. Эта функция поддерживает измерение частоты возникновения ошибок и разделение этих измерений по соответствующим параметрам, указанным разработчиком (например, версия развернутого кода). Поскольку сами ошибки могут представлять собой информацию, относящуюся к нескольким сайтам, мы не можем просто отображать ее на странице для пользователей без сторонних файлов cookie. Вместо этого эта функция использует существующие конвейеры агрегированной отчетности с шумом через службу агрегации.

API для отправки отчетов о сбоях: укажите параметр crash-reporting, чтобы получать только отчеты о сбоях.

Эта функция гарантирует, что разработчики будут получать только отчеты о сбоях, указав конечную точку с именем crash-reporting . По умолчанию отчеты о сбоях доставляются на конечную точку default , которая принимает множество других типов отчетов, помимо отчетов о сбоях. Разработчики могут указать отдельный URL-адрес для известной конечной точки с именем crash-reporting , чтобы направлять отчеты о сбоях туда, вместо конечной точки default .

Уменьшить количество отпечатков пальцев в информации заголовка Accept-Language

Уменьшается объем информации, которую строковое значение заголовка Accept-Language раскрывает в HTTP-запросах и в navigator.languages . Вместо отправки полного списка предпочитаемых пользователем языков в каждом HTTP-запросе с помощью заголовка Accept-Language , теперь мы отправляем наиболее предпочитаемый пользователем язык в заголовке Accept-Language . Для минимизации рисков совместимости при первоначальном запуске объем информации в заголовке HTTP уменьшается, а в будущем мы уменьшим количество связанных с navigator.languages ​​JavaScript-геттеров.

Вместо генерации исключения для заблокированного обработчика CSP, следует генерировать событие ошибки.

В настоящее время Chrome, когда блокировка осуществляется политикой безопасности контента (CSP), генерирует исключение SecurityError в конструкторе объектов Worker и SharedWorker. Спецификация требует проверки CSP в процессе получения данных и запуска событий ошибок асинхронно, вместо того чтобы генерировать исключение при выполнении скрипта new Worker(url) или new SharedWorker(url) . Это изменение делает спецификацию Chrome соответствующей требованиям: исключение не генерируется в конструкторе, а события ошибок запускаются асинхронно.

Уровень звука для кадров, закодированных в RTC

Предоставляет в сеть информацию об уровне звука закодированного кадра, передаваемого с помощью RTCPeerConnection и отображаемого с использованием WebRTC Encoded Transform.

Новые испытания происхождения

В Chrome версии 139 вы можете принять участие в следующих новых пробных версиях Origin .

API подсказок

API Prompt предназначен для взаимодействия с языковой моделью ИИ с использованием текстовых, графических и аудиовходов. Он поддерживает различные сценарии использования, от генерации подписей к изображениям и выполнения визуального поиска до транскрипции аудио, классификации звуковых событий, генерации текста в соответствии с конкретными инструкциями и извлечения информации или аналитических выводов из текста. Он поддерживает структурированные выходные данные , которые гарантируют соответствие ответов предопределенному формату, обычно выраженному в виде схемы JSON, для повышения соответствия ответов и обеспечения бесшовной интеграции с приложениями, требующими стандартизированных форматов вывода. Этот API также доступен в расширениях Chrome. Данная пробная версия предназначена для веб-доступа.

Атрибут блокировки рендеринга с полной частотой кадров

Мы предлагаем добавить новый токен блокировки рендеринга — full-frame-rate — в атрибуты блокировки. Когда рендерер блокируется с помощью токена full-frame-rate, он будет работать с более низкой частотой кадров, чтобы зарезервировать больше ресурсов для загрузки.

Режим совместимости WebGPU

Добавляет опциональный, слегка ограниченный подмножество API WebGPU, способное запускать более старые графические API, такие как OpenGL и Direct3D11. Выбрав этот режим и соблюдая его ограничения, разработчики могут расширить охват своих приложений WebGPU на множество старых устройств, не имеющих современных, явно заданных графических API, необходимых для ядра WebGPU. Для простых приложений требуется лишь указать параметр featureLevel "compatibility" при вызове requestAdapter . Для более сложных приложений могут потребоваться некоторые изменения для учета ограничений этого режима. Поскольку режим совместимости является подмножеством, результирующие приложения также являются допустимыми приложениями ядра WebGPU и будут работать даже на пользовательских агентах, не поддерживающих режим совместимости.

Амортизация и удаление

В этой версии Chrome представлены перечисленные ниже устаревшие и удаленные функции. Для получения списков запланированных, текущих и ранее удаленных функций посетите сайт ChromeStatus.com.

В этой версии Chrome удалены две функции.

Прекратить поддержку macOS 11

Chrome 138 — последняя версия, поддерживающая macOS 11. Начиная с Chrome 139, поддержка macOS 11 прекращена, поскольку срок поддержки Apple для этой операционной системы уже истёк. Для обеспечения безопасности необходимо использовать поддерживаемую операционную систему. На компьютерах Mac под управлением macOS 11 Chrome продолжит работать, отображая предупреждающую информационную панель, но обновления больше не будут выполняться. Если пользователь хочет обновить Chrome, ему необходимо обновить свой компьютер до поддерживаемой версии macOS. Для новых установок Chrome 139 и выше потребуется macOS 12 или более поздняя версия.

Отключить автоматическое определение кодировки ISO-2022-JP в HTML

Известны проблемы безопасности, связанные с автоматическим определением кодировки ISO-2022-JP. Учитывая очень низкий уровень использования и отсутствие поддержки автоматического определения ISO-2022-JP в Safari, Chrome удаляет эту функцию, чтобы устранить проблемы безопасности.