Chrome 154 beta принёс постквантовое шифрование в Web Crypto
Desktop-сборка 154.0.8037.0 вышла 2 сентября для Windows, macOS, Linux, ChromeOS и Android.

Google 2 сентября перевела Chrome 154 в бету для Android, ChromeOS, Linux, macOS и Windows; desktop-сборка имеет номер 154.0.8037.0, для Android и ChromeOS сборки выходят отдельно. Самое заметное для веб-разработчиков: в Web Crypto API добавили постквантовые алгоритмы ML-KEM и ML-DSA, WebSocket научился принимать объект настроек и ходить в локальную сеть с явным разрешением, а у CSS-свойства scroll-marker-group появились режимы links и tabs.
Бета обычно доживает до стабильного релиза без крупных изменений, поэтому всё перечисленное стоит проверять уже сейчас: часть новинок меняет поведение существующего кода. Background Fetch начинает применять CORS, а AbortController теперь передаёт причину отмены в Response и ReadableStream. Автор поста в блоге Chrome for Developers Рэйчел Эндрю; отдельных региональных ограничений на бету в источнике нет.
Ключевые выводы
- Web Crypto получил ML-KEM 768 и 1024, ML-DSA 44, 65 и 87, ChaCha20-Poly1305 и гибридную схему X-Wing.
- WebSocket принимает options bag:
new WebSocket(url, { protocols: "soap" }); новое полеtargetAddressSpaceпозволяет подключаться к локальным адресам при secure context и разрешении Local Network Access. scroll-marker-groupполучил режимыlinksиtabs; в режимеtabsактивный маркер остаётся единственным tab-stop, а неактивный контент скрывается из дерева доступности.CSSStyleValueи связанные конструкторы доступны в воркерах;text-decoration-insetпринимаетauto, длину, процент и одно-/двухзначную запись;FontFace.widthстал алиасомstretch.- Background Fetch теперь соблюдает CORS; WebGPU получил модификаторы
frag_depthlessиgreater, которые позволяют не терять ранний Z-тест.
Что даёт постквантовая криптография в браузерном API
До сих пор постквантовые алгоритмы в Chrome работали только на уровне TLS, незаметно для страницы. В 154 они выходят в JavaScript: через crypto.subtle можно генерировать ключи и выполнять инкапсуляцию ML-KEM (стандарт NIST для обмена ключами) и подписи ML-DSA. Добавлены также ChaCha20-Poly1305 и X-Wing, гибрид классического X25519 и ML-KEM. На практике это нужно тем, кто делает сквозное шифрование в веб-приложениях: мессенджерам, хранилищам паролей, локальным подписям документов. Проверить у себя просто: вызвать crypto.subtle.generateKey с новым именем алгоритма в бете и убедиться, что он не бросает NotSupportedError.
Зачем WebSocket объект настроек и локальная сеть
Конструктор WebSocket много лет принимал только URL и строку или массив протоколов. Теперь второй аргумент может быть объектом: new WebSocket(url, { protocols: "soap" }). Это задел под будущие опции без ломки сигнатуры. Второе поле, targetAddressSpace, решает конкретную боль: страница с публичного HTTPS-сайта не могла открыть сокет к устройству в локальной сети. В 154 это возможно, но при трёх условиях: secure context, разрешение пользователя по механизму Local Network Access и имя хоста, которое резолвится в локальный IP. Сценарий типичный для панелей управления IoT и локальных серверов разработки.
Что меняется в CSS
Свойство scroll-marker-group, которое вместе с псевдоэлементами ::scroll-marker позволяет делать карусели и табы без JavaScript, получило два режима. links ведёт себя как набор ссылок, tabs как настоящий tablist: активный маркер единственный останавливается по Tab, а контент неактивных вкладок исключается из accessibility tree. Это закрывает главную претензию к CSS-каруселям: раньше скринридер видел все панели сразу.
Из остального: text-decoration-inset позволяет отступать подчёркивание от краёв текста и принимает auto, длину, процент и запись из одного или двух значений; FontFace.width и дескриптор font-width в @font-face стали алиасами stretch и font-stretch; типизированная объектная модель CSS (CSSStyleValue и конструкторы) теперь доступна в воркерах, что упрощает расчёты стилей вне главного потока.
Что может сломаться после обновления
- Background Fetch теперь применяет CORS: фоновые загрузки с чужих доменов без правильных заголовков начнут падать.
AbortControllerпрокидываетreasonвResponseиReadableStream: код, который сравнивал ошибку отмены с конкретнымAbortError, может получить другой объект.- По заметкам к релизу, браузер в ряде сценариев использует события
clickвместо парыpointerdown/pointerup; обработчики, завязанные на порядок этих событий, стоит перепроверить. - В WebGPU появились модификаторы
frag_depthlessиgreater: шейдеры, которые пишут глубину, могут вернуть себе ранний Z-тест, но это требует правки WGSL.
Как попробовать
Бета ставится параллельно со стабильным Chrome со страницы загрузки Chrome Beta; анонс сборки опубликован в Chrome Releases; на Android доступна через бета-программу в магазине. Стабильный релиз 154 по обычному графику Chrome выходит примерно через четыре недели после беты, точную дату Google в посте не называет. До этого времени полезно прогнать сайт с включёнными фоновыми загрузками и WebSocket-подключениями к локальным устройствам.
Что происходит в других движках, можно сравнить с недавними релизами: WebKit переписал загрузчик модулей для Safari 27, а Firefox 155 добавил CSS-функцию progress(). Полный список изменений Chrome 154 с примерами кода лежит в блоге Chrome for Developers.
Источники: Chrome for Developers: Chrome 154 beta, Chrome Releases: Chrome Beta for Desktop Update
Изображение на обложке: Google, логотип Chrome












