Хром 123 бета

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

CSS

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

Функция цвета CSS light-dark()

Функция light-dark() в CSS позволяет разработчикам легче адаптировать цветовую схему к предпочтениям пользователя для светлого или темного режима.

Используйте light-dark() , чтобы указать два разных значения цвета в одном свойстве CSS. Браузер (или устройство) автоматически выберет подходящий цвет на основе вычисленного значения color-scheme элемента. Например, с помощью следующего CSS:

  • Если пользователь выбрал светлую тему, элемент .target будет иметь салатовый фон.
  • Если пользователь выбрал темную тему, элемент .target будет иметь зеленый фон.
html {
  color-scheme: light dark;
}
.target {
    background-color: light-dark(lime, green);
}

Режим отображения CSS «картинка в картинке»

Добавляет поддержку мультимедийной функции display-mode CSS для значения picture-in-picture . Это позволяет веб-разработчикам писать определенные правила CSS, которые применяются только тогда, когда (часть) веб-приложения отображается в режиме «картинка в картинке».

Подробную информацию об этой мультимедийной функции можно найти в документации «картинка в картинке» .

CSS-свойство align-content для блоков

CSS align-content теперь поддерживается в блочных контейнерах и ячейках таблиц. Ранее это свойство поддерживалось только для элементов сетки и гибких элементов. Например, display: block , display: list-item и display: table-cell теперь можно выровнять с помощью align-content .

Узнайте больше в разделе Поддержка align-content в макетах блоков и таблиц .

CSS-свойство field-sizing

Используя свойство field-sizing , разработчики могут отключить фиксированные размеры элементов управления формы по умолчанию и сделать их размер зависимым от их содержимого. Это дает возможность создавать автоматически увеличивающиеся текстовые поля.

Свойство CSS text-spacing-trim

Это свойство применяет кернинг к китайским, японским и корейским символам пунктуации (CJK) для создания визуально приятной типографики, как определено JLREQ (Требования к макету текста на японском языке) и CLREQ (Требования к макету текста на китайском языке).

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

Свойство text-spacing-trim принимает одно из следующих четырех значений: normal , trim-start , space-all и space-first . Узнайте больше в статье «Представляем четыре новые международные функции CSS» .

Веб-API

Разрешить создание учетных данных WebAuthn в iframe из разных источников.

Эта функция позволяет веб-разработчикам создавать учетные данные WebAuthn (то есть учетные данные «открытого ключа», известные как ключи доступа) в iframe с разными источниками. Для этой новой способности необходимы два условия:

  • В iframe предусмотрена политика разрешений publickey-credentials-create-feature .
  • iframe имеет временную пользовательскую активацию.

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

Пакет функций отчетов по атрибуции

В Chrome 123 добавлена ​​настройка триггерных данных и фильтры агрегированных значений в API отчетов по атрибуции, ориентированные на:

  • Дополнительные возможности настройки API для отчетов на уровне событий за счет поддержки настройки количества и значений триггерных данных.
  • Дополнительные возможности настройки API для сводных отчетов за счет поддержки фильтров в агрегируемых значениях.

Измерение межприложенной и веб-атрибуции

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

Предложение здесь использует поддержку атрибуции на уровне ОС. В частности, это дает разработчику возможность разрешить объединение событий в мобильном Интернете с событиями в Privacy Sandbox Android, хотя также может быть реализована поддержка других платформ.

blocking=render в скриптах встроенного модуля

Это небольшое изменение, которое убирает искусственное ограничение из <script blocking="render"> . До этого изменения <script blocking="render"type="module"> требовал атрибут src , даже если этот src является URI данных. Это ненужное ограничение, поскольку скрипты встроенных модулей, которые импортируют другие скрипты, по-прежнему должны иметь возможность блокировать рендеринг.

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

Документ «картинка в картинке»: разрешите API focus() фокусировать открывающее окно.

Теперь вы можете использовать opener.focus() из окна «картинка в картинке» документа, чтобы переместить фокус на уровне системы на вкладку, которой принадлежит окно «картинка в картинке» документа.

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

Импортировать атрибуты with синтаксисом

Атрибуты импорта — это функция JavaScript, позволяющая комментировать объявления импорта, например import xxx from "mod" with { type: "json" } . Первоначально Chrome поставлял предыдущую версию предложения (в Chrome 91) с использованием assert в качестве ключевого слова. Затем эта версия была обновлена ​​для использования with связи с некоторыми изменениями, необходимыми при ее интеграции с HTML для модулей JSON и CSS.

джиттерБуферЦель

Атрибут jitterBufferTarget позволяет приложениям указывать целевую продолжительность времени в миллисекундах для хранения буфера дрожания RTCRtpReceiver . Это влияет на объем буферизации, выполняемой пользовательским агентом, что, в свою очередь, влияет на повторную передачу и восстановление потерянных пакетов. Изменение целевого значения позволяет приложениям контролировать компромисс между задержкой воспроизведения и риском нехватки аудио- или видеокадров из-за дрожания сети.

Длинный кадр анимации

API Long Animation Frames является расширением API Long Tasks . Он измеряет задачу вместе с ее последующим обновлением рендеринга, добавляя такую ​​информацию, как длительные сценарии выполнения, время рендеринга и время, потраченное на принудительное размещение и стиль, известное как перебор макета .

Разработчики могут использовать это как диагностику «медленности», измеряемой INP , путем обнаружения причин перегрузки основного потока, которая часто является причиной плохого INP.

Интерфейс NavigationActivation добавляет navigation.activation . Здесь сохраняется состояние о том, когда текущий документ был активирован (например, когда он был инициализирован или восстановлен из обратного/прямого кэша).

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

событие показа страницы

Событие pagereveal вызывается для объекта окна документа при первой возможности отрисовки после того, как документ: первоначально загружен, восстановлен из обратного кэша или активирован из предварительной отрисовки.

Автор страницы может использовать его для настройки входа на страницу, например перехода представления из предыдущего состояния.

PointerEvent.deviceId для рукописного ввода несколькими перьями

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

Проверки доступа к частной сети на предмет навигационных запросов: режим только с предупреждением

Прежде чем веб-сайт A перейдет на другой сайт B в частной сети пользователя, эта функция выполняет следующее:

  1. Проверяет, был ли запрос инициирован из безопасного контекста.
  2. Отправляет предполетный запрос и проверяет, отвечает ли B заголовком, разрешающим доступ к частной сети.

Уже есть функции для субресурсов и воркеров, но это дополнение предназначено специально для запросов навигации.

Эти проверки выполняются для защиты частной сети пользователя. Поскольку эта функция работает в режиме «только предупреждение», она не отклонит запросы, если какая-либо из проверок не пройдена. Вместо этого в DevTools будет показано предупреждение, которое поможет разработчикам подготовиться к предстоящему внедрению мер.

Подсказка клиента Sec-CH-UA-Form-Factor

Эта подсказка указывает «форм-фактор» пользовательского агента или устройства, чтобы сайт мог адаптировать свой ответ.

API статической маршрутизации Service Worker

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

Обновление общего хранилища

Это обновление поддерживает запуск рабочих программ с перекрестным происхождением без необходимости создания iframe.

zstd Content-Encoding

Zstandard, или zstd, — это механизм сжатия данных, описанный в RFC8878. Это быстрый алгоритм сжатия без потерь, предназначенный для сценариев сжатия в реальном времени на уровне zlib и лучших коэффициентов сжатия. Токен zstd был добавлен как зарегистрированный в IANA токен кодирования контента.

Добавление поддержки zstd в качестве кодировки контента поможет быстрее загружать страницы и использовать меньше пропускной способности, а также тратить меньше времени, ресурсов ЦП и мощности на сжатие на наших серверах, что приведет к снижению затрат на сервер.

Новые испытания происхождения

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

WebAssembly обещает интеграцию JavaScript

Для поддержки адаптивных приложений, написанных с использованием WebAssembly, необходимо предоставить функции, позволяющие приостанавливать и возобновлять работу программ WebAssembly.

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

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

Переезды

В Chrome 123 удалена следующая функция.

Псевдоним window-placement для window-management разрешениями и политикой разрешений.

В Chrome 111 window-management было добавлено в качестве псевдонима для разрешений window-placement и строк политики разрешений. Это было частью более масштабных усилий по переименованию строк, в конечном итоге объявив их устаревшими и удалив window-placement . Изменение терминологии увеличивает срок службы дескриптора по мере развития API управления окнами.

Предупреждения об устаревании псевдонима window-placement появились в Chrome 113, и теперь он будет удален.