Chrome 159 в бете: новый WebTransport, «пассивный» вход по passkey и пререндер сторонних iframe

Chrome 159 вышел в бета-канал 12 ноября 2026 года, стабильная версия запланирована на 8 декабря. Главное в релизе для веб-разработчиков: WebTransport получил стандартный набор API для приоритизации, статистики и управления перегрузкой. Вход по passkey теперь можно предложить без формы логина, а сторонние iframe начнут пререндериться по заголовку сервера.
До стабильного выпуска остаётся около трёх недель. За это время команде, которая ведёт frontend-разработку продукта, стоит прогнать сайт в бете: в релизе меняется поведение CSS-цветов AccentColor, вычисляемых значений background-* и CSSImportRule.styleSheet. Изменения мелкие, но могут задеть тесты и дизайн-системы.
Больше всего релиз даёт тем, кто строит веб-приложения с работой в реальном времени: видеозвонки, облачный гейминг, совместное редактирование, биржевые терминалы. Приоритеты, выбор режима перегрузки и сетевую статистику больше не нужно писать поверх WebSocket вручную: в Chrome 159 они есть в самом API WebTransport.
Что нового в WebTransport в Chrome 159
Google включила по умолчанию сразу восемь изменений WebTransport. Ключевые из них:
- Приоритизация датаграмм. Метод
WebTransportDatagramDuplexStream.createWritable()создаёт независимые потоки отправки датаграмм. У каждого есть атрибутыsendGroupиsendOrder, которыми задаётся относительный приоритет данных в очереди. - Группы отправки для потоков. Исходящие потоки можно распределить по send groups и упорядочить через
sendOrderвнутри группы, со статистикой по потокам и группам. - Управление перегрузкой. Новая опция конструктора
congestionControlпринимает значения"default","throughput"и"low-latency": браузер подбирает алгоритм под сценарий сессии. - Статистика соединения.
WebTransport.getStats()отдаёт время приёма-передачи (RTT) и оценку скорости отправки, если они доступны, а также счётчики просроченных, потерянных и отброшенных датаграмм. Данные доступны и после закрытия соединения. Общих счётчиков байтов и пакетов Chromium пока не отдаёт. - Экспорт ключевого материала.
exportKeyingMaterial()выводит криптографический материал, привязанный к конкретной сессии. Метка и контекст — до 255 байт, длина результата — от 1 до 4096 байт. - Стандартный приёмный поток. Интерфейс
WebTransportReceiveStreamс методомgetStats()считает байты, полученные из сети (bytesReceived) и отданные приложению (bytesRead). Для датаграмм появилась опцияdatagramsReadableType: "bytes"для чтения в собственный буфер (BYOB).
Для продукта это означает меньше самописных обходных решений. Раньше приоритет «голос важнее курсора соседа» или выбор между пропускной способностью и задержкой приходилось реализовывать на уровне приложения. Теперь это делает браузер.
Как работает пассивный вход по passkey (Ambient)
В Chrome 159 стартовал origin trial режима Web Authentication Conditional UI Passive Mode, в документации его также называют «Ambient». Это новый режим вызова navigator.credentials.get() для входа по passkey или паролю. Пробный период по данным Chrome Platform Status рассчитан на версии с 159 по 171.
Отличие от привычного Conditional UI в том, что пассивному режиму не нужна форма логина и подсказка автозаполнения. Браузер показывает ненавязчивое предложение войти, которое пользователь может принять или проигнорировать. Если сохранённых учётных данных нет, интерфейс не появляется, а промис не разрешается. Режимы совместимы: на странице с формой входа один вызов JavaScript может предложить учётные данные и в подсказке автозаполнения, и в пассивном интерфейсе.
Так путь до входа становится короче. Вход в один тап можно предложить на главной, в карточке товара или в блоге, не уводя пользователя на отдельную страницу логина. Чтобы попробовать режим на проде до его стабилизации, нужно зарегистрировать домен в origin trial.
Как включить пререндер сторонних iframe
Начиная с версии 159 Chrome пререндерит и сторонние (cross-origin) фреймы, если HTTP-ответ страницы верхнего уровня содержит заголовок Supports-Loading-Mode: prerender-cross-origin-frames. Без заголовка поведение прежнее: при пререндере браузер откладывает загрузку всех сторонних iframe до момента перехода. Новая опция полезна, когда без iframe страница бесполезна, например при встроенном платёжном виджете, карте или видеоплеере.
Какие ещё изменения в CSS, RegExp и Sanitizer API
Другие изменения, включённые по умолчанию:
- Sanitizer API получил опцию
javascriptURLs: очистку ссылок видаjavascript:теперь задаёт разработчик, а не выбранный метод API. - RegExp: в регулярных выражениях Unicode-режима появились экранирования
\A,\zи\Zдля границ всей строки (предложение TC39). - CSS: системные цвета
AccentColorиAccentColorTextотражают значениеaccent-colorэлемента, scroll snap корректно работает в контейнерах с прокруткой по одной оси, аCSSImportRule.styleSheetвозвращаетnull, если у@importнет таблицы стилей. - Web Speech API: у
SpeechRecognitionResultпоявилисьspeechStartTimeиspeechEndTimeдля синхронизации распознанного текста с медиа и субтитрами. - Media Session:
setMicrophoneActive()иsetCameraActive()возвращают промис, как требует спецификация W3C.
Что Open Web Docs нашёл в сборке: Global Privacy Control и элемент install
В бете Chrome 159 есть поддержка Global Privacy Control (navigator.globalPrivacyControl и заголовок Sec-GPC), которой нет в официальных заметках к релизу. Её 13 ноября нашёл проект Open Web Docs, который поддерживает данные о совместимости MDN: он открыл запрос на обновление browser-compat-data под бету Chrome 159. Его автоматический сборщик проверяет реальные API в браузере и подтвердил большую часть нововведений WebTransport.
Для элемента <install> и navigator.install() сборщик фиксирует появление только в версии 159, хотя Chrome Platform Status указывает 158. Об этом элементе мы писали в новости о Chrome 158. Если вы планировали кнопку установки PWA, проверьте её работу в обеих версиях, а не по номеру из заметок.
Что проверить команде до 8 декабря
- Прогоните регресс в Chrome Beta. Особенно формы с
accent-color, карусели со scroll snap и код, который читает вычисляемые значенияbackground-*. - Оцените WebTransport для реалтайма. Если у вас WebSocket с самописной приоритизацией, сравните задержки с режимом
"low-latency"и собирайте метрики черезgetStats(). - Решите, нужен ли пассивный вход. Для продуктов с passkey это быстрый способ поднять долю входов. Регистрация в origin trial обязательна.
- Проверьте страницы со сторонними виджетами. Если вы используете Speculation Rules, решите, стоит ли включать пререндер iframe заголовком: он ускоряет переход, но тратит трафик и ресурсы на стороне виджета.
- Учтите Global Privacy Control. Если на сайте есть баннер согласия на cookies, решите, как реагировать на сигнал
Sec-GPC.
Часто задаваемые вопросы
Когда Chrome 159 выйдет в стабильном канале?
По графику Chrome Platform Status — 8 декабря 2026 года. Бета доступна с 12 ноября.
Заменит ли WebTransport протокол WebSocket?
Не сразу. WebTransport работает поверх HTTP/3 и даёт ненадёжную доставку датаграмм, несколько потоков без блокировки и теперь приоритизацию. Для простых чатов и уведомлений WebSocket по-прежнему проще. Подробнее о нём — в статье WebSocket: особенности и использование на React.
Можно ли использовать пассивный вход по passkey без origin trial?
В стабильной версии Chrome без регистрации домена в пробной программе — нет, режим пока экспериментальный и может измениться до стабилизации.
Источники
- Chrome for Developers: Chrome 159 beta, 12 ноября 2026 года (первоисточник).
- Chrome Platform Status: Chrome 159 Release Notes, список функций и дата стабильного выпуска.
- MDN browser-compat-data (Open Web Docs): Updates for Chrome 159 beta, 13 ноября 2026 года.
- Chrome Releases: Chrome Beta for Desktop Update, 12 ноября 2026 года.
Сделаем веб-приложение с работой в реальном времени
Спроектируем обмен данными на WebTransport или WebSocket, настроим вход по passkey и проверим продукт в бета-версиях браузеров до релиза.