Компания Google представила релиз web-браузера Chrome 96. Одновременно доступен стабильный выпуск свободного проекта Chromium, выступающего основой Chrome. Браузер Chrome отличается использованием логотипов Google, наличием системы отправки уведомлений в случае краха, модулями для воспроизведения защищённого видеоконтента (DRM), системой автоматической установки обновлений и передачей при поиске RLZ-параметров. Ветка Chrome 96 будет сопровождаться 8 недель в рамках цикла Extended Stable. Следующий выпуск Chrome 97 запланирован на 4 января.
Основные изменения в Chrome 96:
- В панели закладок, отображаемой под адресной строкой, по умолчанию скрыта кнопка Apps (“Сервисы”), позволявшая открыть страницу “chrome://apps” со списком установленных сервисов и web-приложений.
- Прекращена поддержка платформы Android 5.0 и более ранних версий.
- Добавлена поддержка перенаправления с HTTP на HTTPS с использованием DNS (при определении IP-адресов помимо DNS-записей “A” и “AAAA” также запрашивается DNS-запись “httpS“, при наличии которой браузер сразу подключится к сайту по HTTPS).
- В редакции для десктоп-систем кэш перехода (Back-forward cache), обеспечивающий мгновенный переход при использовании кнопок “Назад” и “Вперёд”, расширен поддержкой навигации по ранее просмотренным страницам после открытия другого сайта.
- Добавлена настройка “chrome://flags#force-major-version-to-100” для тестирования возможного нарушения работы сайтов после достижения браузером версии, состоящей из трёх цифр вместо двух (в своё время после выпуска Chrome 10 в библиотеках разбора User-Agent всплыло много проблем). При активации опции в заголовке User-Agent начинает выдаваться версия 100 (Chrome/100.0.4664.45).
- В сборках для платформы Windows данные, связанные с работой сетевых сервисов (cookie и т.п.) перемещены в отдельный подкаталог “Network” в рамках подготовки к реализации механизма сетевой изоляции (Network Sandbox).
- В режиме Origin Trials (экспериментальные возможности, требующие отдельной активации) добавлено несколько новых API. Origin Trial подразумевает возможность работы с указанным API из приложений, загруженных с localhost или 127.0.0.1, или после прохождения регистрации и получения специального токена, который действует ограниченное время для конкретного сайта.
- Предложен объект FocusableMediaStreamTrack (будет переименован в BrowserCaptureMediaStreamTrack), поддерживающий метод focus(), при помощи которого приложения, осуществляющие захват содержимого окон или вкладок (например, программы для трансляции содержимого окон во время видеоконференций), могут получить информацию о фокусе ввода и отследить его изменение.
- Реализован механизм Priority Hints, позволяющий задавать важность того или иного загружаемого ресурса через указание дополнительного атрибута “importance” в тегах, таких как iframe, img и link. Атрибут может принимать значение “auto” и “low”, and “high”, которые влияют на порядок загрузки браузером внешних ресурсов.
- В заголовок Cross-Origin-Embedder-Policy, управляющий режимом изоляции Cross-Origin и позволяющий определять правила безопасного использования на странице привилегированных операций, добавлена поддержка параметра “credentialless” для отключения передачи информации, связанной с учётными данными, такой как Cookie и клиентские сертификаты.
- В CSS предложен новый псевдо-класс “:autofill”, позволяющий отследить автоматическое заполнение браузером полей в теге input (при ручном заполнении селектор не срабатывает).
- Для исключения зацикливаний запросов CSS-свойства writing-mode, direction и backgrounds теперь не распространяются на viewport при применении CSS-свойства contain (CSS Containment) к тегам HTML или BODY.
- Добавлено CSS-свойство font-synthesis, позволяющего управлять возможностью синтеза начертаний (oblique, bold и small-cap), отсутствующих в выбранном семействе шрифтов.
- В API PerformanceEventTiming, позволяющем получить дополнительные сведения для измерения и оптимизации отзывчивости интерфейса, добавлен атрибут InteractionID с идентификатором взаимодействия с пользователем. Идентификатор позволяет связывать разные метрики с одним действием пользователя, например, при при касании к сенсорному экрану генерируется несколько событий, таких как pointerdown, mousedown, pointerup, mouseup и click.
- Добавлен новый тип медиавыражений (Media Query) – “prefers-contras” для адаптации содержимого страницы к настройкам контрастности, выставленным в операционной системе (например, включению режима высокой контрастности).
- Для обособленных PWA-приложений в манифесте добавлена поддержка необязательного поля “id” с глобальным идентификатором приложения (если поле не указано для идентификации используется стартовый URL).
- Для обособленных PWA-приложений реализована возможность регистрации в качестве обработчиков URL. Например, приложение music.example.com может зарегистрировать себя как обработчик URL https://*.music.example.com и все переходы из внешних приложений по данным ссылкам, например, из мессенджеров и почтовых клиентов, будут приводить к открытию данного PWA-приложений, а не новой вкладки в браузере.
- Добавлена директива CSP (Content Security Policy) wasm-unsafe-eval для управления возможностью запуска кода на WebAssembly. Применение CSP-директивы script-src теперь охватывает и WebAssembly.
- В WebAssembly добавлена поддержка ссылочных типов (тип externref). Модули WebAssembly теперь могут хранить в переменных и передавать в качестве аргументов ссылки на объекты JavaScript и DOM.
- В PaymentMethodData объявлена устаревшей поддержка метода платежей “basic-card”, позволявшем организовать работу с любыми типами карт через единый идентификатор, без привязки к отдельным типам данных. Вместо “basic-card” предлагается использовать альтернативные методы, такие как Google Pay, Apple Pay и Samsung Pay.
- При использовании сайтом API U2F (Cryptotoken) пользователю будет показываться предупреждение с информацией об устаревании данного программного интерфейса. API U2F будет отключён по умолчанию в выпуске Chrome 98 и полностью удалён в Chrome 104. Вместо API U2F следует использовать API Web Authentication.
- Внесены улучшения в инструменты для web-разработчиков. Добавлена новая панель “Обзор CSS” (CSS Overview), в которой предлагается сводка информации об используемых цветах, шрифтах, неиспользуемых объявлениях и медиавыражениях, а также выделяются возможные проблемы. Улучшены операции редактирования и копирования CSS. В панели Стили (Styles) в контекстное меню добавлена опция для копирования CSS-определений в виде JavaScript. В панели инспектирования сетевых запросов добавлена вкладка Payload с разбором параметров запроса. В web-консоли добавлена опция для скрытия всех ошибок CORS (Cross-Origin Resource Sharing) и обеспечен вывод трассировки стека для функций async.
В отличие от прошлых выпусков, в анонсе Chrome 96 не указана информация о числе исправленных уязвимостей и степени их опасности. Также перестала работать форма вывода списка исправленных уязвимостей и не раскрыты данные о премиях, выданных в рамках программы по выплате денежного вознаграждения за обнаружение уязвимостей.