Состоялся релиз web-браузера Firefox 109. Кроме того, сформировано обновление ветки с длительным сроком поддержки – 102.7.0. На стадию бета-тестирования в ближайшее время будет переведена ветка Firefox 110, релиз которой намечен на 14 февраля.
Основные новшества в Firefox 109:
- По умолчанию включена поддержка третьей версии манифеста Chrome, который определяет возможности и ресурсы, доступные для дополнений, написанных с использованием API WebExtensions. Поддержка второй версии манифеста в обозримом будущем будет сохранена. Так как третья версия манифеста стала объектом критики и приведёт к нарушению работы некоторых дополнений для блокирования нежелательного контента и обеспечения безопасности, компания Mozilla отошла от обеспечения полной совместимости с манифестом в Firefox и реализовала некоторые возможности иначе. Например, не прекращена поддержка старого блокирующего режима работы API webRequest, на смену которому в Chrome пришёл новый декларативный API фильтрации контента.
Также немного по другому реализована поддержка гранулированной модели запроса полномочий, в соответствии с которой дополнение не может активироваться сразу для всех страниц (убрано полномочие “all_urls”). В Firеfox конечное решение о предоставлении доступа предоставлено пользователю, который может выборочно решать какому дополнению предоставить доступ к своим данным на том или ином сайте. Для управления полномочиями в интерфейс добавлена кнопка “Unified Extensions”, при помощи которой пользователь может предоставить и отозвать доступ дополнения к любому сайту. Управление полномочиями применяется только к дополнениям на основе третьей версии манифеста, для дополнений на второй версии манифеста гранулированное управление доступом к сайтам не производится.
- На странице Firefox View улучшено оформление пустых секций с недавно закрытыми вкладками и вкладками открытыми на других устройствах.
- В списке недавно закрытых вкладок, показываемом на странице Firefox View, добавлены кнопки для удаления отдельных ссылок из списка.
- Добавлена возможность отображения в адресной строке введённого поискового запроса, вместо показа URL-адреса поисковой системы (т.е. ключи показываются в адресной строке не только в процессе ввода, но и после обращения к поисковой системе и показа связанных с введёнными ключами результатов поиска). Возможность пока отключена по умолчанию и для активации требует выставления в about:config настройки “browser.urlbar.showSearchTerms.featureGate“.
- В диалоге выбора даты для поля с типами “date” и “datetime” адаптирован для управления c клавиатуры, что позволило обеспечить корректную поддержку экранных ридеров и использовать клавиатурные комбинации для навигации по календарю.
- Завершился эксперимент по использованию встроенного дополнения Colorways для изменения внешнего вида браузера (на выбор предлагалось шесть цветовых тем с разными вариантами оттенков, влияющих на выбор тона для области контента, панелей и строки переключения вкладок. Доступ к ранее сохранённым цветовым темам можно получить на странице “Add-ons and themes”.
- На системах с GTK реализована возможность одновременного перемещения нескольких файлов в файловый менеджер. Налажено перемещение изображений из одной вкладки в другую.
- В системе автонажатия на баннеры, запрашивающие полномочия по использованию Cookie на сайтах (cookiebanners.bannerClicking.enabled и cookiebanners.service.mode в about:config), реализована возможность добавления сайтов в список исключений, для которых не применяется автонажатие.
- По умолчанию включена настройка network.ssl_tokens_cache_use_only_once для исключения повторного использования сессионных тикетов в TLS.
- Включена настройка network.cache.shutdown_purge_in_background_task, решающая проблему с корректным завершением файлового ввода/вывода при завершении работы.
- В контекстное меню дополнений добавлен элемент для закрепления кнопки дополнения в панели.
- Включена по умолчанию поддержка события scrollend, генерируемого при завершении пользователем прокрутки (когда позиция перестаёт изменяться) в объектах Element и Document.
- Обеспечено секционирование доступа через API Storage при обработке стороннего контента, независимо от API Storage Access.
- В элемент range добавлена поддержка атрибута list, в котором передаётся идентификатор элемента со списком предопределённых значений, предлагаемых к вводу.
- В CSS-свойство content-visibility, применяемого для исключения лишней отрисовки областей вне поля видимости, добавлено значение ‘auto’, при выставлении которого видимость определяется браузером на основании близости элемента к границе видимой области.
- В CSS-тип , определяющий значения по умолчанию цветов различных компонентов страницы, добавлена поддержка значений Mark, MarkText и ButtonBorder.
- В Web Auth добавлена возможность аутентификации с использованием протокола CTAP2 (Client to Authenticator Protocol) для устройств класса USB HID.
- В инструментах для web-разработчиков в отладчике JavaScript добавлен новый вариант точек останова, срабатывающий при переходе к обработчику события scrollend.
- В протокол удалённого управления браузером WebDriver BiDi добавлена поддержка команд “session.subscribe” и “session.unsubscribe“.
- В сборках для платформы Windows включено использование аппаратного механизма защиты ACG (Arbitrary Code Guard) для блокирования эксплуатации уязвимостей в процессах, обеспечивающих воспроизведение мультимедийного содержимого.
- На платформе macOS изменено действие комбинаций Ctrl/Cmd + trackpad или Ctrl/Cmd + колесо мыши, которые теперь приводят к прокрутке (как в остальных браузерах), а не масштабированию.
- Улучшения в версии для Android:
- При просмотре полноэкранного видео отключён вывод адресной строки при прокрутке.
- Добавлен кнопка для отмены изменения после удаления закреплённого сайта.
- Обеспечено обновление списка поисковых систем после смены языка.
- Устранено аварийное завершение, возникающее при помещении большой порции данных в буфер обмена или адресную строку.
- Повышена производительность вывода элементов canvas.
- Решена проблема с видеовызовами, для которых может использоваться только кодек H.264.
Кроме новшеств и исправления ошибок в Firefox 108 устранена 21 уязвимость. 15 уязвимостей помечены как опасные, из них 13 уязвимостей (собраны под CVE-2023-23605 и CVE-2023-23606) вызваны проблемами работы с памятью, такими как переполнения буферов и обращение к уже освобождённым областям памяти. Потенциально данные проблемы способны привести к выполнению кода злоумышленника при открытии специально оформленных страниц. Уязвимость CVE-2023-23597 вызвана логической ошибкой в коде создания новых дочерних процессов и позволяет запустить новый процесс в контексте file:// для чтения содержимого произвольных файлов. Уязвимость CVE-2023-23598 вызвана ошибкой обработки действий drag&drop в обвязке над GTK и позволяет прочитать содержимое произвольных файлов через вызов DataTransfer.setData.