Компания Google опубликовала релиз web-браузера Chrome 140. Одновременно доступен стабильный выпуск свободного проекта Chromium, выступающего основой Chrome. Браузер Chrome отличается от Chromium использованием логотипов Google, наличием системы отправки уведомлений в случае краха, модулями для воспроизведения защищённого от копирования видеоконтента (DRM), системой автоматической установки обновлений, постоянным включением Sandbox-изоляции, поставкой ключей к Google API и передачей RLZ-параметров при поиске. Для тех, кому необходимо больше времени на обновление, отдельно поддерживается ветка Extended Stable, сопровождаемая 8 недель. Следующий выпуск Chrome 141 запланирован на 30 сентября.
Основные изменения в Chrome 140:
- Для усиления защиты от отслеживания перемещения между сайтами в режиме инкогнито реализована возможность скрытия сведений об IP-адресе пользователя в сторонних контекстах (например, для страниц, загружаемых через iframe). Скрытие применяется только для доменов, присутствующих в списке MDL (Masked Domain List), и реализовано через отправку запроса не напрямую, а через прокси-сервер Google. Соответственно, сайт увидит в качестве входящего IP-адреса адрес прокси, а не пользователя.
- Для получения выборочной информации об IP-адресах пользователей при включении в браузере режима защиты IP-адресов, отправляющем запросы через транзитный прокси, реализован механизм PRT (Probabilistic Reveal Token). PRT подразумевает отправку заголовка с зашифрованным токеном, позволяющим получить случайную урезанную выборку реальных IP-адресов клиентов, обращавшихся к заданному домену, но не привязанных к конкретным запросам.
Часть PRT-токенов содержит информацию о реальном IP, а часть нет, и определить содержимое токена можно только после истечения определённого времени, расшифровав их ключом, выданным Google после отдельного запроса. Подобная информация об IP-адресах может использоваться в системах защиты от мошенников и для анализа качества web-трафика. - В режиме инкогнито реализован механизм «Script Blocking«, выборочно блокирующий доступ к некоторым JavaScript API, которые можно использовать для скрытой идентификации пользователя. Например, как дополнительный признак для идентификации могут учитываться различия в отрисовке разными браузерами изображений через API Canvas. Блокировка осуществляется только для стороннего контента (например, встроенного на страницу через теги iframe или script) при выявлении активности, специфичной для скрытой идентификации, и для доменов из чёрного списка MDL (Masked Domain List), уличённых в скрытой идентификации.
- Включён режим OverrideDefaultOzonePlatformHintToAuto для автоматического выбора бэкенда в прослойке Ozone, абстрагирующей взаимодействие с графической подсистемой. Изменение позволяет адаптивно активировать Wayland-бэкенд на системах с поддержкой Wayland, не привязываясь по умолчанию с бэкенду X11.
- Включена функция автоматической смены пароля, основанная на использовании AI. Если пароль присутствует в известных базах скомпрометированных учётных записей, то при попытке входа c данным паролем на сайт Chrome выведет предупреждение с предложением изменить пароль. При согласии браузер сгенерирует стойкий к подбору пароль, сменит пароль на сайте (сам заполнит и отправит нужные web-формы) и сохранит новый пароль в менеджере паролей.
- Добавлена оптимизация DSE Prewarming (Default Search Engine Prewarming) для ускорения открытия страницы с результатами поиска после выполнения запроса через адресную строку. При включении DSE Prewarming сразу после перехода фокуса ввода на адресую строку осуществляется пререндеринг макета страницы с результатами поиска и загрузка необходимых для этой страницы ресурсов. Загруженные ресурсы также используются для ускорения следующих запросов. Возможность пока активирована по умолчанию только для части пользователей.
- Расширены средства автозаполнения форм, которые задействуют AI-модель для понимания web-формы и автоматического заполнения полей, отталкиваясь от того, как ранее пользователь заполнял похожие формы.
Настройка «Autofill with AI» переименована в «Enhanced autofill». В новой версии расширено число стран и языков, для которых доступна функция, а также добавлена поддержка дополнительных типов информации. - Для пользователей из США активирован встроенный в браузер чат-бот Gemini, который может пояснять содержимое просматриваемой страницы и отвечать на связанные со страницей вопросы, не переключаясь с текущей вкладки. Поддерживается текстовое и голосовое взаимодействие с Gemini.
В дальнейшем планируется включения чат-бота и для пользователей из других стран. - Для всех пользователей включена возможность присоединения к уже созданным группам совместных вкладок, с которыми одновременно могут работать несколько пользователей. Поддержка создания групп пока доступна только для пользователей тестовых сборок (Beta/Dev/Canary), подразумевается, что они могут создать набор вкладок и поделиться им с другими пользователями, которые будут видеть те же вкладки на своих устройствах. В случае, если кто-то из участников поменяет вкладку в группе, изменение будет сразу отражено и на устройствах других пользователей.
- Изменено оформление предупреждений, показываемых при попытке открытия сайта без HTTPS в случае выставления в настройках (chrome://settings/security) режима установки только безопасных соединений. Вместо вывода страницы с предупреждением реализован диалог, всплывающий под адресной строкой и блокирующий загрузку данных без шифрования до выбора действия пользователем.
- В запросах, связанных с упреждающей загрузкой ресурсов или отрисовкой (‹link rel=prefetch› или ‹link rel=prerender›), обеспечена отправка HTTP-заголовка «Sec-Purpose». Ранее применяемый для этих целей HTTP-заголовок «Purpose: prefetch» объявлен устаревшим, но пока не отключён по умолчанию для сохранения совместимости.
- В API ToggleEvent добавлено свойство source, содержащее объект Element, представляющий элемент управления, инициировавший изменение состояния, в ответ на которое было сгенерировано событие Toggle. Например, когда пользователь кликнет на элемент «‹button›» с атрибутом «popovertarget» при открытии всплывающего окна будет сгенерировано событие ToggleEvent, свойство «source» в котором позволит понять какой элемент «‹button›» был нажат.
- Добавлена возможность использования функций counter() и counters() внутри альтернативного текста в свойстве «content» (например, ‘content: «Chapter» counter(chapter);’).
- Добавлено CSS-свойство «caret-animation», позволяющее управлять анимацией изменения курсора в полях ввода (например, мигание курсора можно заменить на собственную анимацию). Также добавлены свойства animation-timing-function,
animation-iteration-count,
animation-direction и animation-play-state для управления переходными анимационными эффектами. - В СSS-правиле «@font-face» реализована поддержка свойства font-variation-settings для настройки глифов в вариативных шрифтах (толщина линий, ширина символов, наклон символов и т.п.)
- В CSS добавлена поддержка типизированной арифметики, позволяющей использовать такие выражения, как «calc(10em / 1px)» и «calc(20% / 0.5em * 1px)».
- Добавлены методы Uint8Array.prototype.toBase64, Uint8Array.prototype.toHex, Uint8Array.fromBase64 и Uint8Array.fromHex для преобразования между Uint8Array и данными в формате base64 или шестнадцатеричным представлением.
- В инструментах для web-разработчиков расширены возможности, связанные с применением AI для отладки проблем с производительностью.
Добавлена поддержка эмуляции поведения при использовании HTTP-заголовка «Save-Data«.
Кроме нововведений и исправления ошибок в новой версии устранены 6 уязвимостей. Многие из уязвимостей выявлены в результате автоматизированного тестирования инструментами AddressSanitizer, MemorySanitizer, Control Flow Integrity, LibFuzzer и AFL. Критических проблем, которые позволяют обойти все уровни защиты браузера и выполнить код в системе за пределами sandbox-окружения, не выявлено. В рамках программы по выплате денежного вознаграждения за обнаружение уязвимостей для текущего релиза компания Google выплатила 4 премии на сумму 10 тысяч долларов США (по одной премии $5000, $4000 и $1000). Размер одного вознаграждения пока не определён.
Источник: http://www.opennet.ru/opennews/art.shtml?num=63817