Состоялся релиз web-браузера Firefox 101. Кроме того, сформировано обновление ветки с длительным сроком поддержки – 91.10.0. На стадию бета-тестирования переведена ветка Firefox 102, релиз которой намечен на 28 июня.
Основные новшества в Firefox 101:
- Реализована экспериментальная поддержка третьей версии манифеста Chrome, определяющего возможности и ресурсы, доступные для дополнений, написанных с использованием API WebExtensions. В реализованном в Firefox варианте манифеста Chrome добавлен новый декларативный API фильтрации контента, но в отличие от Chrome не прекращена поддержка старого блокирующего режима работы API webRequest, востребованного в дополнениях для блокирования нежелательного контента и обеспечения безопасности. Для включения поддержки третьей версии манифеста в about:config предусмотрен параметр “extensions.manifestV3.enabled”.
- Предоставлена возможность привязки обработчиков ко всем MIME-типам, вызываемым после завершения загрузки файлов указанного типа.
- Реализована возможность одновременного использования произвольного числа микрофонов в процессе видеоконференции, что, например, позволяет легко переключать микрофоны во время мероприятия.
- Включена поддержка протокола WebDriver BiDi, позволяющего использовать внешние инструменты для автоматизации работы и удалённого управления браузером, например, протокол позволяет тестировать интерфейс при помощи платформы Selenium. Поддерживается серверная и клиентская составляющие протокола, позволяющие отправлять запросы и принимать ответы.
- Добавлена поддержка медиазапроса prefers-contrast, при помощи которого сайты могут определять выставленные пользователем настройки для отображения контента с повышенным или пониженным контрастом.
- Добавлена поддержка трёх новых размеров видимой области (Viewport) – маленькая, большая и динамическая, а также связанных с данными размерами единиц измерения – “*vi” (vi, svi, lvi и dvi), “*vb” (vb, svb, lvb и dvb),
“*vh” (svh, lvh, dvh), “*vw” (svw, lvw, dvw), “*vmax” (svmax, lvmax, dvmax и “*vmin” (svmin, lvmin и dvmin), позволяющих привязывать размер элементов к наименьшему, наибольшему и динамическому размеру видимой области (размер меняется в зависимости от показа, скрытия и состояния динамической панели инструментов). - В класс HTMLInputElement добавлен метод showPicker(), позволяющий отобразить готовые диалоги для заполнения типовых значений в полях с типами “date”, “month”, “week”, “time”, “datetime-local”, “color” и “file”, а также для полей поддерживающих автозаполнение (autofill) и выбор по списку (datalist). Например, можно показать интерфейс в форме календаря для выбора даты или палитру для ввода цвета.
- Добавлен программный интерфейс, позволяющий из JavaScript-приложения динамически создавать таблицы стилей и манипулировать применением стилей. В отличие от создания таблиц стилей при помощи метода document.createElement(‘style’) новый API добавляет средства для конструирования стилей через объект CSSStyleSheet(), предоставляя такие методы, как insertRule, deleteRule, replace и replaceSync.
- В панели инспектирования страницы при добавлении или удалении имён классов через кнопку “.cls” во вкладке Rule View реализовано интерактивное применение рекомендаций из выпадающей подсказки автодополнения ввода, предлагающей обзор имён классов, доступных для страницы. По мере перемещения по списку выбранные классы автоматически применяются для наглядной оценки вызванных ими изменений.
- В настройки панели инспектирования добавлена новая опция для отключения функции “drag to update” во вкладке Rule View, позволяющей изменять размер некоторых CSS-свойств горизонтальным перетаскиванием мышью.
- В Firefox для Android добавлена поддержка функции увеличения областей экрана, появившаяся в Android 9, при помощи которой можно, например, увеличить содержимое web-форм. Решены проблемы с размером видео при просмотре YouTube или выходе из режима картинка-в-картинке, устранено мерцание виртуальной клавиатуры при отображении всплывающего меню, налажено отображение в адресной строке кнопки QR-кода.
Кроме новшеств и исправления ошибок в Firefox 101 устранено 30 уязвимостей, из которых 25 помечены как опасные. 19 уязвимостей (сведены под CVE-2022-31747 и CVE-2022-31748) вызваны проблемами работы с памятью, такими как переполнения буферов и обращение к уже освобождённым областям памяти. Потенциально данные проблемы способны привести к выполнению кода злоумышленника при открытии специально оформленных страниц. Также устранена специфичная для платформы Windows проблема, позволяющая влиять на путь к сохраняемому файлу через использование в спецсимволов “%”, что позволяет подставить в путь переменные, такие как %HOMEPATH% и %APPDATA%.