Состоялся релиз web-браузера Firefox 119 и сформировано обновление ветки с длительным сроком поддержки – 115.4.0. На стадию бета-тестирования переведена ветка Firefox 120, релиз которой намечен на 21 ноября.
Основные новшества в Firefox 119:
- Предложен обновлённый интерфейс страницы Firefox View, упрощающей доступ к ранее просматриваемому содержимому. На странице Firefox View в одном месте собрана информации об активных вкладках, недавно просмотренных страницах, закрытых вкладках и вкладках с других устройств. В новой версии в Firefox View обеспечено отображение информации о всех вкладках, открытых в любых окнах, а также добавлена возможность просмотра истории посещений с сортировкой по дате или сайту.
- Включена возможность импорта дополнений из Chrome и браузеров на базе движка Chromium. В диалоге импорта данных из других браузеров (“Import Data” на странице about:preferences#general) появилась опция для переноса дополнений. Для переноса задействован список из 72 дополнений, в котором сопоставлены идентификаторы одинаковых дополнений, существующих для Chrome и Firefox. Если при импорте данных из Chrome присутствуют дополнения из списка, то в Firefox вместо версии дополнения для Chrome устанавливается родной для Firefox вариант.
- Включена поддержка механизма ECH (Encrypted Client Hello), который продолжает развитие ESNI (Encrypted Server Name Indication) и используется для шифрования информации о параметрах TLS-сеансов, таких как запрошенное доменное имя. Ключевое отличие ECH от ESNI в том, что в ECH вместо шифрования на уровне отдельных полей целиком шифруется всё TLS-сообщение ClientHello, что позволяет блокировать утечки через поля, которые не охватывает ESNI, например, поле PSK (Pre-Shared Key).
- В предоставляемых встроенным PDF-просмотрщиком возможностях редактирования документов появилась поддержка вставки изображений и текстовых примечаний к ним, в дополнение к ранее доступному рисованию линиями от руки и прикреплению текстовых комментариев. Новый режим редактирования PDF активирован только у части пользователей, для принудительного включения на странице about:config следует активировать настройку “pdfjs.enableStampEditor”.
- Изменены настройки, связанные с восстановлением прерванного сеанса после выхода из браузера. В отличие от прошлых выпусков между сеансами теперь будут сохраняться сведения не только об активных вкладках, но и о недавно закрытых вкладках, что позволит восстанавливать случайно закрытые вкладки после перезапуска и просматривать их список в режиме Firefox View. По умолчанию будут сохраняться данные о 25 последних вкладках, открытых за последние 7 дней. Также будут учитываться данные о вкладках в закрытых окнах и обрабатываться список закрытых вкладок в контексте сразу всех окон, а не только текущего окна.
- Расширены возможности режима полной защиты Cookie (Total Cookie Protection), при котором для каждого сайта используется отдельное изолированное хранилище Cookie, что не позволяет использовать Cookie для отслеживания перемещения между сайтами (все Cookie, выставляемые из загружаемых на сайт сторонних блоков (iframe, js и т.п.), привязываются к сайту, с которого эти блоки загружены). В новой версии реализована изоляция URI-схемы “blob:….” (Blob URL), которая потенциально может использоваться для передачи сведений, пригодных для отслеживания пользователей.
- Для пользователей усиленного режима (strict) работы механизма защиты от отслеживания (ETP, Enhanced Tracking Protection) включена дополнительная защита от косвенной идентификации пользователей через анализ шрифтов – видимые сайтам шрифты ограничены системными шрифтами и шрифтами из штатных языковых наборов.
- В snap-пакете с Firefox реализована поддержка использования родного для Ubuntu диалога выбора файлов при доступе к данным других браузеров, а также поддержка определения доступных возможностей на основе установленной версии xdg-desktop-portal.
- Добавлена поддержка выбора монитора для размещения окна браузера, запущенного в режиме интернет-киоска. Монитор выбирается при помощи параметра командной строки “–kiosk-monitor”. Обеспечено переключение браузера в полноэкранный режим сразу после запуска в режиме киоска.
- Прекращено определение мультимедийного содержимого в файлах, обрабатываемых с MIME-типом “application/octet-stream”. Для подобных файлов браузер теперь предложит загрузить файл, а не начнёт его воспроизведение.
- В рамках подготовки к включению в Firefox блокировки сторонних Cookie обновлена реализация API Storage Access, применяемого для запроса у пользователя полномочий на получение доступа к хранилищу Cookie из iframe, если по умолчанию сторонние Cookie блокируются. В новой реализации усилена защита и добавлены изменения для избежания возникновения проблем в работе сайтов.
- Для собственных элементов (Custom Element), расширяющих функциональность существующих HTML-элементов, включена поддержка атрибутов ARIA (Accessible Rich Internet Applications), позволяющих сделать данные элементы более доступными для людей с ограниченными возможностями. Добавлена возможность выставления и чтения атрибутов ARIA напрямую для элементов DOM (например, buttonElement.ariaPressed = “true”) без вызова методов setAttribute и getAttribute.
- В HTTP-заголовок Cross-Origin-Embedder-Policy, управляющий режимом изоляции Cross-Origin и позволяющий определять правила безопасного использования на странице привилегированных операций, добавлена поддержка параметра “credentialless” для отключения передачи информации, связанной с учётными данными, такой как Cookie и клиентские сертификаты.
- В CSS-функцию attr() добавлена возможность указания второго аргумента, значение которого будет использовано в ситуациях, когда указанный атрибут отсутствует или имеет недопустимое значение. Например, attr(foobar, “Default value”).
- Добавлены методы Object.groupBy и Map.groupBy для группировки элементов массива, используя в качестве ключа для группировки строковое значение, возвращаемое callback-функцией, которая вызывается для каждого элемента массива.
- Добавлены методы: String.prototype.isWellFormed() для проверки наличия в строке корректно сформированного Unicode-текста (наличия только полных “суррогатных пар” составных символов) и String.prototype.toWellFormed() для чистки и преобразования Unicode-текста в корректную форму.
- В методах WebTransport.createBidirectionalStream() и WebTransport.createUnidirectionalStream() добавлена поддержка свойства
“sendOrder” для задания относительного приоритета отправляемым потокам. - В API AuthenticatorAttestationResponse предложены новые методы getPublicKey(), getPublicKeyAlgorithm() и getAuthenticatorData().
- В API Web Authentication добавлена поддержка свойств credProps, позволяющих определить наличие учётных данных после создания или регистрации.
- В API PublicKeyCredential добавлены методы parseCreationOptionsFromJSON(), parseRequestOptionsFromJSON() и toJSON() для преобразование объектов в представление в формате JSON, пригодное для сериализации/десериализации и передачи на сервер.
- В инструментах для web-разработчиков усовершенствован интерфейс для интерактивной работы с CSS (Inactive CSS styles), в котором реализована возможность выявления CSS-свойств, не влияющих на элемент, а также добавлена полная поддержка псевдоэлементов, таких как “::first-letter”, “::cue” и “::placeholder”.
- Во встроенном просмотрщике данных в формате JSON обеспечено автоматического переключение на просмотра данных как есть (raw), если просматриваемые JSON-данные некорректны или повреждены.
- На платформе Windows добавлена поддержка системной настройки, скрывающей курсор во время набора текста.
- В версии для платформы Android устранено аварийное завершение работы, возникающее при полноэкранном просмотре видео. Добавлена поддержка медиа-запросов prefers-contrast и prefers-reduced-transparency в окружении Android 14.
Кроме новшеств и исправления ошибок в Firefox 119 устранено 25 уязвимостей. 17 уязвимостей (16 объединено под CVE-2023-5730 и CVE-2023-5731), которые помечены как опасные, вызваны проблемами работы с памятью, такими как переполнения буферов и обращение к уже освобождённым областям памяти. Потенциально данные проблемы способны привести к выполнению кода злоумышленника при открытии специально оформленных страниц. Ещё одна опасная уязвимость
(CVE-2023-5721) позволяет путём кликджекинга обеспечить подтверждение или отмену некоторых диалогов или предупреждений браузера.