Published: March 05, 2025
Если не указано иное, следующие изменения относятся к новейшей бета-версии Chrome для Android, ChromeOS, Linux, macOS и Windows. Подробнее о перечисленных здесь функциях можно узнать по предоставленным ссылкам или из списка на ChromeStatus.com. Chrome 135 находится в бета-версии по состоянию на 5 марта 2025 года. Вы можете загрузить последнюю версию на Google.com для настольных компьютеров или в Google Play Store для Android.
CSS и UI
В этом релизе добавлено тринадцать новых функций CSS и пользовательского интерфейса.
Anchor positioning remembered scroll offset
Добавлена поддержка концепции запомненного смещения прокрутки . Когда позиционируемый элемент имеет якорь по умолчанию и привязан к нему с одной стороны, а с другой — к исходному содержащему блоку, смещение прокрутки будет учитываться при определении размера элемента. Это означает, что вы можете использовать все видимое пространство (используя position-area ) для привязанного элемента при прокрутке документа с заданным смещением прокрутки. Чтобы избежать изменения макета (размера элемента) каждый раз при прокрутке документа, браузер использует запомненное смещение прокрутки , а не всегда использует текущее смещение прокрутки. Запомненное смещение прокрутки обновляется в точке пересчета якоря , которая представляет собой либо позицию, где позиционируемый элемент отображается изначально, либо выбор другого варианта позиционирования ( position-try-fallbacks ).
CSS Inertness
Инертность элемента влияет на возможность его фокусировки, редактирования, выделения и поиска с помощью функции «Найти на странице». Она также влияет на его видимость в дереве доступности. Свойство interactivity определяет, является ли элемент и его потомки в плоском дереве (включая текстовые блоки) инертными или нет. Свойство interactivity принимает одно из двух значений: auto или inert .
Logical overflow properties
Свойства CSS overflow-inline и overflow-block позволяют задавать переполнение в направлении строк и блоков относительно режима письма. В горизонтальном режиме письма overflow-inline соответствует overflow-x , а в вертикальном — overflow-y .
Sign-related functions: abs() and sign()
The dynamic-range-limit property
Позволяет странице ограничивать максимальную яркость HDR-контента.
The shape() function
Функция shape() позволяет создавать адаптивные фигуры произвольной формы в свойстве clip-path . Она позволяет определять последовательность команд, эквивалентных командам в path() . Однако команды принимают адаптивные единицы измерения (например, % или vw ), а также любые значения CSS, такие как пользовательские свойства.
The ::column pseudo-element
Псевдоэлемент ::column , позволяющий применять ограниченный набор стилей к сгенерированным фрагментам. В частности, это ограничено стилями, которые не влияют на макет и, следовательно, могут быть применены после компоновки.
::scroll-button() pseudo-elements
Разрешите создание интерактивных кнопок прокрутки в качестве псевдоэлементов. Например:
.scroller {
overflow: auto;
}
.scroller::scroll-button(inline-start) {
content: "<";
}
.scroller::scroll-button(inline-end) {
content: ">";
}
Эти элементы должны быть фокусируемыми и вести себя как кнопки (включая их стили UA). При активации должна выполняться прокрутка в указанном направлении на определенное расстояние. Если прокрутка в этом направлении невозможна, они должны быть отключены (и иметь стиль :disabled ), в противном случае они включаются (и имеют стиль :enabled ). Селектор позволяет определять кнопки в четырех логических направлениях: block-start , block-end , inline-start , inline-end ; а также в четырех физических направлениях: up , down , left , right .
::scroll-marker and ::scroll-marker-group
Добавляет элементы ::scroll-marker и ::scroll-marker-group для прокручиваемых контейнеров. Эти псевдоэлементы позволяют создать набор фокусируемых маркеров для всех связанных элементов внутри прокручиваемого контейнера.
Nested pseudo elements styling
Позволяет стилизовать псевдоэлементы, вложенные в другие псевдоэлементы. На данный момент поддерживаются: ::before::marker и ::after::marker а ::column::scroll-marker будет добавлена в будущем.
Partitioning :visited links history
Чтобы исключить утечку истории просмотров пользователей, элементы привязки стилизуются как :visited только в том случае, если по ним ранее переходили с этого сайта верхнего уровня и из этого фрейма. Стилизуя только те ссылки, по которым ранее переходили на этом сайте и во фрейме, многочисленные атаки по побочным каналам, разработанные для получения информации о стиле ссылок :visited , теперь устарели, поскольку они больше не предоставляют сайтам новую информацию о пользователях.
Существует исключение для самоссылок , где ссылки на собственные страницы сайта могут быть оформлены как :visited даже если по ним ранее не переходили на этом же самом сайте верхнего уровня и в этом же источнике фрейма. Это исключение включено только в фреймах верхнего уровня или подфреймах, имеющих тот же источник, что и фрейм верхнего уровня. Преимущества в плане конфиденциальности сохраняются, поскольку сайты уже знают, какие из своих подстраниц посещал пользователь, поэтому новая информация не раскрывается. Это исключение было запрошено сообществом и улучшает пользовательский опыт.
Функциональная запись прогресса интерполяции: функция CSS *progress()
переменные safe-area-max-inset- *
В дополнение к переменным среды safe-area-inset , Chrome теперь также поддерживает варианты max-area-safe-inset- * этих переменных. В отличие от динамических отступов, max-inset не изменяется и представляет собой максимально возможный безопасный отступ.
Эти параметры необходимы при создании высокопроизводительных веб-интерфейсов, охватывающих всю инфраструктуру.
Веб-API
Добавить поддержку MediaStreamTrack в Web Speech API
Добавить поддержку MediaStreamTrack в Web Speech API. Web Speech API — это стандартный веб-API, позволяющий разработчикам интегрировать распознавание и синтез речи в свои веб-страницы. В настоящее время Web Speech API использует микрофон пользователя по умолчанию в качестве аудиовхода. Поддержка MediaStreamTrack позволяет веб-сайтам использовать Web Speech API для создания субтитров к другим источникам звука, включая удаленные аудиодорожки.
Blob URL Partitioning: Fetching and navigation
В продолжение функции разделения хранилища, эта функция реализует разделение доступа к URL-адресам BLOB-объектов по ключу хранилища (сайт верхнего уровня, источник фрейма и логическое значение has-cross-site-ancestor), за исключением навигации верхнего уровня, которая останется разделенной только по источнику фрейма.
CSP require-sri-for for scripts
Директива require-sri-for позволяет утверждать, что каждый ресурс заданного типа должен быть проверен на целостность. Если попытка загрузки ресурса этого типа будет предпринята без метаданных целостности, она завершится неудачей и вызовет сообщение о нарушении CSP. Данное намерение охватывает значение "script" этой директивы.
Создайте клиент сервис-воркера и наследуйте контроллер сервис-воркера для iframe srcdoc
В настоящее время контекстные документы srcdoc не являются клиентами Service Worker и не охватываются Service Worker родительского объекта. Это приводит к некоторым несоответствиям (например, Resource Timing сообщает об URL-адресах, которые загружают эти документы, но Service Worker их не перехватывает). Цель данного решения — устранить эти несоответствия путем создания клиентов Service Worker для iframe-объектов srcdoc и обеспечения их наследования контроллера Service Worker родительского объекта.
Dispatching click events to captured pointer
Если указатель перехватывается во время обработки события pointerup , событие click будет отправлено на перехваченный целевой объект, а не на ближайший общий предок событий pointerdown и pointerup , как это предусмотрено спецификацией событий пользовательского интерфейса. Для незахваченных указателей целевой объект click остается неизменным.
Float16Array
Добавляет массив типа Float16Array . При записи в экземпляры Float16Array числовые значения округляются до стандарта IEEE fp16.
Включение инициатора навигации в ключ раздела HTTP-кэша.
В схему кэширования HTTP в Chrome добавлен логический параметр is-cross-site-main-frame-navigation для предотвращения межсайтовых атак с утечкой данных, связанных с навигацией верхнего уровня. В частности, это предотвратит межсайтовые атаки, при которых злоумышленник может инициировать навигацию верхнего уровня на заданную страницу, а затем перейти к ресурсу, заведомо загружаемому этой страницей, чтобы получить конфиденциальную информацию по времени загрузки. Это изменение также повышает конфиденциальность, предотвращая использование вредоносным сайтом навигации для определения того, посещал ли пользователь данный сайт ранее.
HSTS tracking prevention
Предотвращает отслеживание пользователей третьими лицами через кэш HSTS.
Эта функция разрешает обновление HSTS только для навигации верхнего уровня и блокирует обновление HSTS для запросов к подресурсам. Это делает невозможным использование кэша HSTS сторонними сайтами для отслеживания пользователей в интернете.
Команды вызывающего процесса: атрибуты command и commandfor
Атрибуты command и commandfor элементов <button> позволяют назначать поведение кнопкам более доступным и декларативным способом, уменьшая количество ошибок и упрощая объем JavaScript, необходимого для интерактивности. Кнопки с атрибутами commandfor и command — при нажатии, касании или активации нажатием клавиши — будут отправлять CommandEvent на элемент, на который ссылается атрибут commandfor , с некоторыми вариантами поведения по умолчанию, такими как открытие диалоговых окон и всплывающих окон.
Добавьте параметр rel="facilitated-payment" для поддержки платежей через push-уведомления.
Добавляет поддержку <link rel="facilitated-payment" href="..."> в качестве подсказки, указывающей браузеру на необходимость уведомления зарегистрированных платежных клиентов о предстоящем платеже.
Свойство sourceElement объекта NavigateEvent
Когда навигация инициируется элементом (например, щелчком по ссылке или отправкой формы), свойство sourceElement события NavigateEvent вернет инициировавший элемент.
Изменение названия причины использования API NotRestoredReasons
API NotRestoredReasons изменяет некоторые тексты причин, чтобы привести их в соответствие со стандартизированными названиями. Разработчики, отслеживающие эти причины, могут заметить изменение в текстах причин.
API веб-речи на устройстве
Клиентский URL-адрес Service Worker: игнорировать изменения history.pushState
Изменяет свойство Client.url сервис-воркера таким образом, чтобы игнорировать изменения URL-адреса документа, полученные с помощью history.pushState() и других аналогичных API истории. Свойство Client.url предназначено для указания URL-адреса создания HTML-документа, который игнорирует такие изменения.
Поддержка атрибутов rel и relList для SVGAElement
Интерфейс SVGAElement в SVG 2.0 позволяет манипулировать элементами <a> аналогично элементам привязки HTML. Поддержка атрибутов rel и relList повышает безопасность и конфиденциальность для разработчиков. Такое соответствие элементам привязки HTML обеспечивает согласованность и простоту использования в различных веб-технологиях.
Временные метки для кадров, закодированных в формате RTC.
Данная функция заключается в предоставлении веб-ресурсам некоторых временных меток, присутствующих в кадрах, закодированных в WebRTC и передаваемых через RTCPeerConnection. Речь идёт о следующих временных метках:
- Метка времени захвата: метка времени, когда кадр был первоначально захвачен.
- Метка времени получения: метка времени, когда был получен кадр.
Обновите ProgressEvent , чтобы для значений 'loaded' и 'total' использовался тип double.
ProgressEvent имеет атрибуты loaded и total указывающие на прогресс, и их тип теперь unsigned long long . Благодаря этой функции тип этих двух атрибутов изменяется на double , что дает разработчику больше контроля над значением. Например, теперь разработчики могут создать ProgressEvent с total равным 1 и loaded , постепенно увеличивающимся от 0 до 1. Это соответствует поведению по умолчанию элемента HTML <progress> , если атрибут max опущен.
API fetchLater
API fetchLater() — это JavaScript-функция для запроса отложенной загрузки, особенно полезная для более надежной отправки уведомлений в конце жизненного цикла страницы. После вызова в документе отложенный запрос ставится браузером в очередь в состоянии PENDING и будет вызван при выполнении самого раннего из следующих условий:
Документ уничтожается. По истечении заданного пользователем времени. В целях обеспечения конфиденциальности все ожидающие запросы будут удалены после того, как документ попадет в bfcache, независимо от оставшегося времени. Браузер решает, что пора его отправить.
API возвращает объект FetchLaterResult , содержащий логическое поле activated , которое можно обновить, чтобы указать, был ли отправлен отложенный запрос или нет. В случае успешной отправки браузер игнорирует весь ответ, включая тело и заголовки.
Следует отметить, что с точки зрения пользователя API точное время отправки неизвестно.
Новые испытания происхождения
В Chrome 135 вы можете принять участие в следующих новых пробных версиях Origin .
Инициаторы процентных ставок
Эта функция добавляет атрибут interesttarget к элементам <button> и <a> . Атрибут interesttarget добавляет элементу поведение, связанное с проявлением интереса, так что когда пользователь «проявляет интерес» к элементу, на целевом элементе запускаются действия. Действия могут включать, например, отображение всплывающего окна. Пользовательский агент будет обрабатывать обнаружение момента, когда пользователь «проявляет интерес» к элементу, используя такие методы, как наведение курсора мыши на элемент, нажатие специальных горячих клавиш на клавиатуре или длительное нажатие на элемент на сенсорных экранах. Когда интерес проявляется или исчезает, на целевом элементе срабатывает InterestEvent , которое имеет действия по умолчанию в случае всплывающих окон — отображение и скрытие всплывающего окна.
Целостность на основе подписей
Эта функция предоставляет веб-разработчикам механизм для проверки происхождения ресурсов, от которых они зависят, создавая техническую основу для доверия к зависимостям сайта. Вкратце: серверы могут подписывать ответы парой ключей Ed25519, а веб-разработчики могут потребовать от пользовательского агента проверки подписи с использованием определенного открытого ключа. Это полезное дополнение к проверкам на основе URL-адресов, предлагаемым Content Security Policy, с одной стороны, и проверкам на основе содержимого, предоставляемым Subresource Integrity, с другой.
Амортизация и удаление
В этой версии Chrome представлены перечисленные ниже устаревшие и удаленные функции. Для получения списков запланированных, текущих и ранее удаленных функций посетите сайт ChromeStatus.com.
В этой версии Chrome одна функция устарела.
Устаревшие методы получения информации о международной локали
API Intl Locale Info — это предложение TC39 третьего этапа ECMAScript, направленное на расширение объекта Intl.Locale путем предоставления информации о локали, такой как данные о неделе (первый день недели, начало выходных, конец выходных, минимальный день первой недели) и часовой цикл направления текста, используемый в локали. Chrome реализовал это в Chrome 99, однако предложение изменилось, и несколько геттеров были перенесены в функции. Нам необходимо удалить устаревшие геттеры и перезапустить переименованные функции.
В этой версии Chrome удалены три функции.
Удалите устаревший метод navigator.xr.supportsSession
В сентябре 2019 года, после получения отзывов от TAG о структуре API, метод navigator.xr.supportsSession был заменен в спецификации WebXR методом navigator.xr.isSessionSupported . С тех пор он помечен как устаревший в Chrome, выдавая предупреждение в консоли, перенаправляющее разработчиков на обновленный API. Использование этого вызова очень низкое, и подтверждено, что все основные фреймворки, используемые для создания контента WebXR, были обновлены для использования нового вызова.
Удалите свойство canTransition NavigateEvent
В Chrome 108 метод transitionWhile() и свойство canTransition объекта NavigateEvent были заменены новым методом intercept() и свойством canIntercept . В то время метод transitionWhile() был удален. Однако мы забыли удалить свойство canTransition : вместо этого мы оставили его в качестве псевдонима для canIntercept . В Chrome 135 мы исправляем это и удаляем canTransition . Любое использование canTransition можно заменить на canIntercept без изменения поведения.
Снять ограничение WebGPU maxInterStageShaderComponents
Ограничение maxInterStageShaderComponents снимается по ряду причин:
- Избыточность с
maxInterStageShaderVariables: это ограничение уже выполняет аналогичную функцию, контролируя объем данных, передаваемых между этапами шейдера. - Незначительные расхождения: Хотя существуют небольшие различия в способе расчета двух ограничений, эти различия незначительны и могут быть эффективно устранены в рамках
maxInterStageShaderVariables limit. - Упрощение: Удаление
maxInterStageShaderComponentsупрощает интерфейс шейдера и снижает сложность для разработчиков. Вместо управления двумя отдельными ограничениями (которые применяются одновременно, но с незначительными различиями), они могут сосредоточиться на более подходящем и всеобъемлющем параметреmaxInterStageShaderVariables.