Релиз Chrome 103

Компания Google представила релиз web-браузера Chrome 103. Одновременно доступен стабильный выпуск свободного проекта Chromium, выступающего основой Chrome. Браузер Chrome отличается от Chromium использованием логотипов Google, наличием системы отправки уведомлений в случае краха, модулями для воспроизведения защищённого от копирования видеоконтента (DRM), системой автоматической установки обновлений, постоянным включением Sandbox-изоляции, поставкой ключей к Google API и передачей при поиске RLZ-параметров. Для тех, кому необходимо больше времени на обновление, отдельно поддерживается ветка Extended Stable, сопровождаемая 8 недель. Следующий выпуск Chrome 104 запланирован на 2 августа.

Основные изменения в Chrome 103:

  • Добавлен экспериментальный редактор изображений, вызываемый для редактирования скриншотов страниц. В редакторе доступны такие функции, как кадрирование, выделение области, рисование кистью, выбор цвета, добавление текстовых меток и вывод типовых фигур и примитивов, таких как линии, прямоугольники, окружности и стрелки. Для включения редактора необходимо активировать настройки “chrome://flags/#sharing-desktop-screenshots” и “chrome://flags/#sharing-desktop-screenshots-edit”. После создания скриншота через меню Share в адресной строке, в редактор можно перейти, нажав кнопку “Изменить” (“Edit”) на странице с предпросмотром скриншота.
  • Расширены возможности добавленного в Chrome 101 механизма упреждающей отрисовки (prerender) содержимого рекомендаций в адресной строке Omnibox. Упреждающая отрисовка дополняет ранее доступную возможность загрузки наиболее вероятных для перехода рекомендаций не дожидаясь клика пользователя, Помимо загрузки, содержимое связанных с рекомендациями страниц теперь может отрисовываются в буфере (в том числе выполняются скрипты и формируется дерево DOM), что позволяет обеспечить мгновенное отображение рекомендаций после клика. Для управления упреждающей отрисовкой предложены настройки “chrome://flags/#enable-prerender2”, “chrome://flags/#omnibox-trigger-for-prerender2” и “chrome://flags/#search-suggestion-for-prerender2”.

    В Chrome 103 для Android добавлен API Speculations Rules, позволяющий авторам сайтов передавать браузеру сведения о наиболее вероятных страницах, на которые пользователь может перейти. Браузер использует эту информацию для упреждающей загрузки и отрисовки содержимого страниц.

  • В версии для Android задействован новый менеджер паролей, предлагающий тот же унифицированный интерфейс управления паролями, что применяется для Android-приложений.
  • В версию для Android добавлена поддержка сервиса “With Google”, позволяющего пользователю выражать благодарность любимым сайтам, зарегистрировавшимся в сервисе, передавая платные или бесплатные цифровые наклейки. Сервис пока доступен только для пользователей из США.

  • Улучшено автозаполнения полей с номерами кредитных и дебетовых платёжных карт, в котором теперь поддерживаются карты, сохранённые через Google Pay.
  • В версии для Windows по умолчанию задействован встроенный DNS-клиент, которые также используется версиях для macOS, Android и Chrome OS.
  • Стабилизирован и предложен всем желающим API Local Font Access, при помощи которого можно определить и использовать установленные в системе шрифты, а также манипулировать шрифтами на низком уровне (например, фильтровать и трансформировать глифы).
  • Добавлена поддержка кода HTTP-ответа 103, который позволяет информировать клиента о содержании некоторых HTTP-заголовков сразу после запроса, не дожидаясь пока сервер выполнит все связанные с запросом операции и начнёт отдачу контента. Подобным образом можно сообщать подсказки о связанных с отдаваемой страницей элементах, которые могут быть предварительно загружены (например, могут быть приведены ссылки на используемые на странице css и javascript). Получив информацию о подобных ресурсах браузер может приступить к их загрузке не дожидаясь окончания отдачи основной страницы, что позволяет сократить общее время обработки запроса.
  • В режиме Origin Trials (экспериментальные возможности, требующие отдельной активации) пока только в сборках для платформы Android началось тестирование API Federated Credential Management (FedCM), позволяющего создавать объединённые сервисы идентификации, обеспечивающие сохранение конфиденциальности и работающие без механизмов межсайтового отслеживания, таких как обработка сторонних Cookie. Origin Trial подразумевает возможность работы с указанным API из приложений, загруженных с localhost или 127.0.0.1, или после прохождения регистрации и получения специального токена, который действует ограниченное время для конкретного сайта.
  • В API Client Hints, развиваемого в качестве замены заголовка User-Agent и позволяющего выборочно отдавать данные о конкретных параметрах браузера и системы (версия, платформа и т.д.) только после запроса сервером, добавлена возможность подстановки в список идентификаторов браузера фиктивных названий, по аналогии с используемым в TLS механизмом GREASE (Generate Random Extensions And Sustain Extensibility). Например, помимо ‘”Chrome”; v=”103″‘ и ‘”Chromium”; v=”103″‘ в список может быть добавлен случайный идентификатор несуществующего браузера ‘”(Not;Browser”; v=”12″‘. Подобная подстановка позволит выявлять проблемы с обработкой идентификаторов неизвестных браузеров, которые приводят к тому, что альтернативные браузеры вынуждены притворяться другими популярными браузерами, чтобы обойти проверку по спискам допустимых браузеров.
  • Файлы в формате изображений AVIF добавлены в список разрешённых для обмена через API iWeb Share.
  • Добавлена поддержка формата сжатия “deflate-raw”, позволяющего получить доступ к
    голому сжатому потоку без заголовков и служебных финальных блоков, что можно использовать, например, для чтения и записи zip-файлов.
  • Для элементов web-форм предоставлена возможность использования атрибута “rel”, что позволяет применять к навигации через web-формы параметр “rel=noreferrer” для отключения передачи заголовка Referer или “rel=noopener” для отключения выставления свойства Window.opener и запрета доступа к контексту из которого был выполнен переход.
  • Реализация события popstate приведена в соответствие с поведением Firefox. Событие popstate теперь генерируется сразу после изменения URL без ожидания наступления события load.
  • Для страниц, открытых без HTTPS и из блоков iframe запрещено обращение к API Gampepad и API Battery Status.
  • В объект SerialPort добавлен метод forget() для отказа от ранее полученных от пользователя полномочий для доступа к последовательному порту.
  • В CSS-свойство overflow-clip-margin добавлен атрибут visual-box, определяющий с какого места следует начинать обрезку контента, вышедшего за границу области (может принимать значения content-box, padding-box и border-box).
  • В блоках iframe с атрибутом sandbox запрещён вызов внешних протоколов и запуск внешних приложений-обработчиков. Для отмены ограничения следует использовать свойства allow-popups, allow-top-navigation и allow-top-navigation-with-user-activation.
  • Прекращена поддержка элемента , который потерял смысл после прекращения поддержки плагинов.
  • Внесены улучшения в инструменты для web-разработчиков. Например, в панели Styles появилась возможность определения цвета точки вне окна браузера. Улучшен предпросмотр значений параметров в отладчике. Добавлена возможность изменения порядка следования панелей в интерфейсе Elements.

Кроме нововведений и исправления ошибок в новой версии устранено 14 уязвимостей. Многие из уязвимостей выявлены в результате автоматизированного тестирования инструментами AddressSanitizer, MemorySanitizer, Control Flow Integrity, LibFuzzer и AFL. Одной из проблем (CVE-2022-2156) присвоен критический уровень опасности, который подразумевает возможность обойти все уровни защиты браузера и выполнить код в системе за пределами sandbox-окружения. Детали по данной уязвимости пока не разглашаются, известно только, что она вызвана обращением к освобождённому блоку памяти (use-after-free).

В рамках программы по выплате денежного вознаграждения за обнаружение уязвимостей для текущего релиза компания Google выплатила 9 премий на сумму 44 тысячи долларов США (одна премия $20000, одна премия $7500, одна премия $7000, две премии $3000 и по одной премии в $2000, $1000 и $500). Размер вознаграждения за критическую уязвимость пока не определён.

Release. Ссылка here.