Хром 120 бета

Маскирование CSS, смягченные правила вложения CSS, создание шаблонов аккордеона с помощью элемента <details> , действия enterpictureinpicture для API сеанса мультимедиа.

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

CSS

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

Синтаксис CSS <image> для зарегистрированных пользовательских свойств

Поддерживает использование синтаксиса <image> для пользовательских свойств, зарегистрированных с помощью @property или registerProperty() . Синтаксис <image> можно использовать для ограничения значений пользовательского свойства значениями url() и сгенерированными изображениями, такими как градиенты.

Синтаксис CSS <transform-function> и <transform-list> для зарегистрированных пользовательских свойств

Поддерживает использование синтаксиса <transform-function> и <transform-list> для пользовательских свойств, зарегистрированных с помощью @property или registerProperty() .

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

Медиа-запросы: функция сценариев

Функция мультимедиа сценариев используется для запроса, поддерживаются ли языки сценариев, такие как JavaScript, в текущем документе. Допустимые параметры: «включено», «только начальный» и «нет». Однако «только начальный» никогда не совпадает внутри браузера.

:dir() селектор псевдокласса

Селектор псевдокласса CSS :dir() сопоставляет элементы на основе направленности, которая определяется на основе атрибута HTML dir.

:dir(ltr) соответствует направлению текста слева направо. :dir(rtl) соответствует элементам с направлением текста справа налево.

Он не эквивалентен селекторам атрибута [dir] , поскольку он соответствует направлениям, унаследованным от предка с атрибутом dir , а также потому, что он соответствует направлению, вычисленному с помощью dir=auto (который определяет направление от первого символа в тексте с помощью сильная направленность).

Экспоненциальные функции CSS

Добавляет экспоненциальные функции CSS: pow() , sqrt() , hypot() , log() и exp() из спецификации CSS Values ​​and Units Level 4.

CSS-маскировка

CSS- mask и связанные свойства, такие как mask-image и mask-mode используются для скрытия элемента (частично или полностью) путем маскировки или обрезки изображения в определенных точках.

Эта функция удаляет префиксы свойств -webkit-mask* и приводит их в соответствие с текущей спецификацией. Сюда входят mask-image , mask-mode , mask-repeat , mask-position , mask-clip , mask-origin , mask-size и mask-composite , а также сокращение mask . Поддерживаются локальные ссылки mask-image , сериализация теперь соответствует спецификации, а принятые значения теперь соответствуют спецификации (например, add вместо source-over для mask-composite .)

Расслабленная вложенность CSS

Это изменение в реализации вложенности CSS позволяет правилам вложенного стиля начинаться с элемента, например h1 , вместо того, чтобы требовать символ & впереди или заключаться в is() . Следующий пример теперь действителен в спецификации и работает в Chrome 120.

.card {
  h1 {
    /* h1 does not start with a symbol */
  }
}

HTML

Шаблон аккордеона с использованием атрибута имени в <details>

Эта функция добавляет возможность создавать аккордеоны, используя последовательность элементов HTML <details> . Он добавляет атрибут имени к элементу <details> . При использовании этого атрибута несколько элементов <details> с одинаковым именем образуют группу. Одновременно может быть открыт не более одного элемента в группе.

Веб-API

Разрешить передачу ArrayBuffer в конструкторы VideoFrame, AudioData, EncodedVideoChunk, EncodedAudioChunk, ImageDecoder

Это позволит отсоединить буферы массива и использовать соответствующие буферы внутри VideoFrame, ImageDecoder, EncodedVideoChunk, EncodedAudioChunk, AudioData без копирования.

API загрузки шрифтов CSS FontFaceSet: метод check()

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

Запросы на закрытие и CloseWatcher

Запросы на закрытие — это новая концепция, которая включает запросы пользователей на закрытие чего-либо открытого в данный момент с помощью клавиши Esc на рабочем столе или жеста или кнопки «Назад» на Android. Их интеграция в Chrome сопровождается двумя изменениями:

  • CloseWatcher — новый API для непосредственного прослушивания и ответа на запросы закрытия.
  • Обновлены до <dialog> и popover="" для использования новой структуры запросов на закрытие, чтобы они реагировали на кнопку возврата Android.

Выделенные работники и API доступа к хранилищу

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

FedCM: API ошибок и API AutoSelectedFlag

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

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

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

Подробную информацию можно найти в блоге FedCM Chrome 120 .

Обновления функциональности Fenced Frames

В API Protected Audience API в Privacy Sandbox есть дополнительная опция формата для макросов размера объявлений Protected Audience . Функция подписки позволяет использовать макросы для указания размера объявления, выигравшего аукцион, в URL-адресе объявления, например:

https://ad.com?width={/%AD_WIDTH%}&height={/%AD_HEIGHT%}

Чтобы быть более совместимым с другими типами макросов в Защищенной аудитории, например с теми, которые используются deprecatedReplaceInURN и registerAdMacro() , в Chrome 120 мы добавляем возможность использовать ${AD_WIDTH} и ${AD_HEIGHT} в качестве формата для макросов в дополнение к текущему формату.

Автоматические маяки теперь будут отправлять сообщения на все зарегистрированные URL-адреса. Раньше только адресаты, указанные при вызове setReportEventDataForAutomaticBeacons() получали автоматические маяки, даже если этот пункт назначения вызывал registerAdBeacon() для reserved.top_navigation в своем рабочем листе. Теперь любой пункт назначения, вызывающий registerAdBeacon() для reserved.top_navigation , получит автоматический маяк, но только пункты назначения, указанные в setReportEventDataForAutomaticBeacons() получат данные автоматического маяка вместе с маяком. Параметр once в setReportEventDataForAutomaticBeacons() теперь будет определять, отправляются ли данные один раз, а не определяет, отправляется ли один раз весь маяк.

Поле прокрутки наблюдателя пересечения

scrollMargin в Intersection Observer позволяет разработчикам наблюдать цели внутри вложенных контейнеров прокрутки, которые в данный момент отсекаются контейнерами прокрутки. Это достигается за счет расширения прямоугольника отсечения контейнера с помощью scrollMargin при вычислении пересечения.

Отчеты о нарушениях политики разрешений

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

Он также включает заголовок Permissions-Policy-Report-Only , который позволяет отправлять отчеты на основе предложенной политики (аналог Content-Security-Policy-Report-Only ), чтобы изменения политики можно было оценить на предмет потенциальных сбоев перед их реализацией. в обычном, принудительном режиме.

API сеанса мультимедиа: действие enterpictureinpicture

Добавляет действие enterpictureinpicture в API сеанса мультимедиа. Веб-сайты могут зарегистрировать обработчик действий, который можно использовать для открытия окна «Картинка в картинке» или «Картинка в картинке документа».

Дополнительную информацию см. в разделе «Автоматическая картинка в картинке для веб-приложений» .

Поддержка WebGPU f16

Позволяет использовать тип f16 с плавающей запятой половинной точности в шейдерах WebGPU (WGSL).

Разработчики могут использовать функцию «shader-f16» из спецификации WebGPU и расширение «f16» из спецификации WGSL для доступа к 16-битным переменным с плавающей запятой и API в своих шейдерах.

MediaCapabilities: поддержка запроса HDR с помощью decodingInfo()

Расширяет API возможностей мультимедиа, позволяя обнаруживать поддержку рендеринга HDR с помощью трех новых полей словаря VideoConfiguration: hdrMetadataType , colorGamut и transferFunction . Chrome реализует свои собственные алгоритмы преобразования тонов, поэтому всегда возвращает значение true для статических метаданных HDR10 (smpteSt2086). Динамические метаданные HDR10+ (smpteSt2094-10) и Dolby Vision (smpteSt2094-40) в настоящее время не поддерживаются, поэтому будет возвращено значение false. Мы ожидаем добавить поддержку динамических метаданных в будущем, поэтому этот API позволит разработчикам выбирать подходящий контент для пользователей, у которых есть поддержка.

Статистика MediaStreamTrack (видео)

API, который предоставляет счетчики кадров (доставленных, отброшенных, общих) для видео MediaStreamTracks. Статистика звука будет включена в отдельную функцию Chrome.

Private Aggregation API: выбор координатора агрегации

Модификация API частного агрегирования, обеспечивающая механизм выбора координатора, который будет использоваться для шифрования полезных данных (из списка разрешений, указанного поставщиком). Выбор сервиса осуществляется с помощью дополнительной опции в вызовах run() и selectURL() SharedStorage, а также в вызовах runAdAuction() и joinAdInterestGroup() Protected Audience. Широкий подход во многом соответствует подходу API отчетов по атрибуции.

API статуса входа в FedCM

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

Это используется FedCM для борьбы с тихой временной атакой и при этом позволяет FedCM работать вообще без сторонних файлов cookie.

В будущем этот API может стать доступным для большего количества случаев использования.

Подробную информацию можно найти в анонсе в блоге .

Просмотр переходов: сделать обратный вызов необнуляемым

Вызов startViewTransition в настоящее время принимает необязательный тип обратного вызова, допускающий значение NULL, со значением по умолчанию, равным нулю: startViewTransition(optional UpdateCallback? callback = null) .

Эта функция меняет его на тип, не допускающий значения NULL: startViewTransition(optional UpdateCallback callback) .

Инкапсуляция ключей X25519Kyber768 для TLS

Защитите текущий TLS-трафик Chrome от будущего квантового криптоанализа, развернув квантово-устойчивый алгоритм согласования ключей Kyber768. Это гибридное соглашение о ключах X25519 + Kyber768, основанное на стандарте IETF. Эта спецификация и запуск выходят за рамки W3C. Это соглашение о ключах будет реализовано как шифр TLS и должно быть прозрачным для пользователей.

Испытания происхождения продолжаются

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

заголовок HTTP-запроса «приоритет»

Эта функция добавляет заголовок priority запроса для всех HTTP-запросов с информацией о приоритете запроса на момент его отправки.

RFC 9218 (Расширяемая схема приоритезации для HTTP) определяет «приоритетный» заголовок HTTP-запроса, который используется для сигнализации приоритета запроса источникам (и посредникам). Он также определяет процессы согласования и кадры уровня протокола для HTTP/2 и HTTP/3 для передачи одинаковой информации о приоритете. Заголовок может сигнализировать о первоначальном приоритете ресурса только при первом запросе, в то время как механизмы на основе кадров позволяют изменять приоритет постфактум. Заголовок может работать от начала до конца с исходными серверами (и предоставлять источнику механизм переопределения приоритета, если он распознан посредниками), в то время как кадры ограничены работой на канальном уровне. Эта функция предназначена специально для поддержки схемы приоритизации на основе заголовка.

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

Разрешение на доступ к частной сети для облегчения смешанного контента

Чтобы установить соединения с устройствами в локальной сети, которые не имеют глобально уникальных имен и, следовательно, не могут получить сертификаты TLS, эта функция представляет новую опцию fetch() , чтобы объявить о намерении разработчика связаться с таким устройством, новая функция, контролируемая политикой, для ограничения доступа каждого сайта к этой возможности, а также новые заголовки для предполетного ответа сервера для предоставления дополнительных метаданных.

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

Неограниченный доступ к Performance.measureUserAgentSpecificMemory()

Performance.measureUserAgentSpecificMemory() указан как доступный только в изолированных средах с несколькими источниками (за COOP/COEP). Эта функция снимает ограничение COOP/COEP, позволяя проводить регрессионные тесты и измерять влияние, когда невозможно полностью развернуть COOP/COEP. Обратите внимание, что Performance.memory (устаревший API) нельзя использовать для этой цели, поскольку он никогда не был включен для рабочих процессов.

Performance.measureUserAgentSpecificMemory()

Эта функция добавляет функцию performance.measureUserAgentSpecificMemory() , которая оценивает использование памяти веб-страницей. Чтобы использовать API, веб-сайт должен быть изолирован от перекрестного происхождения.

Устаревания и удаления

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

В этом выпуске Chrome исключена одна функция.

Устареть и удалить поддержку Theora

Chrome прекратит поддержку видеокодека Theora и прекратит поддержку видеокодека Theora в настольном Chrome из-за возникающих угроз безопасности. Низкое (и теперь часто неправильное) использование Theora больше не оправдывает поддержку для большинства пользователей.

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

Удаление данных: URL-адрес в SVGUseElement

Присвоение данных: URL-адрес в SVGUseElement может вызвать XSS. И это также привело к обходу Trusted Types. Поэтому мы планируем объявить его устаревшим и прекратить его поддержку.

Удалить общее принудительное применение одного и того же происхождения в CSPEE.

Удаляет специальную обработку для iframe одного и того же происхождения из CSP Embedded Enforcement. Это согласует поведение принудительного применения CSP Embedded Enforcement для iframe из разных источников и iframe из одного и того же происхождения.