Основные изменения в Chrome 120:
- Начался эксперимент по отключению поддержки сторонних Cookie, выставляемых при обращении к сайтам, отличным от домена текущей страницы. Подобные Cookie применяются для отслеживания перемещений пользователя между сайтами в коде рекламных сетей, виджетов социальных сетей и систем web-аналитики. В январе 2024 года сторонние Cookie будут отключены для 1% пользователей браузера. Изменения продвигаются в рамках инициативы Privacy Sandbox, нацеленной на достижение компромисса между потребностью пользователей сохранить конфиденциальность и желанием рекламных сетей и сайтов отслеживать предпочтения посетителей.
Вместо отслеживающих Cookie предлагается использовать следующие API:
- FedCM (Federated Credential Management), позволяет создавать объединённые сервисы идентификации, обеспечивающие сохранение конфиденциальности и работающие без сторонних Cookie.
- Private State Tokens, позволяет разделять разных пользователей без использования межсайтовых идентификаторов и передавать сведения о подлинности пользователя между разными контекстами.
- Topics (критика), даёт возможность определять категории интересов пользователя, которые можно использовать для выделения групп пользователей со сходными интересами без идентификации отдельных пользователей при помощи отслеживающих Cookie. Интересы вычисляются на основе активности пользователя в браузере и сохраняются на устройстве пользователя. При помощи API Topics рекламная сеть может получить общие сведения об отдельных интересах без наличия информации о конкретной активности пользователя.
- Protected Audience, решение задач ретаргетинга и оценки собственной аудитории (работа с пользователями, уже посещавшими ранее сайт).
- Attribution Reporting, позволяет оценивать такие характеристики эффективности рекламы, как переходы и конверсия (покупка на сайте после перехода).
- Storage Access API, может применяться для запроса у пользователя полномочий на получение доступа к хранилищу Cookie, если по умолчанию сторонние Cookie блокируются.
- В соответствии с требованиями принятого в Евросоюзе закона DMA
(Digital Markets Act) некоторым пользователям будет показан диалог для выбора поисковой системы по умолчанию, возможности которого соответствуют настройкам chrome://settings/search. В Chrome 120 диалог будет показан 1% пользователей, а к моменту публикации Chrome 122 доведён до 100%. - Начался процесс прекращения поддержки видеокодека Theora. На начальном этапе Theora отключён для 1% пользователей, но до 16 января его планируют отключить для всех пользователей. На переходном этапе для возвращения кодека предусмотрена настройка «chrome://flags/#theora-video-codec». В качестве причины прекращения поддержки Theora упоминаются опасения, что в реализации Theora, в которой имеется достаточно сложная логика разбора бинарных данных и декодирования потоков, могут присутствовать уязвимости, похожие на недавние критические проблемы с кодировщиком VP8.
- Оформление каталога Chrome Web Store переработано для упрощения поиска и управления дополнениями. Добавлены новые категории дополнений (например, добавлена категория с дополнениями на базе машинного обучения и раздел «выбор редакции»). В меню » ⋮ » добавлена возможность возвращения прошлого дизайна.
- Расширена функциональность интерфейса «Проверка безопасности» (Safety check), показывающего сводку о возможных проблемах с безопасностью, таких как использование скомпрометированных паролей, состояние проверки вредоносных сайтов (Safe Browsing), наличие неустановленных обновлений и выявление вредоносных дополнений. В новой версии предложен проактивный режим, периодически выполняющий связанные с безопасностью проверки браузера и информирующий пользователя в случае выявления проблем. В настройки добавлены параметры для управления действиями в проактивном режиме.
- Реализована адаптивная панель инструментов, меняющаяся в зависимости от изменения размера окна.
- В менеджере паролей разрешено предоставление совместного доступа к отдельным паролям для членов группы Google Family Group, настроенной через Google Account. За один раз можно предоставить доступ только к одному паролю, после чего совместно используемый пароль не сможет быть обновлён или отозван отправителем.
- Взаимодействие с принтерами перенесено в отдельный сервисный процесс, что позволило повысить стабильность браузера и улучшить отзывчивость интерфейса предпросмотра страницы перед выводом на печать.
- В TLS включена реализация механизма инкапсуляции ключей (KEM, Key Encapsulation Mechanism), использующего гибридный алгоритм X25519Kyber768, устойчивый к подбору на квантовых компьютерах. Для создания сессионных ключей, применяемых для шифрования данных внутри TLS-соединений, теперь может использоваться комбинация из механизма обмена ключами X25519, основанного на эллиптических кривых и ныне применяемого в TLS, c алгоритмом Kyber-768, использующим методы криптографии, основанные на решении задач теории решёток, время решения которых не отличается на обычных и квантовых компьютерах.
- В сервисе автоподавления запросов на подтверждение полномочий (Permission Suggestions Service) обеспечен учёт URL страницы, запрашивающей полномочия (на серверы Google будут передаваться хэши от запрашивающих полномочия URL).
- В версии для Android прекращена поддержка платформы Android 7.0 «Nougat».
- Добавлен фреймворк с реализацией концепции Close-запросов, позволяющих пользователю запрашивать закрытие модальных и всплывающих диалогов через нажатие клавиши Esc или используя экранный жест или кнопку «Назад» на смартфонах. Поддержка Close-запросов добавлена для диалогов, созданных при помощи элемента ‹dialog› или свойства «popover». Также добавлен API CloseWatcher, дающий возможность разработчикам приложений отслеживать Close-запросы и реагировать на их поступление (например, можно создать обработчик нажатия кнопки «назад» на Android-смартфоне).
- В элемент «‹details›» добавлена поддержка атрибута «name», позволяющего создавать группы через определение серии элементов «‹details›» с одним именем.
- В API Media Session добавлено событие «enterpictureinpicture«, позволяющее сайту зарегистрировать обработчик, вызываемый при открытии содержимого в режиме «картинка в картинке».
- Упрощён синтаксис вложенных CSS-блоков — вложенные CSS-правила теперь могут начинаться с любого элемента, без необходимости указания перед вложенным правилом символа амперсанда или использования функции is().
dl { dt { /* стиль для dl dt */ } dd { /* стиль для dl dd */ } }
- В CSS-свойстве «background-clip добавлена поддержка параметра «text» для отображения выбранного фона только в области, ограниченной символами текста. Например, указание «background: linear-gradient(60deg, red, yellow, red, yellow, red); background-clip: text; color: rgba(0, 0, 0, 0.2)» приведёт к отображению:
- В CSS добавлен медиазапрос «scripting», который можно использовать для определения возможности выполнения скриптов, например на языке JavaScript, на текущей странице.
- В CSS добавлен псевдокласс «:dir()», позволяющий выбрать элементы в зависимости от направленности текста (например, «:dir(ltr)» будет охватывать элементы, в которых текст выводится слева направо).
- В CSS добавлены экспоненциальные функции pow(), sqrt(), hypot(), log() и exp().
- В CSS добавлена поддержка свойств mask, mask-image, mask-repeat, mask-position, mask-clip, mask-origin, mask-size, mask-composite и mask-mode для скрытия элемента путём наложения изображения по определённым точкам.
- В API FontFaceSet добавлен метод check(), позволяющий проверить может ли быть отображён текст при выбранных шрифтах без использования в FontFaceSet шрифтов, загрузка которых ещё не завершена.
- В API WebGPU добавлена возможность использования в шейдерах 16-битного типа с плавающей запятой f16.
- В API Media Capabilities в метод decodingInfo() добавлены поля hdrMetadataType, colorGamut и transferFunction для определения поддержки HDR.
- В API MediaStreamTrack добавлена возможность получения информации о счётчиках полученных и отброшенных кадров видео.
- Добавлена возможность передачи объекта ArrayBuffer в конструкторы VideoFrame, AudioData, EncodedVideoChunk, EncodedAudioChunk и ImageDecoder для прямого использования байтового массива без создания его копии.
- В соответствии с изменившейся спецификацией для повышения защиты от XSS-атак и для улучшения переносимости между браузерами в SVGUseElement прекращена поддержка URL «data:», который до этого не поддерживался в движке WebKit.
- Добавлена экспериментальная (origin trial) поддержка HTTP-заголовка
«Priority», через который можно передать сведения о приоритете обработки запроса (RFC 9218) на стадии первого обращения к ресурсу. - Внесены улучшения в инструменты для web-разработчиков. В отладчике по умолчанию включено игнорирование скриптов размещённых в каталогах «/node_modules/» и «/bower_components/» с модулями Node.js.
В режиме удалённой отладки реализован переключатель для выбора между мышью и сенсорным экраном. Улучшена отладка анимации. В панель Elements добавлен переключатель «media» для отладки элементов ‹audio› и ‹video›. По умолчанию включён вывод предупреждений об использовании сторонних Cookie. В утилиту Privacy Sandbox Analysis добавлен анализ используемых на сайте Cookie и вывод рекомендаций по использованию вместо Cookie новых API.
Кроме нововведений и исправления ошибок в новой версии устранено 10 уязвимостей. Многие из уязвимостей выявлены в результате автоматизированного тестирования инструментами AddressSanitizer, MemorySanitizer, Control Flow Integrity, LibFuzzer и AFL. Критических проблем, которые позволяют обойти все уровни защиты браузера и выполнить код в системе за пределами sandbox-окружения, не выявлено. В рамках программы по выплате денежного вознаграждения за обнаружение уязвимостей для текущего релиза компания Google выплатила 13 премий на сумму 15 тысяч долларов США (одна премия $10000, одна премия $2000 и три премии $1000).
Источник: http://www.opennet.ru/opennews/art.shtml?num=60243