Выпуск web-браузера Chrome 129
Компания Google опубликовала релиз web-браузера Chrome 129. Одновременно доступен стабильный выпуск свободного проекта Chromium, выступающего основой Chrome. Браузер Chrome отличается от Chromium использованием логотипов Google, наличием системы отправки уведомлений в случае краха, модулями для воспроизведения защищённого от копирования видеоконтента (DRM), системой автоматической установки обновлений, постоянным включением Sandbox-изоляции, поставкой ключей к Google API и передачей при поиске RLZ-параметров. Для тех, кому необходимо больше времени на обновление, отдельно поддерживается ветка Extended Stable, сопровождаемая 8 недель. Следующий выпуск Chrome 130 запланирован на 15 октября.Основные изменения в Chrome 129:
- Добавлена возможность настройки содержимого панели инструментов, позволяющая пользователю закреплять, откреплять и менять местами пиктограммы при помощи конфигуратора, отображаемого в боковой панели. Например, можно разместить на панели кнопки для вызова интерфейса для разработчиков, очистки данных о работе браузера, открытия режима для чтения, перехода в диспетчер задач, перехода в менеджер паролей и т.п. Для управления включением возможности закрепления пиктограмм добавлен параметр "chrome://flags/#toolbar-pinning". https://honk.any-key.press/d/K7Wn7Rz1MM5ymG98mQ.png
- Предложена функция сравнения вкладок, позволяющая использовать элементы машинного обучения для генерации сравнительного обзора товаров, страницы с информацией о которых открыты в разных вкладках. Возможность пока доступна только для пользователей из США. https://honk.any-key.press/d/5pf4Jj9wgGjLfs1PkS.png
- В версии для платформы Android реализовано перемещение неактивных вкладок в отдельную секцию (Inactive Tabs) интерфейса переключения между вкладками. Имеется возможность просмотра всех старых вкладок и из закрытия разом. По умолчанию новая возможность включена для 1% пользователей. Вкладки автоматически удаляются после нахождения в секции Inactive Tabs больше 60 дней.
- Добавлен экспериментальный режим совместного использования процессов, суть которого в том, что для разных вкладок, в которых открыт один и тот же сайт, будет использоваться один общий процесс отрисовки, вместо раздельных процессов. Изменение позволяет ускорить загрузку страниц и снизить потребление памяти. Для включения режиме добавлена настройка "chrome://flags/#enable-process-per-site-up-to-main-frame-threshold".
- Добавлена возможность предоставления сайтам одноразовых полномочий, действующих только в рамах текущего сеанса (например, можно предоставить доступ к камере и микрофону, который будет действовать до закрытия вкладки или перехода на другой сайт).
- Прекращена поддержка платформы macOS 10.15, сопровождение которой было прекращено компанией Apple в 2022 году.
- Для платформ Windows и macOS в конфигураторе реализован новый интерфейс управления сертификатами (ранее на данных платформах вызывались системные интерфейсы управления сертификатами).
- Включена блокировка доступа к IP 0.0.0.0 для предотвращения атак на локальные сервисы.
- Анонсирована предстоящая замена в TLS алгоритма обмена ключами Kyber768+X25519 на ML-KEM768+X25519 (недавно принятый стандарт ML-KEM основан на постквантовом алгоритме Кyber, но полностью не совместим с его прошлой реализацией).
- В API Scheduler добавлен метод "scheduler.yield()", позволяющий при выполнении длительных задач на время возвращать управление в основной поток браузера, что позволяет приостанавливать текущую длительную задачу для выполнения важных работ, таких как обработка ввода и отрисовка кадров. Идея в том, чтобы разбить длительно выполняемые задачи на более мелкие, периодически передавая управление в основной поток через вызов "await scheduler.yield();" в коде, что позволяет уменьшить негативное влияние длительно выполняемых задач на отзывчивость при работе с сайтом.
https://honk.any-key.press/d/D7243Gp1Qcg3WV5Pyl.png
- Добавлено CSS-свойство "interpolate-size", позволяющее выбирать размер анимации не в абсолютных величинах, а относительно значений, вычисленных при использовании свойств auto, min-content или fit-content. Для более точного управления размером предложена CSS-функция calc-size(), похожая на calc(), но поддерживающая операции с фактическим размером элементов, меняющимся в зависимости от содержимого.
- Внесены изменения в CSS-свойства для управления показом элементов, привязанных к местоположению других элементов (CSS Anchor Positioning), без использования JavaScript, например, для прикрепления к элементам всплывающих окон (popover), появляющихся по аналогии со всплывающими подсказками. В соответствии с рекомендацией рабочей группы, занимающейся стандартизацией СSS, CSS-свойство "inset-area" переименовано в "position-area", свойство "position-try-options" переименовано в "position-try-fallbacks", а в свойстве "position-try" убрана необходимость указания inset-area(), т.е. вместо "position-try-fallbacks: inset-area(top)" следует писать "position-try-fallbacks: top".
- В API Intl добавлен метод Intl.DurationFormat для форматирования данных о продолжительности во времени с учётом выбранной локали. Например:
const l = "ru-RU"; const d = {hours: 1, minutes: 46, seconds: 40}; const opts = {style: "long"}; new Intl.DurationFormat(l, opts).format(d); // "1 час, 46 минут 40 секунд"
- В API Web GPU реализована возможность использования всего диапазона яркости, поддерживаемого экраном, при выводе HDR-изображений.
- В API WebRTC добавлена поддержка отправки блобов при помощи метода RTCDataChannel.send(Blob) и получения данных с типом Blob при обработке события onMessage, если в атрибуте "binaryType" указано значение "blob" (ранее поддерживалась передача строк и ArrayBuffer). Размер блоба ограничен значением maxMessageSize.
- В API WebAuthn добавлены методы PublicKeyCredential.toJSON(), parseCreationOptionsFromJSON() и parseRequestOptionsFromJSON() для сериализации/десериализации WebAuthn-ответов c использованием формата JSON.
- В режиме "Origin trials" реализован API FileSystemObserver, позволяющий сайтам отслеживать изменения файлов и каталогов.
- В режиме "Origin trials" добавлен API Mesh2D Canvas для визуализации большого количества текстурированных треугольников. Из областей применения API упоминаются реализация расширенных методов текстурного маппинга и создания эффектов деформации в двумерном контексте.
- Расширены возможности инструментов для web-разработчиков.
Кроме нововведений и исправления ошибок в новой версии устранены 9 уязвимостей. Многие из уязвимостей выявлены в результате автоматизированного тестирования инструментами AddressSanitizer, MemorySanitizer, Control Flow Integrity, LibFuzzer и AFL. Одной проблеме присвоен высокий уровень опасности (неправильная обработка типов в движке V8). Критических проблем, которые позволяют обойти все уровни защиты браузера и выполнить код в системе за пределами sandbox-окружения, не выявлено. В рамках программы по выплате денежного вознаграждения за обнаружение уязвимостей для текущего релиза компания Google выплатила 5 премий на сумму 13 тысяч долларов США (по одной премии в $8000 и $2000, три премии по $1000). Размер одного вознаграждения пока не определён.
Источник: https://www.opennet.ru/opennews/art.shtml?num=61912