mrssea

Chrome 112 beta

CSS Nesting, animation-composition и параметр отправителя для конструктора FormData.

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

CSS

CSS Nesting

CSS Nesting — это возможность стилизации состояний элемента, его псевдоэлементов и дочерних элементов, с использованием атрибута style

Возможность вкладывать правила стилей CSS в другие правила стилей, комбинируя внешние селекторы с внутренним правилом для повышения модульности и удобства сопровождения таблиц стилей. Узнайте больше в этой статье о CSS Nesting.

Свойство CSS animation-composition

Свойство animation-composition позволяет использовать спецификацию составной операции, когда несколько анимаций одновременно влияют на одно и то же свойство. Посмотрите пример в этой демонстрации.

Web API

Информационная панель «Перезагрузить эту страницу» больше не отображается, если фрейм верхнего уровня наблюдает за изменениями разрешений.

Скрывает информационную панель «Перезагрузить эту страницу», если frame верхнего уровня подписан на событие onchange PermissionStatus, которое воспринимается как указание на то, что приложение хочет динамически реагировать на изменения разрешений камеры или микрофона, инициированные через диалоговое окно сведений о странице. Независимо от присутствия прослушивателя событий, ранее существовавшее поведение остается неизменным: медиапотоки прекращаются сразу же после отзыва разрешения.

Добавлен необязательный параметр отправителя в конструктор FormData.

Позволяет передать кнопку отправки конструктору FormData. Если кнопка имеет имя или является кнопкой изображения, она будет добавляться в набор передаваемых данных формы. Это позволяет создать объект FormData с тем же набором данных, что и стандартная отправка формы, запускаемая кнопкой.

Флаг RegExp v с установленной нотацией и свойствами строк

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

Пример: /[\p{Script_Extensions=Greek}&&\p{Letter}]/v совпадения всех греческих букв.

Обновлен алгоритм начального фокуса dialog

Внесены некоторые изменения в выбор элемента для получения фокуса при открытии элемента dialog:

Хвостовой вызов (tail call) WebAssembly

Добавлены опкоды явного хвостового вызова и косвенного хвостового вызова в WebAssembly.

WebGLContextEvent в Web Workers

Тип WebGLContextEvent был определен в спецификации Khronos WebGL в течение ряда лет, но до недавнего времени не было замечено, что в Blink этот тип не отображается для веб-воркеров.

Большинство приложений просто добавляют прослушиватель событий для типа, а не ищут его прототип в глобальной области видимости. Это простое исправление для веб-IDL Blink для WebGLContextEvent, но это изменение, доступное в Интернете.

Пропустить обработчик бездействия service worker

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

На некоторых сайтах есть прослушиватель выборки без операций (например, onfetch = () => {}). Поскольку прослушиватель выборки был одним из требований для прогрессивного веб-приложения (PWA), мы предполагаем, что они сделали это, чтобы их сайт распознавался как PWA. Однако это приводит только к накладным расходам, связанным с запуском сервис-воркера и выполнением прослушивателя без операций, без каких-либо преимуществ таких функций, как кэширование или автономные возможности, поскольку код ничего не делает.

Чтобы ускорить навигацию по таким страницам, начиная с Chrome 112, мы будем опускать запуск сервис-воркера и отправку слушателя из критического пути навигации, если user agent идентифицирует, что все слушатели выборки сервис-воркера не работают.

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

Accept-encoding: br (Brotli) при HTTPS-соединении в WebView

Brotli (тип кодирования содержимого: br) — универсальный алгоритм сжатия без потерь, который обеспечивает более плотное сжатие с коэффициентом сжатия и скоростью, сравнимыми с лучшими доступными в настоящее время методами сжатия общего назначения (дополнительную информацию см. в google/brotli и https://tools.ietf.org/html/rfc7932).

Хотя тип кодирования содержимого HTTP для Brotli (Accept-Encoding: br) поддерживается Chrome с версии 50, до сих пор он не был включен для WebView. Эта функция будет внедряться поэтапно для обеспечения стабильности и будет доступна для 50% населения в бета-версии WebView.

Origin trials

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

FedCM: API автоматической повторной аутентификации

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

В настоящее время после того, как пользователь создал федеративную учетную запись на RP (проверяющей стороне) с IdP (поставщиком удостоверений) через FedCM, при следующем посещении веб-сайта ему необходимо выполнить те же действия в пользовательском интерфейсе. То есть им необходимо явно подтвердить и повторно аутентифицироваться, чтобы продолжить процесс входа. Поскольку одной из основных целей FedCM является предотвращение скрытого отслеживания, этот пользовательский интерфейс (UX) имеет смысл до того, как пользователь создаст федеративную учетную запись, но становится ненужным и громоздким после того, как пользователь прошел через него один раз. Вот почему Chrome представляет более оптимизированный UX, который RP могут выбрать для своих постоянных пользователей.

Зарегистрируйтесь для участия в пробной версии источника автоматической повторной аутентификации FedCM

Deprecation в пробной версии

Метод getStats() RTCPeerConnection больше не будет возвращать объекты статистики, где type == "track" или "stream". Эта функция удалена в Chrome 112. Воспользуйтесь этой пробной версией, чтобы иметь больше времени для внесения необходимых изменений.

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

X-Requested-With в устаревшем WebView

Пробная версия источника Deprecation поддерживает предварительное включение нескольких источников при вызове служб, которые полагаются на заголовок X-Requested-With. Эта опция доступна в WebView из Chrome 112. См.  инструкции по настройке пробной версии Origin, чтобы узнать, как использовать эту функцию.

Устаревшее и удаленное

В этой версии Chrome представлены устаревшие и удаленные функции, перечисленные ниже. Посетите ChromeStatus.com для получения списков запланированных устареваний, текущих устареваний и предыдущих удалений.

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

Установщик document.domain

Установщик document.domain позволяет разработчикам ослабить политику одного и того же источника, усложняя фундаментальную границу безопасности, которую мы стремимся поддерживать, и создавая препятствия на пути post-Spectre изменений в модели процессов Chromium. Теперь он доступен через кластеры агентов Origin-keyed.

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

Удалено отслеживание и поток объектов статистики из метода getStats() RTCPeerConnection.

Метод getStats() RTCPeerConnection больше не будет возвращать объекты статистики, где type == "track" или "stream". Не поставляется в Chrome 112 с устаревшей пробной версией (указана выше), чтобы расширить доступность этих показателей для Chrome 115.

Оригинал статьи https://developer.chrome.com/blog/chrome-112-beta