Хром 132 бета

Опубликовано: 13 ноября 2024 г.

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

CSS

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

Позиционирование якорей CSS: разрешить anchor-size() в свойствах inset и margin

Изначально anchor-size() допускался только в свойствах размеров. Спецификация была изменена, чтобы разрешить anchor-size() также в отступах и полях.

Режимы бокового написания CSS

Поддержка ключевых слов sideways-rl и sideways-lr для CSS-свойства writing-mode . Ключи sideways-rl и sideways-lr помогают писать текст, отличный от китайского, японского и каллиграфического (CJK), вертикально. В отличие от vertical-rl и vertical-lr , они не обладают свойствами, подходящими для китайского, японского и каллиграфического (CJK) языков.

Веб-API

Сделать снимок всех экранов

С помощью getAllScreensMedia() сделайте снимок всех экранов, подключенных в данный момент к устройству.

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

Эта функция доступна только на настольных компьютерах.

События переключения диалога

Полезно знать, когда открываются и закрываются элементы <dialog> , а popover уже есть ToggleEvent , которое отправляется при открытии или закрытии. Раньше для определения открытия элемента <dialog> приходилось регистрировать обозреватель мутаций для проверки открытия. Однако это довольно трудоёмко, и проще было бы использовать событие.

Это изменение затрагивает тот же ToggleEvent , который вызывается всплывающими окнами, но для элементов <dialog> : при вызове showModal или show , <dialog> вызывает ToggleEvent с newState=open . При закрытии <dialog> (с помощью формы, кнопки или closewatcher) он должен вызывать ToggleEvent с newState=closed .

Захват элемента

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

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

Функции авторизации FedCM

Это объединяет несколько функций, которые могут использоваться поставщиками удостоверений (IdP) для реализации процессов авторизации, например, предоставления пользователю доступа к своему календарю проверяющей стороне (RP). В частности:

  • У поставщика удостоверений должна быть возможность отображать настраиваемый запрос на разрешение (API продолжения).
  • RP необходим расширяемый способ сообщения IdP, к каким данным он хочет получить доступ (API параметров).
  • RP должен иметь возможность настраивать или скрывать текст, ссылающийся на IdP, совместно использующий «имя, адрес электронной почты и фотографию профиля», поскольку в этой ситуации он запрашивает другую информацию (поля API).
  • Поставщик удостоверений может захотеть использовать другую конечную точку для реализации потока авторизации (несколько configURL).
  • Некоторые учетные записи могут иметь право только на один из потоков аутентификации и авторизации, поэтому необходимо предусмотреть способ отображения различных учетных записей в двух потоках (API меток учетных записей).

API режима FedCM и API использования другой учетной записи

Два новых расширения для FedCM:

  • Режим : active режим позволяет веб-сайтам вызывать FedCM одним нажатием кнопки (например, нажатием кнопки «Войти в IdP» ), что требует от FedCM гарантированного отображения видимого пользовательского интерфейса. Вызов API FedCM в активном режиме приводит к тому, что пользователи, вышедшие из системы, входят в систему поставщика удостоверений (IdP). Кроме того, поскольку активный режим вызывается явным жестом пользователя, пользовательский интерфейс становится более заметным (например, центрированным и модальным) по сравнению с интерфейсом пассивного режима (который не требует жеста пользователя и может быть вызван при загрузке страницы).
  • Использовать другую учетную запись : с помощью этого расширения IdP может разрешить пользователям входить в другие учетные записи.

Извлечение: Request.bytes() и Response.bytes()

Добавьте метод bytes() к интерфейсам Request и Response , который возвращает обещание, разрешающееся с помощью Uint8Array. Хотя у Request и Response есть метод arrayBuffer() , вы не можете читать данные напрямую из буфера. Для чтения необходимо создать представление, например, Uint8Array . Метод bytes() улучшает эргономику получения тела Request и Response.

Доступ к файловой системе для Android и WebView

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

Доступ к файловой системе реализован на десктопных компьютерах в Chrome 86, а в Chrome 132 он доступен на Android и WebView.

Игнорировать Strict-Transport-Security для localhost

Заголовки ответов Strict-Transport-Security (STS) могут вызывать проблемы для локальных веб-серверов, поскольку STS применяется ко всем портам на уровне хоста. Это приводит к проблемам совместимости для веб-разработчиков, проводящих локальное тестирование. Это также влияет на конечных пользователей, использующих программные пакеты, которые обычно запускают локальные веб-серверы для временных целей. Например, передача токена авторизации из веб-логина в локальный программный пакет. Если один локальный прослушиватель устанавливает Strict-Transport-Security в ответе локального хоста, он применяется ко всем последующим запросам локального хоста независимо от порта.

Chrome 132 решает эту проблему, игнорируя заголовки Strict-Transport-Security в ответах от URL-адресов localhost.

Контейнеры прокрутки с фокусировкой на клавиатуре

Внедрение этой функции (в Chrome 130) было остановлено из-за проблем с доступом. Эта проблема устранена, и её внедрение продолжается в Chrome 132.

Список разрешений API частного государственного токена по умолчанию с подстановочными знаками

Доступ к API токенов частного государства ограничен функциями политики разрешений. В Chrome 132 список разрешенных по умолчанию функций private-state-token-issuance и private-state-token-redemption обновляется с self на * (подстановочный знак).

PushMessageData::bytes()

Интерфейс PushMessageData имитирует интерфейс Body , который был изменён ранее в этом году новым методом bytes() , следуя принципу, согласно которому API обычно должны выдавать байтовые буферы как массивы Uint8Arrays . Chrome 132 перестраивается в соответствии с интерфейсом Body , предоставляя также метод доступа bytes() для интерфейса PushMessageData .

Сохраненные запросы в sharedStorage.selectURL

sharedStorage.selectURL() теперь позволяет сохранять и повторно использовать запросы на постраничной основе, при этом два бюджета на загрузку страницы списываются при первом запуске сохранённого запроса, но не при последующих запусках сохранённого запроса во время той же загрузки страницы. Это достигается с помощью параметра savedQuery в параметрах метода selectURL() который присваивает имя запросу.

Выдать исключение для всплывающих окон и диалоговых окон в неактивных документах

Ранее вызовы showPopover() или showModal() для всплывающего окна или диалогового окна, находящегося в неактивном документе, приводили к ошибке без предупреждения. Исключение не генерировалось, но поскольку документ неактивен, всплывающее окно или диалоговое окно не отображались. Начиная с Chrome 132, в таких ситуациях теперь возникает InvalidStateError .

API сигналов WebAuthn

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

Узнайте больше об API Signal для ключей доступа в Chrome для ПК .

WebGPU: смешивание 32-битных плавающих текстур

Функция float32-blendable GPU делает текстуры GPU в форматах r32float , rg32float и rgba32float смешиваемыми.

WebGPU: предоставление GPUAdapterInfo из GPUDevice

Атрибут GPUDevice adapterInfo предоставляет ту же GPUAdapterInfo , что и объект GPUAdapter .

WebGPU: использование представления текстуры

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

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

Реализации WebGPU также могут оптимизировать создание низкоуровневых ресурсов и повысить производительность при использовании представлений с более специализированными флагами использования.

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

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

Document-Isolation-Policy

Document-Isolation-Policy позволяет документу включить crossOriginIsolation для себя, без необходимости развертывания COOP или COEP и независимо от статуса crossOriginIsolation страницы. Эта политика подкреплена изоляцией процессов. Кроме того, подресурсы документа, не относящиеся к CORS и не относящиеся к другим источникам, будут либо загружены без учётных данных, либо должны будут иметь заголовок CORP.

Явные подсказки по компиляции с магическими комментариями

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

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

В этой версии Chrome представлены следующие функции, которые были удалены и упразднены. Список запланированных и текущих функций, а также ранее удаленных функций можно найти на сайте ChromeStatus.com .

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

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

Удалить префиксные полноэкранные API HTMLVideoElement

Полноэкранные API HTMLVideoElement с префиксом устарели в Chrome.

Их заменил API Element.requestFullscreen() , который впервые появился без префиксов в Chrome 71 в 2018 году. По состоянию на 2024 год большинство браузеров уже несколько лет поддерживают API без префиксов.

Chrome 132 удаляет следующее из HTMLVideoElement :

  • Атрибут webkitSupportsFullscreen .
  • Атрибут webkitDisplayingFullscreen .
  • Метод webkitEnterFullscreen() .
  • Метод webkitExitFullscreen() . Обратите внимание на разную заглавную букву «S» в слове FullScreen.
  • Метод webkitEnterFullScreen() .
  • Метод webkitExitFullScreen() .

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