Компания Google опубликовала релиз web-браузера Chrome 138. Одновременно доступен стабильный выпуск свободного проекта Chromium, выступающего основой Chrome. Браузер Chrome отличается от Chromium использованием логотипов Google, наличием системы отправки уведомлений в случае краха, модулями для воспроизведения защищённого от копирования видеоконтента (DRM), системой автоматической установки обновлений, постоянным включением Sandbox-изоляции, поставкой ключей к Google API и передачей RLZ-параметров при поиске. Для тех, кому необходимо больше времени на обновление, отдельно поддерживается ветка Extended Stable, сопровождаемая 8 недель. Следующий выпуск Chrome 139 запланирован на 5 августа.
Основные изменения в Chrome 138:
- В адресной строке и на странице открытия новой вкладки реализован AI-режим вывода рекомендаций, связанных с вводимым поисковым запросом.
- В адресной строке в системе контекстных рекомендаций реализована возможность получения информации о странице через Google Lens, задав вопросов на естественном языке или указав на объект на экране.
- Некоторым пользователям, привязавшим браузер к учётной записи в Google, предложена новая форма включения синхронизации вкладок и истории навигации между устройствами, реализованная в виде сообщения-подсказки, рядом с профилем пользователя.
- При использовании дополнений, меняющих содержимое страницы открытия новой вкладки, сведения об изменившем содержимое дополнении теперь показываются в нижней части страницы.
- Добавлена поддержка групп совместных вкладок, с которыми совместно могут работать несколько пользователей. Пользователь может создать набор вкладок и поделиться им с другими пользователями, которые будут видеть те же вкладки на своих устройствах. В случае, если кто-то из участников поменяет вкладку в группе, изменение будет сразу отражено и на устройствах других пользователей. Создание групп пока доступно только для пользователей тестовых сборок (Beta/Dev/Canary).
- Предоставлена возможность выборочного предоставления доступа отдельных дополнений к API userScript без необходимости активации режима разработчика (Developer Mode).
- Реализована поддержка механизма TLS 1.3 Early Data, позволяющего клиенту отправлять GET-запросы до завершения стадии согласования TLS-соединения.
- Добавлена возможность сохранения закладок и списка для чтения в своей учётной записи в Google.
- Реализован вывод предупреждения о мошеннических страницах, выявленных большой языковой моделью на основе анализа содержимого. Использование AI применяется в режиме расширенной защиты браузера (Safe Browsing > Enhanced protection). AI-модель выполняется на стороне клиента, но в случае выявления подозрений на сомнительный контент, выполняется дополнительная проверка на серверах Google.
- Обеспечена синхронизация настроек режима расширенной защиты (Safe Browsing > Enhanced protection) между браузерами на разных устройствах пользователя (при включении расширенной защиты на одном устройстве, она будет активирована и на других устройствах, привязанных к одной учётной записи).
- Реализован API Translator предоставляющий возможности для перевода текста с одного языка на другой. В качестве примера применения упоминается интеграция функции перевода в web-чат. Для перевода задействована AI-модель Gemini Nano, выполняемая на локальной системе пользователя.
- Реализован API Language Detector, позволяющий определять язык по фрагменту текста.
- Реализован API Summarizer для резюмирования текстов (краткого изложения сути) или генерации заголовков и описаний, используя большую языковую модель.
- Добавлен API Viewport Segments для организации вывода на устройства со складными экранами.
- В версии для Android добавлена возможность использования API Web Serial для подключения к последовательному порту поверх Bluetooth.
- В соответствии с изменениями в спецификации HTML, нацеленными на защиту от XSS-атак, включено экранирование символов “<” и “>” при сериализации атрибутов HTML-элементов. Методы Element.innerHTML, Element.outerHTML, Element.getHTML, ShadowRoot.innerHTML и ShadowRoot.getHTML теперь будут заменять символы “<” и “>” на “<” и “>” при сериализации HTML в строку.
- Добавлены новые CSS-функции abs() и sign() для определения абсолютного значения и знака числа; progress() для вычисления промежуточного значения между двумя другими значениями; sibling-index() и sibling-count() для стилизации элементов на основе позиции или числа соседних элементов.
- В CSS добавлено ключевое слово “stretch”, позволяющее элементам растягиваться до тех пор, пока они полностью не заполнят доступное пространство блока.
- В инструментах для web-разработчиков расширены возможности для анализа производительности. Упрощена отладка сложных CSS-значений. При инспектировании сетевой активности появилась возможность фильтрации на основе наличия заданных HTTP-заголовков.
Для обычных пользователей включён AI-ассистент, способный пояснять суть ошибок и предупреждений, выводимых в web-консоли, а также давать рекомендации по их устранению. - В системе сборки проекта Chromium осуществлён переход с инструментария Ninja на сборочную систему Siso, которая может использоваться в качестве прозрачной замены Ninja, поддерживающей удалённое выполнение сборочных работ. Siso включает ряд оптимизаций для сокращения времени сборки и потребления памяти, таких как минимизация дисковых и сетевых операций, совместное использование памяти. Система также поддерживает сбор детальных метрик о производительности для профилирования сборочного процесса.
Кроме нововведений и исправления ошибок в новой версии устранены 11 уязвимостей. Многие из уязвимостей выявлены в результате автоматизированного тестирования инструментами AddressSanitizer, MemorySanitizer, Control Flow Integrity, LibFuzzer и AFL. Критических проблем, которые позволяют обойти все уровни защиты браузера и выполнить код в системе за пределами sandbox-окружения, не выявлено. В рамках программы по выплате денежного вознаграждения за обнаружение уязвимостей для текущего релиза компания Google выплатила 3 премии на сумму 6000 долларов США (по одной премии в $1000 и одна премия $4000).