Хром 121 бета

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

CSS

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

Наследование выделения CSS

При использовании CSS Highlight Inheritance псевдоклассы CSS Highlight, такие как ::selection и ::highlight , наследуют свои свойства через цепочку псевдовыделений, а не через цепочку элементов. Результатом является более интуитивная модель наследования свойств в выделенных фрагментах.

Это реализует требование спецификации CSS Pseudos Level 4 :

«Когда какому-либо поддерживаемому свойству не присваивается значение каскадом... его указанное значение определяется путем наследования от соответствующего псевдоэлемента выделения родительского элемента исходного элемента».

CSS полосы прокрутки: scrollbar-color и scrollbar-width

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

CSS font-palette для цветных шрифтов

Свойство CSS font-palette позволяет выбрать определенную палитру, используемую для отображения цветового шрифта . Благодаря новой поддержке анимации этого свойства переход между палитрами больше не является дискретным шагом, а становится плавным переходом между двумя выбранными палитрами. Это работает везде в CSS-анимации и переходах.

Возможности орфографии и грамматики CSS

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

Улучшено маскирование CSS для SVG.

Это продолжение улучшенной поддержки масок CSS в Chrome 120, добавляющее новую поддержку масок в SVG (множественные маски, а также mask-mode , mask-composite , mask-position и mask-repeat ). Кроме того, теперь поддерживаются удаленные маски SVG (например, mask: url(masks.svg#star) ).

Отображаемые значения, специфичные для Ruby

Добавлены новые значения свойств отображения CSS, ruby и ruby-text . Значения отображения по умолчанию <ruby> и <rt> изменяются на ruby и ruby-text соответственно, и макет Ruby учитывает эти значения отображения. Веб-авторы могут использовать любые элементы, такие как <div> для рендеринга Ruby, устанавливая новые значения отображения.

Веб-API

Пакет функций отчетов об атрибуции: уменьшенные совокупные задержки, Epsilon-поле отчета на уровне событий, зарезервированные ключи

Chrome включает изменения в API отчетов об атрибуции, направленные на:

  • Сокращение потерь при передаче за счет сокращения совокупных задержек отчетов.
  • Дополнительные возможности настройки API за счет поддержки поля эпсилон для отчетов на уровне событий.
  • Улучшена расширяемость API за счет сбоя регистрации при обнаружении зарезервированных ключей.

API возврата/пересылки notRestoredReason

API notRestoredReason сообщит список причин, по которым страница не обслуживается из bfcache, с помощью API PerformanceNavigationTiming.

Требовать жест пользователя для изменения размера API в документе «картинка в картинке»

Это позволяет использовать методы resizeBy() и resizeTo() в окнах документов «картинка в картинке», но с дополнительным ограничением, требующим жестов пользователя, чтобы снизить вероятность злоупотреблений.

API редактирования контекста

API EditContext упрощает процесс интеграции веб-приложения с расширенными методами ввода текста, такими как написание фигур ВКонтакте, панели рукописного ввода, распознавание речи и композиции IME. Это улучшает доступность и производительность, а также открывает новые возможности для веб-редакторов.

Обнаружение функций для поддерживаемых форматов буфера обмена

Теперь вы можете проверить, поддерживает ли Async Clipboard API определенный тип MIME, вызвав новую функцию supports() , передав тип MIME в качестве аргумента, как, например, ClipboardItem.supports('image/png') .

HTMLSelectElement showPicker()

Метод showPicker() HTMLSelectElement дает разработчикам возможность программно открыть средство выбора параметров элемента <select> , следуя шаблону input.showPicker() .

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

Расширяет API возможностей мультимедиа, позволяя обнаруживать поддержку рендеринга HDR с помощью трех новых полей словаря VideoConfiguration: hdrMetadataType, colorGamut, TransferFunction.

Chromium реализует свои собственные алгоритмы преобразования тонов, поэтому всегда возвращает значение true для статических метаданных HDR10 (smpteSt2086). Динамические метаданные smpteSt2094-40 (HDR10+) и smpteSt2094-10 в настоящее время не поддерживаются, поэтому возвращают false.

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

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

API удаленного воспроизведения на рабочем столе

Этот API расширяет HTMLMediaElement , который позволяет управлять удаленным воспроизведением мультимедиа с веб-страницы. Он поставляется на Android в Chrome 56 и доступен на настольных компьютерах в Chrome 121.

API правил спекуляций

В API правил спекуляции появились новые функции.

Поддержка правил документа: это расширение синтаксиса правил спекуляции, которое позволяет браузеру получать список URL-адресов для спекулятивной загрузки из элементов <a> на странице. Они могут включать критерии, по которым можно использовать эти ссылки. Это, в сочетании с новым полем «жажды» для правил спекуляций, позволяет разработчикам автоматически выполнять предварительную выборку или предварительную отрисовку ссылок на страницах немедленно, при наведении или наведении курсора мыши.

Отдельное изменение позволяет указывать правила спекуляции с помощью HTTP-заголовка ответа Speculation-Rules в качестве альтернативы использованию встроенных элементов <script> . Значением этого заголовка должен быть URL-адрес, указывающий на текстовый ресурс с типом MIME "application/speculationrules+json" . Правила ресурса будут добавлены в набор правил документа.

Наконец, подсказка No-Vary-Search позволяет выполнять спекулятивную предварительную выборку, даже если параметры запроса URL-адреса изменяются. Заголовок ответа HTTP No-Vary-Search заявляет, что некоторые или все части запроса URL-адреса могут игнорироваться для целей сопоставления. Он может объявить, что порядок ключей параметров запроса не должен препятствовать совпадениям, что определенные параметры запроса не должны препятствовать совпадениям или что только определенные известные параметры запроса должны вызывать несоответствия.

Объекты интерфейса SpeechSynthesis и SpeechSynthesisVoice

Добавляет объекты интерфейса для SpeechSynthesis и SpeechSynthesisVoice к уже поддерживаемым функциям. Это делает возможным обнаружение функций с помощью SpeechSynthesisVoice.prototype.

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

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

URLPattern: Наследовать слева, подстановочный знак справа.

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

Компоненты не наследуются от базового URL-адреса, если явно указан «более ранний» компонент. В строковом формате неуказанные «более поздние» компоненты неявно подстановочные, а не должны быть пустыми (за исключением порта, который всегда считается указанным, когда указано имя хоста). Имя пользователя и пароль никогда не указываются и не наследуются неявно.

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

URLPattern: флаг RegExp v вместо u

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

Когда API был впервые реализован, эти регулярные выражения компилировались с флагом u . Chrome 121 обновляет его до флага v , включая наборы Unicode.

Дополнения к WebGPU

WebGPU теперь позволяет разработчикам пропускать точки входа в шейдерные модули при создании конвейера, улучшая эргономику. Если точка входа по умолчанию не найдена, ошибка GPUValidationError будет срабатывать как обычно.

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

Хотя спецификация WebGPU делает запросы меток времени дополнительной функцией из-за проблем с атаками по времени, мы считаем, что квантование запросов меток времени обеспечивает хорошую золотую середину за счет снижения точности таймеров с разрешением 100 микросекунд.

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

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

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

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

API захвата элементов

API захвата элементов предоставляет методы для захвата поддерева DOM.

Учитывая видео MediaStreamTrack, полученное с помощью ранее существовавших средств для инициации захвата табуляции, Element Capture позволяет изменять дорожку, чтобы захватывать только поддерево DOM, начиная с данного элемента.

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

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

Изменения существующего поведения

Chrome 121 включает следующее изменение существующего поведения, включенное здесь, чтобы разработчики знали об этом изменении.

Отменить входные события для недавно перемещенных Iframe из разных источников

Если iframe из разных источников недавно переместился на свою страницу внедрения, Chrome автоматически отбрасывает события, нацеленные на iframe. Причина в том, что если iframe недавно переместился, вполне вероятно, что пользователь не собирался нажимать на него или нажимать на него.

Это изменение появилось в ограниченной форме в 2019 году: оно затронуло только iframe, содержащие скрипты, использующие функции IntersectionObserver версии 2 (то есть обнаружение окклюзии или эффектов). Этот запуск распространяет это поведение на все iframe с перекрестным происхождением и начнется как ограниченный эксперимент в Chrome 121, а затем будет расширен.