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

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

  • Добавлена возможность сворачивания групп вкладок. Вкладки объединяются в группы при помощи контекстного меню и могут быть связаны с определённым цветом и меткой. При клике на метке группы связанные с ней вкладки теперь скрываются и вместо них остаётся одна метка. Повторный клик на метке убирает скрытие.


  • Реализован предпросмотр содержимого вкладок. При наведении курсора на кнопку вкладки теперь показывается эскиз находящейся во вкладке страницы. Возможность пока активирована не для всех пользователей и может быть включена при помощи настройки «chrome://flags/#tab-hover-cards».

  • Добавлена возможность сохранения отредактированных PDF-форм, а также предложены настройки «chrome://flags#pdf-viewer-update» и «chrome://flags/#pdf-two-up-view» для экспериментов с новым интерфейсом просмотра PDF-документов.
  • Добавлена возможность обмена ссылками при помощи QR-кодов. Для генерации QR-кода для текущей страницы в адресную строку помещена специальная пиктограмма, которая появляется при клике на адресную строку. Возможность пока активирована не для всех пользователей и может быть включена при помощи настройки «chrome://flags/#sharing-qr-code-generator».

  • На странице about:flags появилась опция «Omnibox UI Hide Steady-State URL Path, Query, and Ref» («chrome://flags#omnibox-ui-hide-steady-state-url-path-query-and-ref-on-interaction»), позволяющая отключить отображение элементов пути и параметров запроса в адресной строке, оставив видимым только домен сайта. Скрытие осуществляется при начале взаимодействия со страницей (во время загрузки и пока пользователь не начал прокрутку показывается полный URL). После скрытия для просмотра полного URL предлагается кликнуть на адресной строке. Также доступна опция «chrome://flags#omnibox-ui-reveal-steady-state-url-path-query-and-ref-on-hover» для показа полного URL при наведении курсора. Доступная в контекстном меню настройка «Всегда показывать URL полностью», отменяет скрытие «https://», «www.», путей и параметров. По умолчанию скрытие пока активировано только для небольшого процента пользователей. В качестве мотива изменения указывается желание защитить пользователей от фишинга, манипулирующего параметрами в URL.

  • В планшетном режиме для устройств с сенсорными экранами включена горизонтальная навигация по открытым вкладкам, при которой кроме заголовков на вкладках отображаются крупные эскизы связанных со вкладками страниц. Вкладки можно перемещать и перегруппировывать экранными жестами. Отображение эскизов включается и выключается специальной кнопкой, размещённой рядом с адресной строкой и аватаром пользователя. Для отключения режима предусмотрены настройки «chrome://flags/#webui-tab-strip» и «chrome://flags/#scrollable-tabstrip».

  • В версии для Android при наборе в адресной строке в списке предлагаемых страниц обеспечен вывод подсказки для быстрого перехода к уже открытым вкладкам.

  • В версии для Android в контекстом меню ссылок, появляющемся при длительном удержании касания к ссылке, добавлены метки для выделения быстрых страниц. Скорость определяется на основе метрик Core Web Vitals, учитывающих сводные показатели времени загрузки, отзывчивости и стабильности содержимого.

  • Обеспечено блокирование небезопасной загрузки (без шифрования) исполняемых файлов и добавлен вывод предупреждений при небезопасной загрузке архивов (zip, iso и т.п.). В следующем выпуске ожидается блокировка архивов и вывод предупреждения для документов (docx, pdf и т.п.). В дальнейшем постепенно планируется полностью прекратить поддержку загрузки файлов без применения шифрования. Блокировка реализована, так как загрузка файлов без шифрования может использоваться для совершения вредоносных действий путём подмены содержимого в процессе MITM-атак.
  • Включена по умолчанию поддержка формата изображений AVIF (AV1 Image Format), в котором задействованы технологии внутрикадрового сжатия из формата кодирования видео AV1. Контейнер для распространения сжатых данных в AVIF полностью аналогичен HEIF. AVIF поддерживает как изображения в HDR (High Dynamic Range) и цветовом пространстве Wide-gamut, так и в стандартном динамическом диапазоне (SDR).
  • При компиляции сборок для Windows и macOS по умолчанию при вызове компиляторов MSVC и Clang включены оптимизации на основе результатов профилирования кода (PGO — Profile-guided optimization), позволяющие генерировать более оптимальный код на основе анализа особенностей выполнения программы. Включение PGO дало возможность ускорить загрузку вкладок приблизительно на 10% (ускорение прохождения теста Speedometer 2.0 в macOS на 7.7%, а в Windows на 11.4%). Отзывчивость интерфейса увеличилась в macOS на 3.9%, а в Windows на 7.3%.
  • Добавлен экспериментальный режим урезания активности фоновых вкладок («Tab Throttling»), доступный через настройку «chrome://flags##intensive-wake-up-throttling» (включение по умолчанию ожидается в Chrome 86). При включении режима передача управления фоновым вкладкам (TaskQueues) уменьшается до 1 вызова в минуту, если страница находится в фоне более 5 минут.
  • Для всех категорий пользователей активирован режим снижения потребление ресурсов CPU когда окно браузера не находится в поле видимости пользователя. Chrome проверяет не перекрывается ли окно браузера другими окнами и исключает отрисовку пикселей в областях перекрытия.
  • Усилена защита от загрузки смешанного мультимедийного контента (когда на HTTPS-странице загружаются ресурсы по протоколу http://). На страницах, открытых по HTTPS, реализована автоматическая замена ссылок «http://» на «https://» в блоках, связанных с загрузкой изображений (ранее заменились скрипты и iframe, звуковые файлы и видео). Если изображение недоступно по https, то его загрузка блокируется (вручную можно отметить блокировку через меню, доступное через символ замка в адресной строке).

  • К TLS-сертификатам, выписанным начиная с 1 сентября 2020 года, будет применяться новое ограничение на срок действия — время жизни данных сертификатов не сможет превышать 398 дней (13 месяцев). Аналогичные ограничения применены в Firefox и Safari. Для сертификатов, полученных до 1 сентября, доверие будет сохранено, но ограничено 825 днями (2.2 года).
  • В режиме Origin Trials (экспериментальные возможности, требующие отдельной активации) добавлено несколько новых API. Origin Trial подразумевает возможность работы с указанным API из приложений, загруженных с localhost или 127.0.0.1, или после прохождения регистрации и получения специального токена, который действует ограниченное время для конкретного сайта.
    • Предложена концепция порталов для обеспечения бесшовной навигации между сайтами и вставки одной страницы в другую для предпросмотра содержимого перед переходом. Предложен новый тег <portal>, позволяющий отобразить другую страницу в форме вставки, при фокусе на которую, показанная во вставке страница будет переведена в состояние основного документа, внутри которого допускается навигация. В отличие от iframe вставка полностью изолирована от базовой страницы и обрабатывается как отдельный документ.
    • API Fetch Upload Streaming, позволяющий осуществлять fetch-запросы с загрузкой содержимого в форме потока ReadableStream (ранее запрос требовал полной готовности содержимого, а теперь можно начать отправлять данные в форме потока, не дожидаясь полной готовности тела запроса). Например, web-приложение может начать отправлять данные web-формы как только пользователь начал набирать текст в поле ввода и когда набор будет завершён данные через fetch() уже будут отправлены. В том числе через новый API можно передавать звуковые и видео данные, генерируемые на стороне клиента.
    • Предложен API Declarative Shadow DOM для создания новых корневых веток в Shadow DOM, например чтобы отделить импортируемый сторонний стиль элемента и связанную с ним подветку DOM от основного документа. Предложенный декларативный API позволяет обойтись для открепления веток DOM только HTML без необходимости написания кода на JavaScript.
    • Добавлено свойство RTCRtpEncodingParameters.adaptivePtime, позволяющее отправителю RTC-потоков (real-time communication) управлять включением адаптивного механизма отправки пакетов.
    • Упрощено предоставление постоянного хранилища для уже установленных приложений PWA (Progressive Web Apps) и TWA (Trusted Web Activities)
      Приложению достаточно вызвать метод navigator.storage.persist() и постоянное хранилище будет предоставлено автоматически.

  • Реализовано новое CSS-правило @property, позволяющее регистрировать собственные CSS-свойства с наследованием, проверкой типов и значениями по умолчанию. Действие @property аналогично ранее добавленному методу registerProperty().
  • Для систем с ОС Windows предоставлена возможность использования метода getInstalledRelatedApps() для определения установки PWA-приложений. Ранее данный мето работал только на платформе Android.
  • Для настольных систем реализована поддержка ярлыков приложений, позволяющих предоставить быстрый доступ к востребованным типовым действиям в приложении. Для создания ярлыков достаточно добавить элементы в манифест web-приложения в формате PWA (Progressive Web Apps). Ранее ярлыки приложений были доступны только на платформе Android.
  • Добавлено CSS-свойство content-visibility для управления видимостью содержимого для оптимизации отрисовки. При установке значения ‘auto’ видимость определяется браузером на основании близости элемента к границе видимой области. Значение ‘hidden’ позволяет полностью управлять отображением элемента из скриптов.
  • Добавлено CSS-свойство counter-set для установки определённого значения для существующих счётчиков. Новое CSS-свойство дополняет собой ранее доступные свойства counter-reset и counter-increment, применяемые для создания нового счётчика или увеличения существующего.
  • Добавлено CSS-свойство ‘page’, отражающее страницу при выводе на печать, а также свойство ‘page-orientation’ для получения информации об ориентации страницы (‘upright’, ‘rotate-left’ и ‘rotate-right’). Реализована поддержка обращения к страницам по именам, например