Хром 108 бета

Новые единицы просмотра CSS, API федеративного управления учетными данными, переменные шрифты COLRv1 и многое другое.

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

CSS

Chrome 108 включает ряд новых функций CSS.

Переполнение CSS для замененных элементов

Chrome начнет внедрять изменения, которые позволят разработчикам использовать существующее свойство overflow с замененными элементами, которые рисуются за пределами поля содержимого. В сочетании с object-view-box это можно использовать для создания изображения с настраиваемым свечением или тенью, с правильным поведением при переполнении чернил, как это было бы с тенью CSS.

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

Маленькие, большие, динамические и логические единицы просмотра.

Это добавляет поддержку маленьких ( svw , svh , svi , svb , svmin , svmax ), больших ( lvw , lvh , lvi , lvb , lvmin , lvmax ), динамических ( dvw , dvh , dvi , dvb , dvmin , dvmax ) и логические ( vi , vb ) единицы.

Поддержка CSS break-after , break-before и break-inside

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

figure {
    break-inside: avoid;
}

Эта функция была добавлена ​​в связи с добавлением в Chrome 108 поддержки печати LayoutNG.

Последнее выравнивание базового элемента

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

  • align-items: last baseline;
  • justify-items: last baseline;
  • align-self: last baseline;
  • justify-self: last baseline;

Событие ContentVisibilityAutoStateChanged

Событие, которое срабатывает для элемента с content-visibility: auto , когда состояние рендеринга элемента изменяется из-за любого из атрибутов, которые делают элемент релевантным для пользователя .

Вариант использования этого заключается в том, чтобы позволить разработчикам иметь больший контроль над тем, когда останавливать или начинать рендеринг в ответ на остановку или начало рендеринга пользовательского агента поддерева видимости контента. Например, разработчик может захотеть остановить обновления React в поддереве, которое не отображается пользовательским агентом. Аналогично, разработчик может захотеть остановить любые другие обновления скриптов (например, обновления холста), когда пользовательский агент не отображает элемент.

Веб-API

Федеративное управление учетными данными (было WebID)

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

Расширения источников мультимедиа в работниках

Включает использование API-интерфейса Media Source Extensions (MSE) из контекстов DedicatedWorker, чтобы повысить производительность буферизации мультимедиа для воспроизведения с помощью HTMLMediaElement в главном контексте окна. Создав объект MediaSource в контексте DedicatedWorker, приложение может затем получить от него MediaSourceHandle и передать этот дескриптор в основной поток для использования при присоединении к HTMLMediaElement. Контекст, создавший объект MediaSource, может затем использовать его для буферизации мультимедиа.

Sec-CH-Prefers-Reduced-Motion Настройки пользователя Медиа-функции Заголовок подсказок клиента

Медиа-функции пользовательских предпочтений Заголовки клиентских подсказок определяют набор заголовков HTTP-клиентских подсказок вокруг медиа-функций пользовательских предпочтений, как это определено в Медиа-запросах уровня 5. Если эти заголовки используются в качестве критических клиентских подсказок, они позволяют серверам делать разумный выбор, например, в отношении встраивания CSS. . Sec-CH-Prefers-Reduced-Motion отражает prefers-reduced-motion .

Читатели WebTransport BYOB

Поддерживает считыватели BYOB (принеси свой собственный буфер) для WebTransport, чтобы обеспечить возможность чтения в буфер, предоставленный разработчиком. Читатели BYOB могут минимизировать копии буфера и уменьшить выделение памяти.

Подстановочные знаки в источнике политики разрешений

Спецификация политики разрешений определяет механизм, который позволяет разработчикам выборочно включать и отключать использование различных функций браузера и API. Одна из возможностей этого механизма позволяет включать функции только для явно перечисленных источников (например, https://foo.com/ ). Этот механизм недостаточно гибок для проектирования некоторых сетей CDN, которые доставляют контент через источник, который может размещаться на одном из нескольких сотен возможных поддоменов.

Таким образом, эта функция добавляет поддержку подстановочных знаков в политике разрешений, структурированной как SCHEME://*.HOST:PORT (например, https://*.foo.com/ ), где действительный источник может быть создан из SCHEME://HOST:PORT (например, https://foo.com/ ). Для этого требуется, чтобы HOST был регистрируемым доменом. Это означает, что https://*.bar.foo.com/ работает, а https://*.com/ нет (если вы хотите разрешить всем доменам использовать эту функцию, вам следует просто делегировать ее * ).

Методы синхронизации для AccessHandles в API доступа к файловой системе

Обновляет асинхронные методыlush flush() , getSize() и truncate() в FileSystemSyncAccessHandle в API доступа к файловой системе на синхронные методы. FileSystemSyncAccessHandle в настоящее время содержит смесь синхронных и асинхронных методов, что снижает производительность и удобство использования, особенно для приложений, переносящих C/C++ в Wasm. Это обновление обеспечит единообразие в использовании API и улучшит производительность библиотек на основе Wasm.

Это потенциально критическое изменение, дополнительную информацию можно прочитать в разделе Критическое изменение: методы синхронизации для AccessHandles .

Условный интерфейс WebAuthn

Условный пользовательский интерфейс для WebAuthn поддерживается в Windows 22H2 или более поздней версии, macOS и Android P или более поздней версии. Пользовательский интерфейс WebAuthn на настольных платформах также был обновлен.

Переменные шрифты COLRv1 и обнаружение функций шрифта

Поддержка переменных шрифтов COLRv1

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

Расширения условий font-tech() и font-format() для CSS @supports

Использование font-tech() и font-format() вместе с CSS @supports позволяет определять технологию шрифтов и поддержку формата, а также постепенно улучшать контент. В следующем примере проверяется поддержка шрифтов COLRv1 .

@supports font-tech(color-COLRv1) {

}

Поддержка функции tech() в @font-face src: дескрипторе

CSS Fonts Level 4 предоставляет дополнительные средства выбора или фильтрации ресурсов шрифтов. Была введена функция tech() , которая позволяет передавать список технологий шрифтов, которые требуются для работы соответствующего объекта шрифта. На основании этого пользовательский агент выберет первый подходящий ресурс.

Хром на Андроиде

Android OSK теперь по умолчанию изменяет размер визуального окна просмотра.

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

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

В этом выпуске Chrome есть две новые пробные версии Origin .

Личность продавца в событии canmakepayment

Событие рабочего сервиса canmakepayment позволяет продавцу узнать, есть ли у пользователя карта в установленном платежном приложении. Он молча передает происхождение продавца и произвольные данные работнику службы из источника платежного приложения. Такое взаимодействие между источниками происходит при создании PaymentRequest в JavaScript, не требует жестов пользователя и не отображает какой-либо пользовательский интерфейс. Пробную версию для разработчиков по удалению полей идентификационной информации из события «canmakepay» можно включить через: chrome://flags/#clear-identity-in-can-make-payment . Включение этого флага приведет к очистке полей идентификатора в событии canmakepay (и намерении Android IS_READY_TO_PAY ).

Дополнительные сведения см. в разделе Обновление поведения событий CanMakePayment API обработчика платежей .

Назад/вперед кеш NotRestoredReason API

API NotRestoredReason сообщит список причин, по которым страница не обслуживается из BFcache, в древовидной структуре фреймов через API PerformanceNavigationTiming.

Страницы могут быть заблокированы в BFcache по разным причинам, например, по причинам, предусмотренным спецификацией, или по причинам, специфичным для реализации браузера. Разработчики могут собирать частоту обращений BFCache на своем сайте, используя постоянный параметр обработчика PageShow и PerformanceNavigationTiming.type(back-forward) . Этот API позволяет сайтам собирать информацию о том, почему BFCache не используется при навигации по истории, чтобы они могли предпринять действия по каждой причине и сделать свою страницу совместимой с BFCache.

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

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

Устаревания

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

Устареть и удалить window.defaultStatus и window.defaultstatus .

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

Первоначально они использовались для изменения/управления текстом «строки состояния» в нижней части окон браузера. Однако они никогда не оказывали никакого реального влияния на строку состояния Chrome и не являются стандартизированными атрибутами. Gecko не поддерживает эти атрибуты с версии 23; WebKit по-прежнему поддерживает эти атрибуты. Соответствующий атрибут window.status стандартизирован , но также никогда не должен влиять на строку состояния окна .

Переезды

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

Удалить ImageDecoderInit.premultiplyAlpha

Эта функция не оказывает заметного эффекта в основных случаях использования, но может ограничивать реализацию неоптимальными способами. См. эту проблему для более подробного описания. По согласованию с редакторами спецификаций WebCodecs и отсутствием использования (0,000000339% - 0,00000687% загрузок страниц на счетчик использования в M106).

Удалить navigateEvent.restoreScroll()

restoreScroll() заменяется на navigateEvent.scroll() . scroll() работает идентично, за исключением того, что он позволяет разработчику контролировать время прокрутки для навигации без перемещения ( scroll() работает, когда прокрутка не является восстановлением, следовательно, изменяется имя вместе с изменением поведения).

Удалить navigateEvent.transitionWhile()

transitionWhile() заменяется на navigateEvent.intercept() из-за недостатков дизайна, о которых сообщили разработчики. intercept() ведет себя почти идентично TransitionWhile(), но вместо обязательного параметра Promise он принимает необязательную функцию-обработчик, которая возвращает Promise. Это позволяет браузеру контролировать время выполнения обработчика, что происходит позже и более интуитивно понятно, чем для transitionWhile() .

Удалить googIPv6 WebRTC mediaConstraint

"googIPv6: false" можно использовать для отключения поддержки IPv6 в WebRTC, как в следующем примере.

new RTCPeerConnection({}, {mandatory:{googIPv6:false}});

IPv6 включен по умолчанию уже много лет, и мы не сможем его отключить. Это устаревший API, которого нет в спецификации.