Chrome 140 бета

Опубликовано: 6 августа 2025 г.

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

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

CSS-типизированная арифметика

Типизированная арифметика позволяет записывать выражения в CSS, такие как calc(10em / 1px) или calc(20% / 0.5em * 1px) . Это полезно, например, в типографике, поскольку позволяет преобразовать типизированное значение в нетипизированное и использовать его в свойствах, принимающих числа. Другой пример использования — умножение безразмерного значения на другой тип. Например, можно преобразовать пиксели в градусы.

Свойство scroll-target-group

Свойство scroll-target-group определяет, является ли элемент контейнером группы маркеров прокрутки. Оно принимает одно из следующих значений:

  • 'none': элемент не устанавливает контейнер группы маркеров прокрутки.
  • «auto»: элемент устанавливает контейнер группы маркеров прокрутки, образующий группу маркеров прокрутки, содержащую все элементы маркеров прокрутки, для которых этот контейнер является ближайшим предком группы маркеров прокрутки.

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

Включить counter() и counters() в альтернативном тексте свойства content

Эта функция добавляет возможность использовать counter() и counters() в альтернативном тексте свойства content . Это предоставляет более содержательную информацию для улучшения доступности.

Вид псевдоперехода наследует больше свойств анимации

Псевдодерево перехода вида теперь наследует ряд свойств анимации:

  • animation-delay
  • animation-timing-function
  • animation-iteration-count
  • animation-direction
  • animation-play-state

Включить вложенные переходы представлений

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

Распространить overscroll-behavior области просмотра из корня

Это изменение распространяет overscroll-behavior от корневого элемента, а не от тела. Рабочая группа CSS решила не распространять свойства из <body> на область просмотра. Вместо этого свойства области просмотра распространяются от корневого элемента ( <html> ). Таким образом, overscroll-behavior должно распространяться от корневого элемента. Однако в Chrome существует давняя проблема: свойство overscroll-behavior распространяется от <body> , а не от корня. Такое поведение несовместимо с другими браузерами. Это изменение позволяет Chrome соответствовать спецификации и становится совместимым с другими реализациями.

Параметр контейнера ScrollIntoView

Параметр контейнера ScrollIntoViewOptions позволяет разработчикам выполнять операцию scrollIntoView , которая прокручивает только ближайший родительский контейнер прокрутки. Например, следующий фрагмент кода прокручивает только контейнер прокрутки target , чтобы сделать target , но не прокручивает все контейнеры прокрутки в область просмотра:

target.scrollIntoView({container: 'nearest'});

Добавьте свойство CSS caret-animation

Chromium поддерживает анимацию свойства caret-color . Однако при анимации мигание курсора по умолчанию мешает анимации.

Свойство CSS caret-animation имеет два возможных значения: auto и manual . auto означает, что анимация курсора используется браузером по умолчанию (мигание), а manual означает, что анимация управляется разработчиком. Кроме того, пользователи, которых раздражает или раздражает мигание или мерцание визуальных элементов, могут отключить мерцание с помощью пользовательской таблицы стилей.

highlightsFromPoint API

API highlightsFromPoint позволяет разработчикам взаимодействовать с пользовательскими выделениями. Он определяет, какие выделения существуют в определённых местах документа. Эта интерактивность ценна для сложных веб-функций, где несколько выделений могут перекрываться или существовать в теневой модели DOM. Обеспечивая точное определение выделений по точкам, API позволяет разработчикам эффективнее управлять динамическим взаимодействием с пользовательскими выделениями. Например, разработчики могут реагировать на щелчки пользователя или наведение курсора на выделенные области, чтобы активировать пользовательские подсказки, контекстные меню и другие интерактивные функции.

Изменение представления. Переход завершен. Сроки обещания.

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

Добавьте атрибут источника ToggleEvent

Атрибут source события ToggleEvent содержит элемент, вызвавший срабатывание ToggleEvent , если применимо. Например, если пользователь нажимает на элемент <button> с атрибутом popovertarget или commandfor чтобы открыть всплывающее окно, то для срабатывания события ToggleEvent на всплывающем окне атрибут source будет установлен на вызывающую кнопку <button> .

Предотвращаем засорение холста URL-адресами blob-объектами с помощью SVG foreignObject

Все браузеры уже давно поддерживают использование элемента <img> с источником SVG в операции drawImage HTML-холста. Однако поведение при повреждении холста различается на разных платформах. Все браузеры повреждают холст, если источник SVG включает тег foreignObject и на него ссылается HTTP URI. При ссылке на тот же SVG через URI данных все браузеры не повреждают холст. Однако при использовании URI BLOB-объекта и Chromium (до этого изменения), и WebKit повреждают холст, а Gecko — нет. После выхода этой функции поведение Chromium будет соответствовать поведению Gecko, что позволит использовать более широкий спектр SVG-контента в вызовах drawImage холста без повреждения.

Поддержка дескриптора font-variation-settings в @font-face rule

CSS позволяет разработчикам настраивать насыщенность, ширину, наклон и другие оси шрифта, используя свойство font-variation-settings для отдельных элементов. Однако браузеры на базе Chromium не поддерживают это свойство в объявлениях @font-face . Эта функция поддерживает строковый синтаксис для font-variation-settings , как определено в CSS Fonts Level 4. Недопустимые или нераспознанные теги функций игнорируются согласно спецификации. Двоичные и нестандартные формы не поддерживаются. Вариативные шрифты получают всё большее распространение как для повышения производительности, так и для повышения типографской гибкости. Добавление поддержки этого дескриптора в Chromium улучшает контроль, уменьшает повторения и поддерживает более масштабируемый, современный подход к веб-типографике.

Веб-API

Преобразование Uint8Array в base64 и hex и обратно

Base64 — распространённый способ представления произвольных двоичных данных в формате ASCII. В JavaScript для двоичных данных предусмотрены Uint8Arrays . Однако в нём отсутствует встроенный механизм для кодирования этих данных в формат Base64 или для преобразования данных в формате Base64 в соответствующий Uint8Array . Эта функция добавляет возможность и методы для преобразования шестнадцатеричных строк в Uint8Arrays .

Используйте опцию ReadableStreamBYOBReader min

Эта функция добавляет параметр min в существующий метод ReadableStreamBYOBReader.read(view) . Метод уже принимает объект ArrayBufferView , в который считывает данные, но в настоящее время не гарантирует, сколько элементов будет записано до завершения чтения. Указав значение min , можно потребовать, чтобы поток ждал, пока не станет доступно как минимум столько элементов, прежде чем завершить чтение. Это улучшает текущее поведение, при котором чтение может завершаться с меньшим количеством элементов, чем может содержать представление.

В некоторых случаях важно различать на стороне сервера файлы cookie, устанавливаемые сервером, и файлы cookie, устанавливаемые клиентом. Один из таких случаев связан с файлами cookie, которые обычно всегда устанавливаются сервером. Однако неожиданный код (например, XSS-эксплойт, вредоносное расширение или коммит, сделанный невнимательным разработчиком) может установить их на стороне клиента. Данное предложение добавляет сигнал, позволяющий серверам проводить такое различие. В частности, оно определяет префиксы __Http и __HostHttp , которые гарантируют, что файл cookie не будет установлен на стороне клиента с помощью скрипта.

Ограничения доступа к локальной сети

Chrome 140 ограничивает возможность отправлять запросы в локальную сеть пользователя, требуя запроса разрешения. Запрос в локальной сети — это любой запрос с общедоступного веб-сайта на локальный IP-адрес или петлевой адрес, а также с локального веб-сайта (например, интрасети) на петлевой адрес. Ограничение возможности веб-сайтов выполнять эти запросы с помощью разрешения снижает риск атак с подделкой межсайтовых запросов на локальные сетевые устройства, такие как маршрутизаторы. Это разрешение также ограничивает возможности сайтов использовать эти запросы для идентификации локальной сети пользователя. Это разрешение ограничено безопасными контекстами. Если разрешение предоставлено, оно также ослабляет блокировку смешанного контента для запросов в локальной сети, поскольку многие локальные устройства по разным причинам не могут получить общедоступные доверенные сертификаты TLS.

Дополнительную информацию см. в разделе Запрос на новое разрешение для доступа к локальной сети .

Включить скрипты SharedWorker для наследования контроллера для URL-адресов скриптов BLOB-объектов

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

Добавить ServiceWorkerStaticRouterTimingInfo

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

Эта функция добавляет две части информации о времени, относящейся к API статической маршрутизации:

  • RouterEvaluationStart : время начать сопоставление запроса с зарегистрированными правилами маршрутизатора.
  • CacheLookupStart : пора начинать поиск в хранилище кэша, если источником является "cache" .

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

Включить условное создание веб-аутентификации на Android (не поставляется)

Изолированные веб-приложения

Представляем API управляемых кадров

Эта функция добавляет API Controlled Frame, доступный только для изолированных веб-приложений (IWA). Как и аналогичные API на других платформах, Controlled Frame позволяет встраивать любой контент, даже сторонний, который невозможно встроить в <iframe> . Controlled Frame также позволяет управлять встроенным контентом с помощью набора методов и событий API. Подробнее об изолированных веб-приложениях см. в разделе «Объяснение изолированных веб-приложений» .

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

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

Добавьте событие clipboardchange

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

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

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

Представляем API-интерфейс «ключ-значение» для отчетов о сбоях

Эта функция представляет новый API-интерфейс «ключ-значение» (предварительное название window.crashReport ), поддерживаемый картой для каждого документа, которая содержит данные, добавленные к отчетам о сбоях.

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

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

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

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

Отменить специальные правила размера шрифта для <h1> в некоторых элементах

Спецификация HTML содержит список специальных правил для тегов <h1> , вложенных в элементы <article> , <aside> , <nav> или <section> .

Эти специальные правила устарели, поскольку они вызывают проблемы с доступностью. А именно, они визуально уменьшают размер шрифта для вложенных тегов <h1> , так что они выглядят как теги <h2> , но ничто в дереве доступности не отражает это визуальное изменение.