Маскирование 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 доступа к хранилищу (SAA) на хранилище без файлов cookie
Мы предлагаем расширение 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 из одного и того же происхождения.