Chrome 138 бета

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

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

CSS и UI

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

Ключевое слово CSS stretch sizing

Ключевое слово для свойств CSS-размеров (например, width и height ), позволяющее элементам увеличиваться в размерах, точно заполняя доступное пространство содержащего их блока. Оно похоже на 100% , за исключением того, что результирующий размер применяется к полю отступов элемента, а не к полю, указанному с помощью box-sizing . Использование этого ключевого слова позволяет элементу сохранять свои поля, оставаясь при этом максимально большим.

Функции abs() и sign() связанные со знаком, вычисляют различные функции, зависящие от знака их аргумента.

CSS-переменная окружения для масштабирования шрифта на уровне операционной системы.

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

CSS-функции ` sibling-index() и sibling-count()

Функции sibling-index() и sibling-count() можно использовать в качестве целых чисел в значениях свойств CSS для стилизации элемента в зависимости от его положения среди соседних элементов или общего количества соседних элементов соответственно. Эти функции можно использовать непосредственно как целочисленные значения, но что более интересно, внутри выражений calc() .

li {
  animation-delay: calc(0.1s * sibling-index());
}

Функциональная запись прогресса интерполяции: функция CSS progress()

Функция progress() — это математическая функция, которая возвращает <number> значение, представляющее позицию одного вычисления (значение прогресса) между двумя другими вычислениями (начальное значение прогресса и конечное значение прогресса).

API перечисления сегментов области просмотра

API сегментов области просмотра позволяет разработчикам адаптировать макет веб-страницы для использования на складных устройствах. Сегменты области просмотра определяют положение и размеры логически отдельной области области просмотра. Сегменты области просмотра создаются, когда область просмотра разделена одним или несколькими аппаратными элементами (такими как сгиб или шарнир между отдельными дисплеями), которые действуют как разделитель; сегменты — это области области просмотра, которые разработчик может рассматривать как логически отдельные.

Веб-API

Добавить поддержку метаданных об ориентации видеокадров в веб-кодеки.

Вводит значения rotation: int и flip: bool в различные интерфейсы, связанные с видео, в WebCodecs, чтобы разработчики могли работать с источниками кадров, имеющими ориентацию (например, камеры Android и некоторые медиафайлы). Интерфейс VideoFrame расширяет возможности создания VideoFrames с произвольным поворотом и отражением, а также предоставляет методы доступа к этой информации в объекте VideoFrame . Объект VideoDecoderConfig получает поля rotation и flip , которые автоматически генерируются декодированными объектами VideoFrame. Класс VideoEncoder получает механизмы для передачи информации о повороте и отражении из encode() в VideoDecoderConfig , генерируемый как часть EncodedVideoChunkMetadata . Если encode() вызывается с кадрами с другой ориентацией, будет выброшено исключение nonfatalatal. Метод configure() можно использовать для сброса допустимой ориентации.

API для создания отчетов о сбоях: is_top_level и visibility_state

This feature adds is_top_level and visibility_state string fields to the crash reporting API body that gets sent to the default reporting endpoint for crash reports.

Экранирование символов < и > в атрибутах при сериализации

Экранируйте символы < и > в значениях атрибутов при сериализации. Это снижает риск XSS-атак с изменением значения, которые происходят, когда значение атрибута интерпретируется как токен начального тега после сериализации и повторного анализа.

Политика целостности скриптов

Subresource-Integrity (SRI) позволяет разработчикам убедиться, что загружаемые ими ресурсы действительно являются теми ресурсами, которые они загружают. Однако в настоящее время нет способа гарантировать, что все их скрипты проверены с помощью SRI. Заголовок Integrity-Policy дает разработчикам возможность утверждать, что каждый ресурс определенного типа должен быть проверен на целостность. Если попытка загрузки ресурса этого типа будет предпринята без метаданных целостности, эта попытка завершится неудачей и вызовет сообщение о нарушении.

Предсказуемая заявленная квота на хранение

API оценки StorageManager выдает прогнозируемый объем хранилища для сайтов, не имеющих неограниченных прав доступа к хранилищу. С помощью полученного объема хранилища можно определить режим просмотра пользователя, поскольку в режиме инкогнито доступное пространство значительно меньше, чем в обычном режиме.

Это мера, предотвращающая определение режима просмотра пользователя с помощью API хранилища путем установки искусственной квоты, равной значению usage + min(10 GiB, disk rounded to nearest 1 GiB), для всех режимов просмотра на сайтах с ограниченными правами доступа к хранилищу. Сайты с неограниченными правами доступа к хранилищу останутся без изменений. Принудительное ограничение квоты также останется без изменений.

событие pushsubscriptionchange при повторной подписке

Событие pushsubscriptionchange в сервис-воркерах срабатывает, когда источнику, для которого ранее существовала подписка на push-уведомления, но которая была отозвана из-за изменения разрешений (с предоставленных на запрещенные/по умолчанию), повторно предоставляется разрешение на отправку уведомлений. Событие будет срабатывать с пустыми значениями oldSubscription и newSubscription .

Правила спекулятивного выполнения: добавьте prefetchCache и prerenderCache в заголовок Clear-Site-Data

Для оптимизации очистки кэша предварительной отрисовки и предварительной выборки разработчикам добавлены два новых значения в заголовок Clear-Site-Data : prefetchCache и prerenderCache . Их можно отправлять в любых запросах, и они не обязательно должны быть отправлены в запросе документа (например, их можно возвращать в ответах на вызовы API добавления в корзину или входа и выхода из системы, чтобы исключить предположения об изменении состояния).

Правила спекулятивного прогнозирования: поле target_hint

Это расширяет синтаксис правил спекулятивного отображения, позволяя разработчикам указывать поле target_hint . Это поле предоставляет подсказку, указывающую на целевой навигационный элемент, где в конечном итоге будет активирована предварительно отрисованная страница. Если в качестве подсказки указано _blank , предварительно отрисованная страница может быть активирована для навигационного элемента, открытого с помощью window.open() . Поле не поддерживается для предварительной загрузки.

Строгая политика "один источник" для API доступа к хранилищу.

Вносит изменения в семантику API доступа к хранилищу, чтобы строго соответствовать политике одного источника в отношении безопасности. То есть, использование document.requestStorageAccess() во фрейме по умолчанию прикрепляет файлы cookie только к запросам к источнику iframe (а не к сайту).

API сумматора

JavaScript API для создания сводок входного текста, основанный на языковой модели ИИ. От браузеров и операционных систем все чаще ожидается доступ к языковой модели. Предоставляя доступ к этой встроенной модели, мы избавляем каждый веб-сайт от необходимости загружать собственную многогигабайтную языковую модель или отправлять входной текст сторонним API. В частности, API для создания сводок предоставляет высокоуровневый API для взаимодействия с языковой моделью с целью создания сводок для различных сценариев использования, не зависящих от конкретной языковой модели. Доступна корпоративная политика ( GenAILocalFoundationalModelSettings ), позволяющая отключить загрузку базовой модели, что сделало бы этот API недоступным.

Подробнее см. в разделе «Создавайте краткие резюме с помощью встроенного ИИ» .

API для определения языка

JavaScript API для определения языка, используемого в определенном тексте, с указанием уровней достоверности. Это важное дополнение к функции определения языка при переводе, и его можно использовать в сочетании с API переводчика . Например, можно получить ввод пользователя на неизвестном языке, определить его язык, а затем перевести на конкретный целевой язык. Хотя браузеры часто уже обладают возможностями определения языка, это предоставляет те же возможности веб-разработчикам с JavaScript API, дополняя API перевода.

Доступна корпоративная политика ( GenAILocalFoundationalModelSettings ), позволяющая отключить загрузку базовой модели, что сделает этот API недоступным.

Подробнее см. в разделе «Определение используемого языка с помощью встроенного ИИ» .

API переводчика

JavaScript API для предоставления возможностей языкового перевода веб-страниц. Хотя браузеры все чаще предлагают пользователям функцию языкового перевода, такие возможности перевода могут быть полезны и веб-разработчикам. Это особенно актуально, когда встроенные функции перевода браузера не помогают, например, в случае с интерактивными сервисами. Для отключения загрузки базовой модели, которая сделала бы этот API недоступным, доступна корпоративная политика ( GenAILocalFoundationalModelSettings ).

Узнайте больше в разделе «Перевод с использованием встроенного ИИ» .

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

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

Веб-последовательный интерфейс через Bluetooth на Android

Эта функция позволяет веб-страницам и веб-приложениям подключаться к последовательным портам через Bluetooth на устройствах Android . Chrome на Android теперь поддерживает Web Serial API через Bluetooth RFCOMM. Существующие корпоративные политики ( DefaultSerialGuardSetting , SerialAllowAllPortsForUrls , SerialAllowUsbDevicesForUrls , SerialAskForUrls и SerialBlockedForUrls ) на других платформах включены в состояниях future_on для Android. Все политики, кроме SerialAllowUsbDevicesForUrls , будут включены после включения этой функции. SerialAllowUsbDevicesForUrls будет включена в одном из будущих запусков после того, как Android обеспечит системную поддержку проводных последовательных портов.

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

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

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

Устаревать асинхронное удаление диапазонов для расширений источников мультимедиа.

The Media Source standard long ago changed to disallow ambiguously defined behavior involving asynchronous range removals:

  • SourceBuffer.abort() больше не прерывает операции SourceBuffer.remove() .
  • Установка MediaSource.duration больше не позволит обрезать текущий буферизованный медиафайл.

Теперь в обоих этих случаях будут применяться исключения.

Удалить резервный вариант SwiftShader

Автоматический переход на WebGL с использованием программного рендерера SwiftShader устарел, и создание контекста WebGL будет завершаться ошибкой вместо возврата к SwiftShader. Это было сделано по двум основным причинам:

  1. SwiftShader is a high security risk due to JIT-ed code running in Chromium's GPU process.
  2. Пользователи сталкиваются с проблемами при переключении с высокопроизводительного WebGL на основе графического процессора на реализацию на основе центрального процессора. Пользователи не могут контролировать это поведение, и его сложно описать в отчетах об ошибках.

В период устаревания этой функции в консоли инструментов разработчика Chrome будет появляться предупреждение при создании контекста WebGL, использующего SwiftShader. Передача параметра --enable-unsafe-swiftshader устранит это предупреждение.