Хром 148

Дата выхода стабильной версии: 5 мая 2026 года.

Если не указано иное, следующие изменения относятся к стабильной версии Chrome 148 для Android, ChromeOS, Linux, macOS и Windows.

CSS и UI

CSS-запросы контейнеров, содержащие только имя

Запрос к контейнеру CSS возможен только по его имени, при этом тип контейнера указывать не нужно:

#container {
  container-name: --foo;
}
@container --foo {
  input { background-color: green; }
}
<div id="container">
  <div><input></div>
</div>

Ранее для использования @container требовалось указать тип контейнера в дополнение к его имени.

Отслеживание ошибки #40287550 | Запись на ChromeStatus.com | Спецификация

Правило At: определение функций CSS

Эта функция добавляет в CSS- @supports функцию at-rule() , которая позволяет разработчикам определять наличие поддержки `@-rule` в CSS.

Отслеживание ошибки #40211832 | Запись на ChromeStatus.com | Спецификация

Формат шрифта Open Font Format avar2: формирование текста и отрисовка глифов

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

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

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

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

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

Отслеживание ошибки #40246300 | Запись на ChromeStatus.com | Спецификация

Ключевое слово правила отмены

Ключевое слово revert-rule откатывает каскад до предыдущего правила, аналогично тому, как revert-layer откатывает каскад до предыдущего слоя. Например:

div { color: green; }
div { color: revert-rule; /* Effectively green */ }

Это особенно полезно в сочетании с условными операторами, поскольку позволяет отменить текущее правило, если какое-либо условие не выполняется:

div {
  display: if(style(--layout: fancy): grid; else: revert-rule);
}

Отслеживание ошибки #393582263 | Запись на ChromeStatus.com | Спецификация

Ленивая загрузка видео- и аудиоэлементов

Добавляет атрибут loading к элементам <video> и <audio> , позволяя разработчикам откладывать загрузку медиаресурсов до тех пор, пока элемент не окажется вблизи области просмотра, используя loading="lazy" . Это соответствует существующему поведению отложенной загрузки для элементов <img> и <iframe> , улучшая производительность загрузки страницы и сокращая потребление данных.

Отслеживание ошибки #469111735 | Запись на ChromeStatus.com | Спецификация

text-decoration-skip-ink: all

Добавлена ​​поддержка значения all для свойства CSS text-decoration-skip-ink .

Свойство text-decoration-skip-ink уже поддерживает значения auto и none . Значение all расширяет эти возможности, безусловно применяя пропуск чернил ко всем глифам, включая символы китайского, итальянского и корейского языков, тогда как auto оставляет символы китайского, итальянского и корейского языков непропущенными, поскольку пропуск чернил, как правило, приводит к нежелательным визуальным результатам для идеографических шрифтов в типичных позициях подчеркивания.

С помощью text-decoration-skip-ink: all разработчики, которые настроили text-underline-position или text-underline-offset во избежание конфликта с глифами китайского, итальянского и корейского языков, могут явно включить пропуск чернил для этих символов.

Отслеживание ошибки #40675832 | Запись на ChromeStatus.com | Спецификация

Правильно установите dropEffect для событий dragEnter , dragLeave и dragOver

В соответствии со спецификациями перетаскивания, атрибут dropEffect объекта dataTransfer должен иметь определенные предопределенные значения для dragEnter , dragOver и dragLeave . Для dragEnter и dragOver значение dropEffect должно зависеть от текущего effectAllowed , а dragLeave dropEffect всегда должно быть none . В настоящее время Chromium не придерживается этих правил. С запуском этой функции Chromium начнет соблюдать спецификацию и присваивать этому атрибуту правильные значения, чтобы веб-разработчики могли начать на него полагаться.

Отслеживание ошибки #434151262 | Запись на ChromeStatus.com | Спецификация

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

Согласно спецификации HTML, при начале перетаскивания пользовательский агент должен отправлять соответствующие события источнику перетаскивания, чтобы указать, что поток событий указателя завершился, и что ему не следует ожидать дальнейших событий от этого указателя. Этот код был частично реализован для событий мыши и полностью реализован для перетаскивания касанием на Android. Работая над этой функцией, мы стремимся полностью удовлетворить это требование спецификации на всех других платформах. На практике это означает, что после начала перетаскивания источник перетаскивания теперь будет получать события pointercancel , pointerout и pointerleave указывающие на то, что текущий поток событий завершился.

Отслеживание ошибки #452372355 | Запись на ChromeStatus.com | Спецификация

Возможности

Манифестная локализация

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

Подробнее см. в разделе «Поддержка локализации для манифестов веб-приложений» .

Отслеживание ошибки #380491647 | Запись на ChromeStatus.com | Спецификация

Веб-версия на Android

Веб-последовательный API на Android

API Web Serial предоставляет интерфейс для подключения к последовательным устройствам, либо через последовательный порт в системе пользователя, либо через съемные USB- и Bluetooth-устройства, эмулирующие последовательный порт. Теперь он поддерживается и на Android.

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

Для получения более подробной информации см. руководство по Web Serial API на web.dev и спецификацию Web Serial .

Отслеживание ошибки #365514951 | Запись на ChromeStatus.com

SharedWorker на Android

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

Однако недавнее обсуждение на GitHub (см. обсуждение на GitHub ) предполагает, что непредсказуемый характер жизненного цикла процессов SharedWorker может быть не такой уж значительной проблемой, как считалось ранее. Исходя из этого, SharedWorker повторно включается на Android, пока изучается это поведение для обеспечения стабильной и надежной работы.

Отслеживание ошибки #40290702 | Запись на ChromeStatus.com | Спецификация

Веб-API

WebGPU: функция linear_indexing

Эта функция добавляет функциональность в спецификацию WebGPU после её первого внедрения в браузер.

Добавляет два новых встроенных значения для вычислительных шейдеров, улучшающих удобство использования. Они реализованы для всех бэкендов (в виде полифилов существующих встроенных значений).

Отслеживание ошибки #482840564 | Запись на ChromeStatus.com | Спецификация

Режим мгновенной веб-аутентификации в пользовательском интерфейсе

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

Отслеживание ошибки #408002783 | Запись на ChromeStatus.com | Спецификация

Получите возможности безопасного подтверждения платежей.

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

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

Отслеживание ошибки #484043990 | Запись на ChromeStatus.com | Спецификация

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

В этом обновлении в конструктор SharedWorker добавлена ​​новая опция — extendedLifetime: true . Эта опция позволяет поддерживать работу общего рабочего процесса даже после выгрузки всех текущих клиентов. Это позволяет страницам выполнять асинхронную работу, требующую JavaScript, после выгрузки страницы, без необходимости полагаться на сервис-воркер.

Отслеживание ошибки #400473072 | Запись на ChromeStatus.com | Спецификация

API подсказок

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

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

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

Отслеживание ошибки #417526788 | Запись на ChromeStatus.com | Спецификация

Сеть и связь

Правила IDNA ContextJ

IDNA — это механизм кодирования не-ASCII символов в доменных именах. Он кодирует URL-адрес, например http://네이버.한국/ как http://xn--950bt9s8xi.xn--3e0b707e/ (перенаправление на naver.com).

Спецификация URL устанавливает флаг CheckJoiners , который включает правила ContextJ в IDNA2008 . Это запрещает ZWNJ (U+200C ZERO WIDTH NON-JOINER) и ZWJ (U+200D ZERO WIDTH JOINER) в большинстве мест URL. Реализация передает опцию UIDNA_CHECK_CONTEXTJ в ICU, где это правило и реализуется.

Отслеживание ошибки #40765949 | Запись на ChromeStatus.com | Спецификация

Повторное использование изображений, не хранящихся в хранилище, при переназначении с тем же источником

Разрешить повторное использование доступных изображений в одном документе, чтобы обойти Cache-Control: no-store reload при переназначении одного и того же значения src элементу <img> . Ранее Blink повторно загружал изображение, даже если оно уже было декодировано и доступно в документе. Это соответствует существующему поведению Gecko и WebKit.

Отслеживание ошибки #486562295 | Запись на ChromeStatus.com | Спецификация

Производительность

ContentType в Resource Timing

Добавляет поле contentType в PerformanceResourceTiming для хранения строки, соответствующей HTTP-заголовку Content-Type полученного ресурса, возвращаемого сервером.

Отслеживание ошибки #1366706 | Запись на ChromeStatus.com | Спецификация

WebRTC Datachannel: Всегда согласовывайте каналы передачи данных.

Реализует расширение WebRTC alwaysNegotiateDataChannels , которое определяет способ согласования каналов передачи данных в предложении SDP до создания канала передачи данных. Это также согласовывает раздел m= данных до любых разделов m= аудио или видео и использует его в качестве «раздела m= помеченного поставщиком» для BUNDLE .

Это означает, что:

const pc = new RTCPeerConnection({ alwaysNegotiateDataChannels: true });
const offer = await pc.createOffer();

создаст предложение с приложением m-line в рамках SDP, и что:

const pc = new RTCPeerConnection({ alwaysNegotiateDataChannels: true });
pc.addTransceiver('audio');
pc.createDataChannel('somechannel');
const offer = await pc.createOffer();

будет составлено предложение, которое предусматривает согласование строки заявки m, а затем строки аудио m в рамках SDP.

Отслеживание ошибки #433898678 | Запись на ChromeStatus.com | Спецификация

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

Декларативные CSS-модульные скрипты

Декларативные CSS-модули (Scripts) — это расширение существующих скриптов CSS-модулей. Они позволяют разработчикам совместно использовать декларативные таблицы стилей с теневыми DOM-элементами, включая декларативные теневые DOM-элементы. Разработчики могут определять встроенные модули стилей с помощью <style type="module" specifier="foo"> и применять декларативный модуль к декларативному теневому DOM, ссылаясь на спецификатор или URL-адрес, например, <template shadowrootmode="open" shadowrootadoptedstylesheets="foo"> .

Origin Trial | Отслеживание ошибки #448174611 | Запись на ChromeStatus.com | Спецификация

API синхронизации контейнеров

API Container Timing позволяет отслеживать, когда аннотированные разделы DOM отображаются на экране и завершают свою первоначальную отрисовку. Разработчик сможет помечать подразделы DOM атрибутом containertiming (аналогично elementtiming в API Element Timing) и получать данные о производительности, когда этот раздел отрисовывается впервые. Этот API позволит разработчикам измерять время работы различных компонентов на своих страницах.

Origin Trial | Отслеживание ошибки #382422286 | Запись на ChromeStatus.com | Спецификация

HTML-элемент установки веб-приложения

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

Origin Trial | Отслеживание ошибки #454827186 | Запись на ChromeStatus.com | Спецификация

Длительность анимации в стиле кадров продолжительности

Добавьте информацию styleDuration и forcedStyleDuration в API для длинных кадров анимации, что позволит разработчикам различать время, затрачиваемое на стиль и компоновку.

Origin Trial | Отслеживание ошибки #476826067 | Запись на ChromeStatus.com | Спецификация

HTML-в-холсте

HTML-in-canvas позволяет настраивать отображение HTML с помощью canvas, используя три новых примитива: атрибут для включения элементов canvas ( layoutsubtree ), методы для отрисовки дочерних элементов (2d: drawElementImage , webgl: texElementImage2D , webgpu: copyElementImageToTexture ) и событие paint, которое срабатывает для обработки обновлений.

Origin Trial | Отслеживание ошибки #500967896 | Запись на ChromeStatus.com | Спецификация

Списки разрешенных подключений

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

Предлагаемая реализация предполагает распространение списка разрешенных конечных точек с сервера через заголовок HTTP-ответа. Перед установлением любого соединения пользовательским агентом от имени страницы агент проверит целевой адрес на соответствие этому списку разрешенных точек; соединения с проверенными конечными точками будут разрешены, а соединения, не соответствующие записям в списке, будут заблокированы.

Origin Trial | Отслеживание ошибки #447954811 | Запись на ChromeStatus.com | Спецификация

Параметры выборки API для оперативного выполнения

Добавляет параметры выборки в API подсказок. Они управляют тем, как токены выбираются из модели, предоставляя разработчикам контроль над «креативностью» или «случайностью» выходных данных. Кроме того, добавляют атрибуты к экземпляру LanguageModel для чтения заданных значений, а также статическую функцию LanguageModel для получения значений по умолчанию и максимальных значений этих параметров.

В первой реализации добавлены параметры temperature и topK .

Origin Trial | Отслеживание ошибки #496663356 | Запись на ChromeStatus.com | Спецификация

Инструкции по обработке в формате HTML

Инструкции обработки (синтаксис: <?target data> ) — это существующая конструкция DOM, представленная в XML, которая позволяет использовать объекты узлов, не являющиеся элементами, но имеющие некоторое семантическое значение для обработки документа.

Например, их можно использовать для обозначения диапазонов для потоковой передачи или подсветки без необходимости создания новых элементов DOM и изменения структуры DOM с точки зрения CSS, или в качестве директив для HTML-парсера о том, как буферизовать и передавать данные.

Отслеживание ошибки #481087638 | Запись на ChromeStatus.com

Диапазон непрозрачности

OpaqueRange представляет собой динамически изменяющийся текстовый диапазон внутри значения элемента управления формы, например, <textarea> или текстового поля <input> , что позволяет разработчикам работать с текстовыми значениями, используя API, аналогичные диапазонам.

Это позволяет выполнять такие операции, как getBoundingClientRect() , getClientRects() , а также интегрироваться с API пользовательской подсветки CSS для пользовательского интерфейса, например, для встроенных подсказок, подсветки и привязанных всплывающих окон. Он сохраняет инкапсуляцию, предоставляя доступ только к смещениям значений, возвращая null для startContainer и endContainer , поэтому конечные точки DOM и внутренняя структура не раскрываются.

Тестирование Origin | Отслеживание ошибки #421421332 | Запись на ChromeStatus.com