Хром 136 бета

Опубликовано: 3 апреля 2025 г.

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

CSS и пользовательский интерфейс

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

Свойство dynamic-range-limit CSS

Позволяет странице ограничить максимальную яркость HDR-контента.

Игнорировать межбуквенный интервал в рукописных шрифтах

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

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

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

Узнайте больше об этих улучшениях конфиденциальности :visited ссылок .

Переименуйте тип string attr() в raw-string

Рабочая группа CSS решила заменить тип string attr() на raw-string .

Поэтому Chrome изменил синтаксис attr() , так что attr(data-foo string) теперь будет attr(data-foo raw-string) .

Независимый от типа резервный вариант var()

Резервная часть функции var() не проверяет тип пользовательского свойства, на которое ссылается.

print-color-adjust без префикса

Свойство print-color-adjust позволяет настраивать цвета напечатанных веб-страниц. Это то же самое, что и уже поддерживаемый Chrome -webkit-print-color-adjust , но со стандартизированным именем. Версия с префиксом -webkit не удаляется.

Веб-API

Прерванное состояние AudioContext

Добавляет "interrupted" состояние в AudioContextState . Это новое состояние позволяет UA приостанавливать воспроизведение в этих сценариях и позволять веб-приложениям реагировать соответствующим образом.

Разделение URL-адресов больших двоичных объектов: выборка/навигация

В качестве продолжения разделения хранилища здесь реализовано разделение доступа к URL-адресу BLOB-объекта по ключу хранилища (сайт верхнего уровня, происхождение фрейма и логическое значение has-cross-site-ancestor), за исключением навигации верхнего уровня, которая останется секционированной только по происхождению фрейма. Это поведение похоже на то, что в настоящее время реализовано в Firefox и Safari, и согласовывает использование URL-адресов BLOB-объектов со схемой секционирования, используемой другими API-интерфейсами хранилища как часть секционирования хранилища.

Кроме того, noopener теперь применяется при навигации верхнего уровня, инициируемой средством визуализации, к URL-адресам BLOB-объектов, где соответствующий сайт является межсайтовым для сайта верхнего уровня, выполняющего навигацию. Это приводит Chrome в соответствие с аналогичным поведением в Safari, а соответствующие спецификации были обновлены с учетом этих изменений.

Стеки вызовов в отчетах о сбоях с не отвечающих веб-страниц

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

API управления захваченной поверхностью

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

CapturedSurfaceResolution

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

Отправка событий щелчка на захваченный указатель

Если указатель захватывается во время отправки события pointerup , событие click будет отправлено захваченной цели вместо ближайшего общего предка событий pointerdown и pointerup согласно спецификации событий пользовательского интерфейса. Для незахваченных указателей цель click остается неизменной.

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

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

Обновления FedCM: поддержка нескольких IdP, удаление функции «добавить еще одну учетную запись» в пассивном режиме.

Благодаря этому обновлению FedCM может отображать несколько поставщиков удостоверений в одном диалоговом окне. Это предоставляет разработчикам удобный способ представить пользователям все поддерживаемые поставщики удостоверений. Мы планируем сначала рассмотреть простой случай, когда все поставщики используют один и тот же вызов get() . Мы также удаляем поддержку функции «добавить другую учетную запись» в пассивном режиме FedCM. Эта функция позволяет отображать кнопку «Использовать другую учетную запись» рядом с другими учетными записями IdP в средстве выбора. В настоящее время эта функция не используется, и разговоры о UX привели нас к выводу, что поддержка этой функции приводит к усложнению процесса без особой пользы. Эта функция по-прежнему будет работать в активном режиме FedCM.

Плавные полосы прокрутки.

Эта функция модернизирует полосы прокрутки Chrome (как с наложением, так и без наложения) в Windows и Linux, чтобы они соответствовали языку дизайна Windows 11 Fluent. Полосы прокрутки Fluent без наложения будут включены по умолчанию в Linux и Windows. Это изменение применимо и к Linux, поскольку дизайн полосы прокрутки Chrome в Linux исторически соответствовал тому, что поставляется в Windows.

Поддержка кодека H265 (HEVC) в WebRTC

Начиная с Chrome 136, HEVC присоединится к VP8, H.264, VP9 и AV1 в качестве поддерживаемых кодеков в WebRTC. Поддержка будет доступна с помощью API MediaCapabilities.

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

Обновления поддержки кодека H26x для MediaRecorder

API MediaRecorder теперь поддерживает кодировку HEVC, добавляя строку кодека hvc1.* , а также новые кодеки ( hev1.* и avc3.* ), поддерживающие видео с переменным разрешением в MP4. Поддержка кодирования платформы HEVC была добавлена ​​в WebCodecs в Chrome 130. В дальнейшем поддержка была добавлена ​​в API MediaRecorder в Chromium. API теперь поддерживает типы мультиплексоров MP4 и Matroska с различными спецификациями типов MIME HEVC и H.264. Кодирование HEVC поддерживается только в том случае, если устройство пользователя и операционная система предоставляют необходимые возможности.

Регистрация и отчетность по IP-адресам в Chrome Enterprise

Chrome Enterprise расширяет возможности мониторинга безопасности и реагирования на инциденты, собирая и сообщая о локальных и удаленных IP-адресах и отправляя эти IP-адреса в журналы расследования безопасности (SIT). Кроме того, Chrome Enterprise позволит администраторам при необходимости отправлять IP-адреса собственным и сторонним поставщикам SIEM с помощью соединителя отчетов Chrome Enterprise. Это будет доступно для клиентов Chrome Enterprise Core.

Включите инициатор навигации в ключ раздела кэша HTTP.

Схема ключей HTTP-кеша Chrome обновлена ​​и теперь включает логическое значение is-cross-site-main-frame-navigation для предотвращения атак межсайтовой утечки, включающих навигацию верхнего уровня. В частности, это предотвратит межсайтовые атаки, при которых злоумышленник может инициировать навигацию верхнего уровня на заданную страницу, а затем перейти к ресурсу, который, как известно, загружается страницей, чтобы получить конфиденциальную информацию на основе времени загрузки. Это изменение также повышает конфиденциальность, не позволяя вредоносному сайту использовать навигацию для определения того, посещал ли пользователь данный сайт ранее.

Языковая поддержка CanvasTextDrawingStyles

Элемент <canvas> DOM, как и все элементы DOM, принимает атрибут lang , который используется для определения языковой обработки выбора шрифта (когда шрифты имеют глифы, специфичные для локали). Браузеры уважают этот атрибут. Однако при создании OffscreenCanvas невозможно установить информацию о локали, что может привести к состоянию, когда закадровый холст выдает визуализированные результаты, которые отличаются от холста, в котором используются его выходные данные. Эта функция добавляет IDL-атрибут lang к CanvasTextDrawingStyles , чтобы обеспечить прямой контроль над языком для рисования текста и показателей.

Отчеты о политике разрешений для iframe

Введен новый тип нарушения под названием «Потенциальное нарушение политики разрешений», который будет учитывать только политику разрешений (включая политику только для отчетов) и атрибут allow , установленный в iframe, для обнаружения конфликта между применяемой политикой разрешений и разрешениями, распространяемыми на iframe.

Предсказуемая сообщаемая квота хранилища

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

API частного агрегирования: агрегированные отчеты об ошибках

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

RegExp.escape

RegExp.escape — это статический метод, который принимает строку и возвращает экранированную версию, которую можно использовать в качестве шаблона внутри регулярного выражения. Например:

const str = prompt("Please enter a string");
const escaped = RegExp.escape(str);
const re = new RegExp(escaped, 'g'); // handles reg exp special tokens with the replacement.

console.log(ourLongText.replace(re));

Правила спекуляции: поле тега

Позволяет разработчикам добавлять field тега в правила спекуляций. Это необязательное поле можно использовать для отслеживания источника правил спекуляции. Например, по-разному относиться к ним на промежуточном сервере. Любые теги, связанные со предположением, будут отправлены с заголовком Sec-Speculation-Tags .

Строгая политика одинакового происхождения для API доступа к хранилищу

Настраивает семантику API доступа к хранилищу, чтобы строго следовать политике одного и того же происхождения. То есть использование document.requestStorageAccess() во фрейме по умолчанию прикрепляет файлы cookie только к запросам к источнику iframe (а не к сайту). Обратите внимание, что политика CookiesAllowedForUrls или заголовки доступа к хранилищу по-прежнему могут использоваться для разблокировки межсайтовых файлов cookie.

Обновите ProgressEvent , чтобы использовать двойной тип для loaded и total

ProgressEvent имеет loaded и total атрибуты, указывающие прогресс, и их тип теперь unsigned long long . Благодаря этой функции тип этих двух атрибутов вместо этого изменяется на double , что дает разработчику больше контроля над значением. Например, теперь разработчики могут создать ProgressEvent с total 1 и постепенно увеличивать loaded от 0 до 1. Это соответствует поведению HTML-элемента <progress> по умолчанию, если атрибут max опущен.

Используйте DOMPointInit для getCharNumAtPosition , isPointInFill , isPointInStroke

Это изменение приводит код Chromium в соответствие с последней спецификацией W3C для SVGGeometryElement и SVGPathElement с точки зрения использования DOMPointInit вместо SVGPoint для getCharNumAtPosition , isPointInFill , isPointInStroke .

Условное создание веб-аутентификации (обновление пароля)

Запросы условного создания WebAuthn позволяют веб-сайтам обновлять существующие учетные данные пароля до ключа доступа.

WebGPU: атрибут GPUAdapterInfo isFallbackAdapter

Логический атрибут GPUAdapterInfo isFallbackAdapter указывает, имеет ли адаптер значительные ограничения производительности в обмен на более широкую совместимость, более предсказуемое поведение или улучшенную конфиденциальность. Обратите внимание, что резервный адаптер может присутствовать не во всех системах.

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

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

API устройств вывода звука: setDefaultSinkId()

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

Позвольте веб-приложениям понимать бимодальные тайминги производительности

Веб-приложения могут страдать от бимодального распределения производительности загрузки страниц из-за факторов, находящихся вне контроля веб-приложения. Например:

  • Когда пользовательский агент запускается впервые (сценарий «холодного запуска»), он должен выполнить множество дорогостоящих задач инициализации, которые конкурируют за ресурсы в системе.
  • Расширения браузера могут повлиять на производительность веб-сайта. Например, некоторые расширения запускают дополнительный код на каждой посещаемой вами странице, что может увеличить загрузку ЦП и привести к замедлению времени ответа.
  • Когда машина занята выполнением интенсивных задач, это может привести к замедлению загрузки веб-страниц.

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

Новое поле confidence в объекте PerformanceNavigationTiming позволит разработчикам определить, является ли время навигации репрезентативным для их веб-приложения.

Учетные данные сеанса, привязанного к устройству

Способ для веб-сайтов безопасно привязать сеанс к одному устройству.

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

Обновление реализации рендеринга текста на холсте

Внутренние функции measureText() , fillText() и strokeText() в CanvasRenderingContext2D и OffscreenCanvasRenderingContext2D были заменены новой реализацией, которая лучше поддерживает текст RTL и кэширование. Это может повлиять на производительность и вывод текста BIDI, поэтому эта пробная версия позволяет приложениям Canvas с большим количеством текста опробовать новую реализацию и сообщать о любых проблемах, с которыми они могут столкнуться.

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

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

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

Устаревшие методы получения информации о международном локали

API Intl Locale Info — это предложение ECMAScript TC39 этапа 3, предназначенное для улучшения объекта Intl.Locale путем предоставления информации о языковом стандарте, такой как данные недели (первый день недели, день начала выходных, день окончания выходных, минимальный день в первой неделе) и часовой цикл направления текста, используемый в языковом стандарте. Это изменение удаляет некоторые геттеры, которые устарели при изменении спецификации с момента их поставки.

Удалите HTMLFencedFrameElement.canLoadOpaqueURL() .

canLoadOpaqueURL() был заменен на navigator.canLoadAdAuctionFencedFrame() в 2023 году, и его вызов приводил к предупреждению консоли об устаревании с тех пор, как он указывал разработчикам на новый API. Нет смысла прикреплять эту функцию к HTMLFencedFrameElement , вместо этого ее следует прикреплять к объекту navigator (который содержит другие методы изолированного фрейма и аукциона рекламы).