|
Компания Google опубликовала релиз web-браузера Chrome 154. Одновременно доступен стабильный выпуск свободного проекта Chromium, выступающего основой Chrome. Браузер Chrome отличается от Chromium использованием логотипов Google, наличием системы отправки уведомлений в случае краха, модулями для воспроизведения защищённого от копирования видеоконтента (DRM), системой автоматической установки обновлений, постоянным включением Sandbox-изоляции, поставкой ключей к Google API и передачей RLZ-параметров при поиске. Для тех, кому необходимо больше времени на обновление, отдельно поддерживается ветка Extended Stable, сопровождаемая 8 недель. Следующий выпуск Chrome 155 в рамках нового двухнедельного цикла разработки запланирован на 6 октября.
Основные изменения в Chrome 154 (1, 2,
3, 4):
- Продолжено развитие AI-режима, позволяющего взаимодействовать с AI-агентом из адресной строки или со страницы, показываемой при открытии новой вкладки. В новой версии пользователям из США предоставлена возможность использования AI-ассистента Gemini для виртуальной примерки одежды при осуществлении покупок в некоторых интернет-магазинах. В Chrome для iOS реализована поддержка голосового общения с Gemini в режиме реального времени, например, для обсуждения содержимого открытой web-страницы.
- Удалены программные интерфейсы и технологии, развивавшиеся в рамках инициативы Privacy Sandbox для использования вместо сторонних Cookie. Смысл поставки данных API потерян после решения не прекращать в Chrome поддержку сторонних Cookie. Удалены следующие API: Topics (пришёл на смену API FLoC), API Protected Audience, API Shared Storage, API Attribution Reporting,
Private Aggregation, API Related Website Sets и requestStorageAccessFor.
- В версии для платформы Android задействован режим LNP (Local Network Protection), требующий получения отдельного подтверждения для доступа приложения к внутренним интранет-подсетям (192.168.x.x, 10.x.x.x и т.п.). Режим позволяет блокировать атаки на ресурсы в локальной сети и предотвращать сканирования сети с целью скрытой идентификации пользователя и сбора сведений об окружении пользователя.
- Для выполнения запросов через API Background Fetch теперь требуется получение полномочий LNA (Local Network Access) при отправке данных на серверы в локальной сети (192.168.0.0/16, 10.0.0.0/8 и т.п.) или при обращении к loopback-интерфейсу (127.0.0.0/8). Помимо этого для API Background Fetch применены проверки CORS (Cross-Origin Resource Sharing) для унификации ограничений, применяемых к API Background Fetch и Fetch. Изменения блокируют использование Background Fetch для обхода ограничений Cross-Origin и осуществления CSRF-атак на маршрутизаторы, точки доступа, принтеры, корпоративные web-интерфейсы и другие устройства и сервисы, принимающие запросы только из локальной сети.
- Добавлен опциональный режим оптимизации "ServiceWorkerAutoPreload", осуществляющий отправку сетевого запроса параллельно с инициализацией Service Worker-а.
- Добавлен HTML-элемент <install> и JavaScript API
Web Install (метод navigator.install()), предназначенные для вывода сайтом запроса на установку web-приложения.
Установка производится после явного подтверждения операции пользователем. Предложенная возможность может применяться при создании каталогов-магазинов web-приложений или для упрощения установки web-приложений для работы с текущим сайтом.
- Добавлен API Window Shape (метод window.setShape), позволяющий изолированным web-приложениям изменять форму окна, например, создавать непрямоугольные окна, плавающие панели и перекрывающиеся элементы. API пока доступен только в ChromeOS.
- Добавлены настройки для управления типами контента, к которым применяется автозаполнение в web-формах. Например, можно отключить сохранение и автозаполнение контактных данных и информации для проведения платежей. Также возможна настройка шаблонов URL для отключения автозаполнения в привязке к отдельным сайтам.
- По умолчанию включён вывод запроса подтверждения операции при обращении к сайтам по HTTP.
- Добавлена поддержка адаптивного выбора размера iframe-блоков, автоматически подстраиваемого под содержимое для исключения появления внутренних полос прокрутки. Возможность включается через указание CSS-свойства "frame-sizing" (например, "frame-sizing: content-height") в родительской странице и добавление в заголовок содержимого iframe
элемента '<meta name="responsive-embedded-sizing" content="allow-origins=*">'.
- В CSS-свойстве scroll-marker-group реализованы режимы "links" и "tabs" для управление порядком переключения фокуса. В режиме "links" группа маркеров ("::scroll-marker-group") работает как обычное навигационное меню (маркеры прокрутки обрабатываются как ссылки, перебираемые клавишей Tab). В режиме "tabs" группа маркеров работает как набор вкладок, навигация между которыми осуществляется клавишами управления курсом. Также доступно два параметра "before" и "after", которые управляют обработкой группы маркеров относительно контента (при указании "before" маркеры будут обработаны в первую очередь, а "after" - только после завершения навигации по контенту).
- Реализовано CSS-свойство text-decoration-inset, позволяющее настроить начало и конец отрисовки декораторов (подчёркивание, зачёркивание и т.п.) относительно краёв текста. Например, для сокращения декоратора на 10 пикселей можно указать "text-decoration-inset: 10px;", а для удлинения - "text-decoration-inset: -10px;".
- В JavaScript-интерфейс Iterator добавлен метод Iterator.prototype.includes для проверки наличия в итераторе определённого элемента.
Кроме нововведений и исправления ошибок в новой версии устранено 108 уязвимостей. 11 проблемам присвоен критический уровень опасности, подразумевающий, что уязвимости позволяют обойти все уровни защиты браузера и выполнить код в системе за пределами sandbox-окружения. 4 критических проблемы вызваны обращением к уже освобождённой памяти (use-after-free) в AdFilter, WindowDialog, ServiceWorker и API Fullscreen, а 7 - переполнением буфера в WebGL, ANGLE и коде для работы с GPU.
|