29.06.2022

Релиз Chrome 98

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

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

  • В браузер встроено собственное хранилище корневых сертификатов удостоверяющих центров (Chrome Root Store), которое будет использоваться вместо внешних хранилищ, специфичных для каждой операционной системы. Хранилище реализовано по аналогии с независимым хранилищем корневых сертификатов в Firefox, используемом в качестве первого звена для проверки цепочки доверия сертификатов при открытии сайтов по HTTPS. Новое хранилище пока не используется по умолчанию. Для упрощения перевода конфигураций, завязанных на системные хранилища, и для обеспечения переносимости, какое-то время будет действовать переходный период, в течение которого в Chrome Root Store будет включена полная подборка сертификатов, одобренных на большинстве поддерживаемых платформ.
  • Продолжается реализация плана по усилению защиты от атак, связанных с обращением к ресурсам в локальной сети или на компьютере пользователя (localhost) из скриптов, загружаемых при открытии сайта.
    Подобные запросы используются злоумышленниками для осуществления CSRF-атак на маршрутизаторы, точки доступа, принтеры, корпоративные web-интерфейсы и другие устройства и сервисы, принимающие запросы только из локальной сети.

    Для защиты от подобных атак в случае обращения к любым субресурсам во внутренней сети, браузер начнёт отправлять явный запрос полномочия загрузки подобных субресурсов. Запрос полномочий осуществляется через
    отправку на сервер основного сайта запроса CORS (Cross-Origin Resource Sharing) с заголовком «Access-Control-Request-Private-Network: true», перед обращением ко внутренней сети или к localhost. При подтверждении операции в ответ на данный запрос сервер должен вернуть заголовок «Access-Control-Allow-Private-Network: true». В Chrome 98 проверка реализована в тестовом режиме и в случае отсутствия подтверждения в web-консоли отображается предупреждение, но сам запрос субресурса не блокируется. Блокировку планируется включить не раньше выпуска Chrome 101.

  • В настройки учётной записи интегрированы средства для управления включением расширенного режима защиты от опасных сайтов (Enhanced Safe Browsing), в котором активируются дополнительные проверки для защиты от фишинга, вредоносной активности и прочих угроз в Web. При активации режима в учётной записи Google теперь будет выводиться предложение активировать режим и в Chrome.
  • Добавлена модель для выявления попыток фишинга на стороне клиента, реализованная с использованием платформы машинного обучения TFLite (TensorFlow Lite) и не требующая отправки данных для выполнения проверки на стороне Google (при этом отправляется телеметрия c информацией о версии модели и вычисленных весовых коэфициентах для каждой категории). При выявлении попытки фишинга пользователю перед открытием подозрительного сайта будет показана страница с предупреждением.
  • В API Client Hints, развиваемого в качестве замены заголовка User-Agent и позволяющего выборочно отдавать данные о конкретных параметрах браузера и системы (версия, платформа и т.д.) только после запроса сервером, реализована возможность подстановки в список идентификаторов браузера фиктивных названий, по аналогии с используемым в TLS механизмом GREASE (Generate Random Extensions And Sustain Extensibility). Например, помимо ‘»Chrome»; v=»98″‘ и ‘»Chromium»; v=»98″‘ в список может быть добавлен случайный идентификатор несуществующего браузера ‘»(Not;Browser»; v=»12″‘. Подобная подстановка позволит выявлять проблемы с обработкой идентификаторов неизвестных браузеров, которые приводят к тому, что альтернативные браузеры вынуждены притворяться другими популярными браузерами, чтобы обойти проверку по спискам допустимых браузеров.
  • Начиная с 17 января в каталог Chrome Web Store перестали приниматься дополнения, использующие вторую версию манифеста Chrome. Новые дополнения теперь будут приниматься только с третьей версией манифеста.
    Разработчики ранее добавленных дополнений, как и раньше, смогут публиковать обновления со второй версией манифеста. Полное прекращение поддержки второй версии манифеста запланировано на январь 2023 года.
  • Добавлена поддержка цветных векторных шрифтов в формате COLRv1 (подмножество шрифтов OpenType, содержащих помимо векторных глифов слой c информацией о цвете), которые могут применяться, например, для создания многоцветных emoji. В отличие от ранее поддерживаемого формата COLRv0 в COLRv1 появилась возможность использования градиентов, наложений и трансформаций. Формат также предоставляет компактную форму хранения, обеспечивает эффективное сжатие и допускает повторное использование контуров, что позволяет существенно уменьшить размер шрифта. Например, шрифт Noto Color Emoji в растровом представлении занимает 9MB, а в векторном формате COLRv1 — 1.85MB.
  • В режиме Origin Trials (экспериментальные возможности, требующие отдельной активации) реализован API Region Capture, позволяющий кадрировать захватываемое видео. Например, кадрирование может понадобиться в web-приложениях, осуществляющих захват видео с содержимыми своей вкладки, для вырезания определённого содержимого перед отправкой. Origin Trial подразумевает возможность работы с указанным API из приложений, загруженных с localhost или 127.0.0.1, или после прохождения регистрации и получения специального токена, который действует ограниченное время для конкретного сайта.
  • В CSS-свойство «contain-intrinsic-size» добавлена поддержка значения «auto», при указании которого будет использован последний запомненный размер элемента (при использовании вместе с «content-visibility: auto» разработчику не нужно угадывать отрисованный размер элемента).
  • Добавлено свойство AudioContext.outputLatency, через которое можно узнать сведения о прогнозируемой задержке перед выводом звука (задержка между запросом звука и началом обработки полученных данных устройством вывода звука).
  • CSS-свойство color-scheme, дающее возможность определить в каких цветовых схемах может быть корректно показан элемент («light», «dark», «day mode» и «night mode»), добавлен параметр «only», позволяющий исключить принудительное изменение цветовой схемы для отдельных HTML-элементов. Например, для если указать «div { color-scheme: only light }», то для элемента div будет использоваться только светлая тема, даже если в браузере будет принудительно включено тёмное оформление.
  • В CSS добавлена поддержка media-запросов ‘dynamic-range’ и ‘video-dynamic-range’ для определения наличия экрана, поддерживающего HDR (High Dynamic Range).
  • В функцию window.open() добавлена возможность выбора открытия ссылки в новой вкладке, новом окне или всплывающем окне. Кроме того, свойство window.statusbar.visible теперь возвращает «false» для всплывающих окон и «true» для вкладок и окон.
     const popup = window.open('_blank','','popup=1'); // Открыть во всплывающем окне const tab = window.open('_blank','','popup=0'); // Открыть во вкладке 
  • Для окон и worker-ов реализован метод structuredClone(), позволяющий создавать рекурсивные копии объектов, включающие свойства не только указанного объекта, но и всех других объектов, на которые ссылается текущий объект.
  • В Web Authentication API добавлена поддержка расширения спецификации FIDO CTAP2, позволяющего задать минимальный допустимый размер PIN-кода (minPinLength).
  • Для устанавливаемых обособленных web-приложений добавлен компонент Window Controls Overlay, расширяющий экранную область приложения на всё окно, включая область заголовка, на который накладываются штатные кнопки управления окном (закрытие, минимизация, максимизация). Web-приложение может управлять отрисовкой и обработкой ввода во всём окне, за исключением наложенного блока с кнопками управления окном.
  • В WritableStreamDefaultController добавлено свойство обработки сигналов, возвращающее объект AbortSignal, при помощи которого можно сразу останавливать операции записи в WritableStream, не дожидаясь их завершения.
  • В WebRTC удалена поддержка механизма согласования ключей SDES, который в 2013 году был объявлен организацией IETF устаревшим из-за проблем с безопасностью.
  • По умолчанию отключён API U2F (Cryptotoken), который ранее объявлен устаревшим и ему на смену пришёл API Web Authentication. API U2F будет полностью удалён в Chrome 104.
  • В API Directory объявлено устаревшим поле installed_browser_version, вместо которого предложено новое поле pending_browser_version, отличающееся тем, что в нём содержится информация о версии браузера с учётом загруженных, но не применённых обновлений (т.е. версия, которая будет действовать после перезапуска браузера).
  • Убраны параметры, позволявшие вернуть поддержку TLS 1.0 и 1.1.
  • Внесены улучшения в инструменты для web-разработчиков. Добавлена вкладка для оценки работы кэша перехода (Back-forward cache), обеспечивающего мгновенный переход при использовании кнопок «Назад» и «Вперёд». Добавлена возможность эмуляции медаизапросов forced-colors. В редакторе Flexbox добавлены кнопки для поддержки свойств row-reverse и column-reverse. Во вкладке «Changes» обеспечено отображение изменений после форматирования кода, что упрощает разбор минифицированных страниц.

    Реализация панели просмотра кода обновлена до выпуска редактора кода CodeMirror 6, в котором значительно повышена производительность работы с очень большими файлами (WASM, JavaScript), решены проблемы со случайными смещениями при навигации и улучшены рекомендации системы автодополнения при редактировании кода.
    В панель с CSS-свойствами добавлена возможность фильтрации вывода по имени или значению свойства.

Кроме нововведений и исправления ошибок в новой версии устранено 27 уязвимостей. Многие из уязвимостей выявлены в результате автоматизированного тестирования инструментами AddressSanitizer, MemorySanitizer, Control Flow Integrity, LibFuzzer и AFL. Критических проблем, которые позволяют обойти все уровни защиты браузера и выполнить код в системе за пределами sandbox-окружения, не выявлено. В рамках программы по выплате денежного вознаграждения за обнаружение уязвимостей для текущего релиза компания Google выплатила 19 премий на сумму 88 тысяч долларов США (две премии $20000, одна премия $12000, две премии $7500, четыре премии $1000 и по одной премии в $7000, $5000, $3000 и $2000.

Источник.