Хром 132 бета

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

Если не указано иное, следующие изменения относятся к новейшей версии бета-канала Chrome для 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 sideways-rl sideways-lr для свойства CSS writing-mode . sideways-rl sideways-lr полезны для вертикального написания текста, отличного от CJK. У них нет поведения, благоприятного для языков CJK, в отличие от vertical-rl и vertical-lr .

Веб-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). Конкретно:

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

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

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

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

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

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

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

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

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

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

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

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

Контейнеры прокрутки с возможностью фокусировки на клавиатуре

Внедрение этой функции (из 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-битных текстур с плавающей запятой.

Функция GPU float32-blendable позволяет смешивать текстуры графического процессора в форматах 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» в полноэкранном режиме.
  • Метод webkitEnterFullScreen() .
  • Метод webkitExitFullScreen() .

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