Хром 122 бета

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

CSS

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

Запросы CSS @container с неподдерживаемыми функциями никогда не совпадают

Селекторы @container , содержащие неподдерживаемые запросы, никогда не будут выбирать контейнеры, то есть они никогда не будут совпадать.

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

@container (width > 0px) or (unknown) {}

Это недавнее изменение спецификации, призванное избежать проблем прямой совместимости.

Псевдоэлемент CSS ::backdrop , наследуемый от исходного элемента

Псевдоэлемент ::backdrop , используемый для наследования начальных значений. Это означало, что ::backdrop не мог использовать значения пользовательских свойств, если они не указаны непосредственно в правиле ::backdrop . Спецификация теперь изменилась, и теперь ::backdrop наследуется от исходного элемента. Это изменение приводит к тому, что реализация Chrome соответствует новой спецификации.

Условия CSS supports() для @import

@import теперь принимает условие supports() . Если условие supports() не соответствует, импорт не будет получен.

@import "scroll-driven-animations.css" supports(animation-timeline: auto);

Запросы функций для помещения в supports() такие же, как те, которые используются с @supports

Веб-API

API асинхронного буфера обмена: чтение несанкционированного HTML

Добавляет unsanitized параметр в метод read() для получения несанкционированного формата HTML. Если сайты не включают это свойство, чтение из буфера обмена будет очищено.

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

Не удаляйте объекты типа файла в dataTransfer.clearData().

Обновляет Chrome в соответствии со спецификацией , которая указывает, что clearData() не влияет на объекты File. Он удаляет только объекты text типа.

FedCM: отключиться

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

Совместимая отмена события mousedown в iframe

Сделайте цели событий мыши независимыми от отмены события mousedown, когда указатель перетаскивается из iframe. Когда мышь вытаскивается из iframe, все браузеры (включая Chrome) отправляют в iframe события mousemove и mouseup . Однако если событие mousedown отменено, Chrome сегодня поддерживает старое исключение WebKit, согласно которому события mousemove и mouseup отправляются во внешний фрейм. WebKit удалил это исключение в прошлом году, а Mozilla никогда не проявляла такого поведения в последние годы. Эта функция удалит исключение только для Chrome для этого особого случая.

Помощники итератора

Помощники итератора — это новые методы прототипа итератора, позволяющие широко использовать и использовать итераторы.

MessagePort.onclose

Изменение API обмена сообщениями канала, которое уведомляет один из портов сообщений о том, что другой порт распутан. То есть вызывается метод close() , уничтожается документ-должник или порт удаляется сборщиком мусора.

Расширения RTCRtpSender setParameters() для запроса генерации ключевого кадра

Добавляет необязательный второй параметр в вызов RTCRtpSender.setParameters WebRTC, который можно использовать, чтобы попросить связанный кодировщик сгенерировать ключевой кадр.

Установить методы

Методы Set — это новые методы, такие как объединение и пересечение, добавленные во встроенный класс Set в JavaScript.

API сегментов хранилища

Storage Buckets дает сайтам возможность организовывать данные на устройстве в отдельные «корзины», позволяя пользовательским агентам извлекать сгруппированные данные независимо от тех, которые находятся в других корзинах, и позволяя сайтам эргономично управлять семантически связанными данными. Каждый сегмент хранилища может содержать данные, связанные с установленными API-интерфейсами хранилища, такими как IndexedDB и CacheStorage.

URLPattern: hasRegExpGroups

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

Рисование WebGLBufferStorage

WebGL позволяет выполнять рендеринг в текстуры и буферы рендеринга многих различных форматов пикселей. Например, 8-битное, с плавающей запятой и с кодировкой sRGB.

Буфер рисования WebGL (буфер, который передается в наборщик) по умолчанию является 8-битным. Функция DrawingBufferStorage позволяет WebGL настраивать формат пикселей этого буфера рисования, что позволяет разработчикам делать следующее.

  • Избегайте дополнительной копии при преобразовании их рендеринга в формат пикселей буфера рисования по умолчанию.
  • Рисуйте контент с точностью более 8 бит.

Последняя функция открывает несколько дополнительных приложений:

  • Очень широкий цветовой охват без потери точности.
  • Медицинские приложения, требующие точности более 8 бит.
  • Приложения с высоким динамическим диапазоном (при наличии).

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

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

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

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

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

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

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

Зарегистрируйтесь для получения пробной версии расширений области веб-приложений Origin.

Захваченный контроль над поверхностью

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

Зарегистрируйтесь для участия в пробной версии оригинальной версии Captured Surface Control .