Компания Google опубликовала релиз web-браузера Chrome 121. Одновременно доступен стабильный выпуск свободного проекта Chromium, выступающего основой Chrome. Браузер Chrome отличается от Chromium использованием логотипов Google, наличием системы отправки уведомлений в случае краха, модулями для воспроизведения защищённого от копирования видеоконтента (DRM), системой автоматической установки обновлений, постоянным включением Sandbox-изоляции, поставкой ключей к Google API и передачей при поиске RLZ-параметров. Для тех, кому необходимо больше времени на обновление, отдельно поддерживается ветка Extended Stable, сопровождаемая 8 недель. Следующий выпуск Chrome 122 запланирован на 20 февраля.
Основные изменения в Chrome 121:
- Добавлено несколько экспериментальных возможностей, использующих машинное обучение, которые на начальном этапе будут доступны пользователям сборок для Windows и macOS из США. Для включения в конфигураторе добавлена секция “Experimental AI”.
- Режим умной группировки вкладок (Tab Organizer), позволяющий автоматически объединять в группы открытые вкладки схожей тематики, а также предлагающий для новых групп подходящие имена и emoji.
Например, при наличии нескольких открытых вкладок c информацией, связанной с путешествиями и покупками в интернет-магазинах, новая возможность позволит без ручного разбора вынести данные страницы в соответствующие группы. Группировка вызывается через меню управления вкладками или опцию “Organize Similar Tabs” в контекстном меню вкладки. - Генератор тем оформления, позволяющий на основе заданного пользователем текстового описания на естественном языке персонализировать оформление браузера. Например, можно описать желаемые тематику, настроение, стиль и цвет, после чего браузер сам сформирует соответствующую тему оформления. Интерфейс для генерации тем можно вызвать через кнопку “Create with AI” на странице “Customize Chrome/Change theme”.
- Интерактивный помощник, позволяющий сгенерировать текст на заданную пользователем тему. Например, при помощи новой функции можно подготовить многословный и вежливый запрос или комментарий, задав простейший текстовый шаблон. Помощник вызывается через кнопку “Help me write” в контекстном меню, показываемом для полей в формах ввода.
- Режим умной группировки вкладок (Tab Organizer), позволяющий автоматически объединять в группы открытые вкладки схожей тематики, а также предлагающий для новых групп подходящие имена и emoji.
- Для 1% пользователей браузера отключена поддержка сторонних Cookie, выставляемых при обращении к сайтам, отличным от домена текущей страницы. Подобные Cookie применяются для отслеживания перемещений пользователя между сайтами в коде рекламных сетей, виджетов социальных сетей и систем web-аналитики. Изменения продвигаются в рамках инициативы Privacy Sandbox, нацеленной на достижение компромисса между потребностью пользователей сохранить конфиденциальность и желанием рекламных сетей и сайтов отслеживать предпочтения посетителей. Отключение сторонних Cookie планируют постепенно расширять и в 3 квартале 2024 года довести до 100%. Для отключения не дожидаясь внешних изменений предусмотрена настройка
“chrome://flags/#test-third-party-cookie-phaseout”. - При включении стандартной защиты браузера (Safe Browsing > Standard protection) реализована проверка безопасности загрузки зашифрованных архивов. После загрузки архива браузер запрашивает у пользователя пароль для расшифровки архива, вычисляет хэши от содержащихся в архиве файлов и передаёт хэши на серверы Google для проверки на наличие вредоносных компонентов.
- Для части пользователей в качестве эксперимента изменено поведение при переходе по ссылкам, связанным с установленными PWA-приложениями. После нажатия на ссылку у таких пользователей будет сразу открыт обособленный интерфейс приложений или показан список приложений, поддерживающих тип содержимого в ссылке. В зависимости от результатов эксперимента будет принято решение о переводе в Chrome 123 всех пользователей на новое поведение или оставление старого метода обработки, при котором ссылка открывается в обычной вкладке, но в адресной строке показывается кнопка для перехода к обособленному приложению. Для тестирования нового поведения предложена настройка
“chrome://flags/#enable-user-link-capturing-pwa”. - Из заголовка боковой панели убрана пиктограмма активации панели, вместо которой предлагается использовать функции закрепления элементов из основной панели и вызов возможностей боковой панели из главного меню.
- Включён Deprecation trial для тестирования предстоящего игнорирования обработчиков событий “unload”, которые не позволяют эффективно использовать кэш перехода (BFCache – Back-forward cache), обеспечивающий мгновенный переход при использовании кнопок “Назад” и “Вперёд” или при навигации по ранее просмотренным страницам текущего сайта. Поведение стационарного Chrome будет приближено к мобильным браузерам, которые в большинстве случаев не генерируют событие “unload”, отдавая приоритет кэшированию переходов.
- В версии для платформы Android на устройствах с Android 12+ и GPU Qualcomm или ARM включена по умолчанию поддержка API WebGPU, который предоставляет схожий с Vulkan, Metal и Direct3D 12 программный интерфейс для выполнения операций на стороне GPU, таких как рендеринг и вычисления, а также позволяет использовать язык шейдров.
- В CSS реализовано наследование свойств псевдоклассов подсветки элементов, таких как “::selection” и “::highlight”, в привязке к псевдоэлементам родительского элемента.
- В CSS-свойстве font-palette, позволяющем выбрать палитру для отрисовки цветного шрифта, реализована поддержка анимации. Анимация может использоваться для плавного перехода от одной палитры к другой в цветных шрифтах.
- Добавлена поддержка CSS-свойств “scrollbar-color” и “scrollbar-width” для настройки цвета и ширины полосы прокрутки.
- В CSS добавлены псевдо-элементы “::spelling-error” и “::grammar-error” для настройки цветового оформления и декорирования индикации синтаксических и грамматических ошибок.
- Реализована возможность использования выражения supports() для импортирования стилей и слоёв CSS после выполнения определённых условий.
- В CSS добавлена поддержка масок в SVG, позволяющих скрывать части содержимого путём наложения изображения по определённым точкам. Для настройки масок можно использовать свойства mask, mask-mode, mask-composite, mask-position и mask-repeat. Также для SVG допускается загрузка масок с внешних серверов, например, ” mask: url(masks.svg#star)”.
- Расширена поддержка спекулятивных правил (API Speculation rules), позволяющих авторам сайтов передать браузеру сведения о наиболее вероятных страницах, на которые пользователь может перейти. Браузер использует эту информацию для упреждающей загрузки и отрисовки содержимого страниц. В новой версии предоставлена возможность передачи правил через HTTP-заголовок Speculation-Rules и добавлена поддержка расширенного синтаксиса (“document rules“), позволяющего браузеру определить список URL для спекулятивной загрузки из элементов на странице.
- Добавлен экспериментальный (origin trial) API Element Capture, позволяющий при захвате видео сузить охват до отдельных частей DOM и элементов. Например, в приложениях для проведения видеоконференций новый API позволяет встроить в iframe сторонние приложения и обеспечить передачу видео с содержимым этого iframe другим участникам.
- В API Document Picture-in-Picture для использования методов resizeBy() и resizeTo() теперь требуется подтверждение пользователя.
- Добавлена возможность использования метода showPicker с элементами для программного вызова предоставляемой браузером реализации выпадающего меню.
- В API Media Capabilities в decodingInfo() добавлены новые поля hdrMetadataType, colorGamut и transferFunction, которые можно использовать для определения поддержки HDR.
- В TLS включена поддержка механизма инкапсуляции ключей (KEM, Key Encapsulation Mechanism), использующего гибридный алгоритм X25519Kyber768, устойчивый к подбору на квантовых компьютерах. X25519Kyber768 представляет собой комбинацию из механизма обмена ключами X25519, основанного на эллиптических кривых и ныне применяемого в TLS, c алгоритмом Kyber-768, использующим методы криптографии, основанные на решении задач теории решёток, время решения которых не отличается на обычных и квантовых компьютерах.
- Внесены улучшения в инструменты для web-разработчиков. В панели Elements добавлена поддержка CSS-правил “@font-palette-values”. Улучшена поддержка source map. Улучшено отслеживания интерактивных операций в панели для оценки производительности. В панели Sources реализованы метки для наглядного представления отступов.
Кроме нововведений и исправления ошибок в новой версии устранено 17 уязвимостей. Многие из уязвимостей выявлены в результате автоматизированного тестирования инструментами AddressSanitizer, MemorySanitizer, Control Flow Integrity, LibFuzzer и AFL. Критических проблем, которые позволяют обойти все уровни защиты браузера и выполнить код в системе за пределами sandbox-окружения, не выявлено. В рамках программы по выплате денежного вознаграждения за обнаружение уязвимостей для текущего релиза компания Google выплатила 11 премий на сумму 31 тысячу долларов США (по одной премии в $11000, $9000, $6000 и $2000, и три премии $1000). Размер 4 вознаграждений пока не определён. Наибольшее вознаграждение, размером 11 тысяч долларов, присуждено за выявление обращения к уже освобождённой памяти (Use-after-free) в реализации API WebAudio.