Релиз Chrome 92

Компания Google представила релиз web-браузера Chrome 92. Одновременно доступен стабильный выпуск свободного проекта Chromium, выступающего основой Chrome. Браузер Chrome отличается использованием логотипов Google, наличием системы отправки уведомлений в случае краха, модулями для воспроизведения защищённого видеоконтента (DRM), системой автоматической установки обновлений и передачей при поиске RLZ-параметров. Следующий выпуск Chrome 93 запланирован на 31 августа.

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

  • В настройки добавлены средства для управления включением компонентов Privacy Sandbox. Пользователю предоставлена возможность отключения технологии FLoC (Federated Learning of Cohorts), развиваемой компанией Google для замены отслеживающих перемещения Cookie на “когорты”, позволяющие выделять пользователей со сходными интересами, не идентифицируя отдельных лиц. Когорты вычисляются на стороне браузера через применение алгоритмов машинного обучения к данным истории посещений и содержимому, которое открывается в браузере.
  • Для пользователей десктоп-систем по умолчанию включён кэш перехода (Back-forward cache), обеспечивающий мгновенный переход при использовании кнопок “Назад” и “Вперёд” или при навигации по ранее просмотренным страницам текущего сайта. Ранее кэш перехода был доступен только в сборках для платформы Android.
  • Усилена изоляция сайтов и дополнений в разных процессах. Если раньше механизм Site Isolation обеспечивал изоляцию сайтов друг от друга в разных процессах, а также отделял все дополнения в отдельный процесс, то в новом выпуске реализовано разделение браузерных дополнений между собой через вынос каждого дополнения в отдельный процесс, что позволило создать ещё один барьер для защиты от вредоносных дополнений.
  • Значительно увеличена производительность и эффективность определения фишинга. Скорость выявления фишинга на основе локального анализа изображений в половине случаев возросла до 50 раз, а в 99% случаев оказалась быстрее как минимум в 2.5 раза. В среднем время классификации фишинга по изображению снизилось с 1.8 секунд до 100 мс. В общем нагрузка на CPU, создаваемая всеми процессами отрисовки, снизилаcь на 1.2%.
  • В число запрещённых сетевых портов добавлены порты 989 (ftps-data) и 990 (ftps). Ранее уже были заблокированы порты 69, 137, 161, 554, 1719, 1720, 1723, 5060, 5061, 6566 и 10080. Для портов в чёрном списке блокируется отправка HTTP, HTTPS и FTP-запросов с целью защиты от атаки NAT slipstreaming, позволяющей при открытии специально подготовленной атакующим web-страницы в браузере установить сетевое соединение с сервера атакующего к любому UDP или TCP порту на системе пользователя, несмотря на применение внутреннего диапазона адресов (192.168.x.x, 10.x.x.x).
  • Введено требование по применению двухфакторной верификации разработчика при публикации новых дополнений или обновлений версий в Chrome Web Store.
  • Обеспечено отключение в браузере уже установленных дополнений, если они удалены из каталога Chrome Web Store в связи с нарушением правил.
  • При отправке DNS-запросов, в случае использования классических DNS-серверов, помимо записей “A” и “AAAA” для определения IP-адресов теперь также запрашивается DNS-запись “httpS“, через которую передаются параметры, позволяющие ускорить установку HTTPS-соединений, такие как настройки протокола, ключи для шифрования TLS ClientHello и список поддоменов-псевдонимов.
  • Из iframe-блоков, загружаемых с доменов, отличных от домена текущей страницы, запрещён вызов JavaScript-диалогов window.alert, window.confirm и window.prompt. Изменение позволит защитить пользователей от злоупотреблений, связанных с попытками преподнести стороннее уведомление как запрос основного сайта.
  • На странице новой вкладки обеспечен вывод списка наиболее востребованных документов, сохранённых в Google Drive.
  • Предоставлена возможность изменения имени и пиктограммы для приложений PWA (Progressive Web Apps).
  • Для небольшого случайного числа web-форм, связанных с вводом адреса или номера кредитной карты, в качестве эксперимента будет отключён вывод рекомендаций по автозаполнению.
  • В версии для настольных систем опция поиска по изображению (пункт “Найти изображение” в контекстном меню) переведена на использование сервиса Google Lens вместо обычного поискового движка Google. При нажатии соответствующей кнопки в контекстном меню пользователь будет перенаправляться на отдельное web-приложение.
  • В интерфейсе режима “инкогнито” скрыты ссылки на историю посещений (ссылки бесполезны, так как приводили к открытию заглушки с информацией о том, что история не собирается).
  • Добавлены новые команды, разбираемые при вводе в адресной строке. Например, для появления кнопки быстрого перехода на страницу проверки безопасности паролей и дополнений достаточно набрать “safety check”, а для перехода к настройкам безопасности и синхронизации – “manage security settings” и “manage sync”.
  • В версии для Android в панели реализована новая настраиваемая кнопка “Magic Toolbar”, показывающая разные ярлыки, выбираемые с учётом текущей активности пользователя и включающего ссылки, которые вероятно могут понадобиться в данный момент.
  • В Chrome для Android обновлена реализация выполняемой на устройстве модели машинного обучения для определения попыток фишинга. При выявлении попыток фишинга, кроме вывода страницы с предупреждением, браузер будет отправлять во внешний сервис Safe Browsing сведения о версии модели машинного обучения, вычисленном весе для каждой категории и флаге применения новой модели.
  • В Chrome для Android удалена настройка “Show suggestions for similar pages when a page can’t be found”, которая приводила к формированию запроса в Google если страница не найдена для рекомендации похожих страниц. Ранее данная настройка уже была удалена из версии для настольных систем.
  • В версии для Android расширено применение режима изоляции сайтов по отдельным процессам. Из соображений потребления ресурсов в отдельные процессы до сих пор выносились только избранные крупные сайты. В новой версии изоляция начнёт применяться и к сайтам, на которые осуществлён вход пользователя с аутентификацией через OAuth (например, подключение через учётную запись Google) или которые выставляют HTTP-заголовок Cross-Origin-Opener-Policy. Для желающих включить изоляцию в отдельных процессах всех сайтов предоставлена настройка “chrome://flags/#enable-site-per-process”.
  • В версии для Android отключены встроенные в движок V8 механизмы защиты от атак по сторонним каналам, таким как Spectre, которые признаны не настолько эффективными, как изоляция сайтов в отдельных процессах. В настольной версии указанные механизмы были отключены ещё в выпуске Chrome 70.
  • В Chrome для Android упрощён доступ к настройкам полномочий сайта, таким как доступ к микрофону, камере и определению местоположения. Для вывода списка полномочий достаточно нажать на символ замка в адресной строки, после чего выбрать раздел “Permissions”.
  • В режиме Origin Trials (экспериментальные возможности, требующие отдельной активации) добавлено несколько новых API. Origin Trial подразумевает возможность работы с указанным API из приложений, загруженных с localhost или 127.0.0.1, или после прохождения регистрации и получения специального токена, который действует ограниченное время для конкретного сайта.
    • API File Handling, позволяющий регистрировать web-приложения в качестве обработчиков файлов. Например, работающее в режиме PWA (Progressive Web Apps) web-приложение с текстовым редактором может зарегистрировать себя как обработчик файлов, после чего может быть использовано в системном файловом менеджере для открытия текстовых файлов.

    • API Shared Element Transitions, позволяющего использовать предоставляемые браузером готовые эффекты, визуализирующие изменение состояния интерфейса в одностраничных (SPA, single-page applications) и многостраничных (MPA, multi-page applications) web-приложениях.
  • В CSS-правило @font-face добавлен параметр size-adjust, позволяющий масштабировать размеры глифа для определённого начертания шрифта, не изменяя значение CSS-свойства font-size (область под символ остаётся той же, но меняется размер глифа в этой области).
  • В JavaScript в объектах Array, String и TypedArray реализован метод at(), позволяющий использовать относительную индексацию (в качестве индекса массива указывается относительная позиция), в том числе с указанием отрицательных значений относительно конца (например, “arr.at(-1)” вернёт последний элемент массива).
  • В JavaScript-конструктор Intl.DateTimeFormat добавлено свойство dayPeriod, позволяющее вывести приблизительное время дня (утром, вечером, днём, ночью).
  • При использовании объектов
    SharedArrayBuffers, позволяющих создавать массивы в разделяемой памяти, теперь требуется определение HTTP-заголовков Cross-Origin-Opener-Policy и Cross-Origin-Embedder-Policy, без которых запрос будет блокирован.
  • В API Media Session добавлены действия “togglemicrophone”, “togglecamera” и “hangup”, позволяющие на сайтах, реализующих системы видеоконференций, прикреплять собственные обработчики для показываемых в интерфейсе picture-in-picture кнопок выключения/включения микрофона, выключения/включения камеры и завершения вызова.
  • В API Web Bluetooth добавлена возможность фильтрации найденных Bluetooth-устройств по идентификаторам производителя и продукта. Фильтр задаётся через параметр “options.filters” в методе Bluetooth.requestDevice().
  • Реализована первая стадия урезания содержимого HTTP-заголовка User-Agent:
    во вкладке DevTools Issues теперь показываться предупреждение об устаревании navigator.userAgent, navigator.appVersion и navigator.platform.
  • Внесена большая порция улучшений в инструменты для web-разработчиков. В web-консоли предоставлена возможность переопределения выражений “const”.
    В панели Elements для элементов iframe предоставлена возможность быстрого просмотра деталей через контекстное меню, показываемое при клике правой кнопкой мыши на элементе. Улучшена отладка ошибок CORS (Cross-origin resource sharing). В панели инспектирования сетевой активности добавлена возможность фильтрации сетевых запросов из WebAssembly. Предложен новый редактор CSS Grid (“display: grid” и “display: inline-grid”) с функцией предпросмотра изменений.

Кроме нововведений и исправления ошибок в новой версии устранено 35 уязвимостей. Многие из уязвимостей выявлены в результате автоматизированного тестирования инструментами AddressSanitizer, MemorySanitizer, Control Flow Integrity, LibFuzzer и AFL. Критических проблем, которые позволяют обойти все уровни защиты браузера и выполнить код в системе за пределами sandbox-окружения, не выявлено. В рамках программы по выплате денежного вознаграждения за обнаружение уязвимостей для текущего релиза компания Google выплатила 24 премий на сумму 112000 долларов США (две премии $15000, четыре премии $10000, одна премия $8500, две премии $7500, три премии $5000, одна премия $3000 и одна премия $500). Размер 11 вознаграждений пока не определён.

Release. Ссылка here.