Маскирование 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 из одного и того же происхождения.