Состоялся релиз web-браузера Firefox 85. Кроме того, сформировано обновление ветки с длительным сроком поддержки 78.7.0. На стадию бета-тестирования перешла ветка Firefox 86, релиз которой намечен на 23 февраля.
- Добавлена дополнительная защита от методов отслеживания перемещений пользователя между сайтами, основанных на хранении идентификаторов в областях, не предназначенных для постоянного хранения информации (“Supercookies”). Защита основана на применении сегментирования сети (Network Partitioning), суть которого в добавлении дополнительного признака к ключу, применяемому для извлечения объектов из браузерных кэшей.
Помимо URL добавлена привязка к первичному домену, с которого открыта основная страница, что ограничивает область охвата кэша для скриптов отслеживания перемещений только текущим сайтом (скрипт из iframe не сможет проверить загружался ли ресурс с другого сайта). Ценой сегментирования является снижение эффективности кэширования, приводящее к незначительному увеличению времени загрузки страницы (максимум на 1.32%, но для 80% сайтов на 0.09-0.75%). Для выключения нового метода защиты в about:config предусмотрена настройка privacy.partition.network_state.
- Упрощён интерфейс для сохранения закладок на сайты и доступа к
закладкам. На странице открытия новой вкладки по умолчанию включён показ панели закладок. Кроме того, Firefox теперь запоминает выбранное в прошлый раз местоположение закладок и при попытке сохранения новой закладки предлагает его по умолчанию. По умолчанию предлагается сохранять закладки в панель закладок, а не в раздел “Other bookmarks”. - В менеджере паролей предоставлена возможность удаления разам всех отфильтрованных учётных записей, без необходимости отдельного удаления каждого элемента списка. Функция доступна через контекстное меню “…”.
- Вместо механизма ESNI (Encrypted Server Name Indication) для шифрования информации о параметрах TLS-сеансов, таких как запрошенное доменное имя, реализована поддержка спецификации ECH (Encrypted Client Hello), которая продолжает развитие ESNI и находится на стадии черновика, претендующего на роль стандарта IETF. Ключевое отличие ECH от ESNI в том, что в ECH вместо отдельного поля шифруется всё сообщение ClientHello, что позволяет блокировать утечки через поля, которые не охватывает ESNI.
- В Linux по умолчанию активирован движок композитинга WebRender для сеанса пользовательского окружения GNOME, использующего протокол Wayland. В прошлом выпуске поддержка WebRender была активирована для GNOME в окружении X11. Использование WebRender в Linux пока ограничено видеокартами AMD и Intel, так как при работе в системах с проприетарным драйвером NVIDIA и свободным драйвером Noveau наблюдаются нерешённые проблемы. WebRender написан на языке Rust и позволяет добиться существенного увеличения скорости отрисовки и снижения нагрузки на CPU за счёт выноса на сторону GPU операций отрисовки содержимого страницы, которые реализованы через выполняемые в GPU шейдеры. Для принудительного включения в about:config следует активировать настройку “gfx.webrender.enabled” или запустить Firefox с выставленной переменной окружения MOZ_WEBRENDER=1.
- Прекращена поддержка плагина Adobe Flash. Сопровождение технологии Flash было официально завершено компанией Adobe 31 декабря 2020 года. Напомним, что возможность запуска плагина Adobe Flash была отключена по умолчанию ещё в Firеfox 69, но сохранялась опция для индивидуального включения Flash для конкретных сайтов. Flash оставался последним NPAPI-плагином, поддержка которого сохранялась в Firefox после перевода API NPAPI в разряд устаревших. Поддержка Silverlight, Java, Unity, Gnome Shell Integration и NPAPI-плагинов с поддержкой мультимедийных кодеков была прекращена в Firefox 52, выпущенном в 2016 году.
- Добавлен CSS-псевдокласс “:focus-visible“, который использует ту же эвристику, что применяется браузером при принятии решения о показе индикатора смены фокуса. Ранее доступный псевдокласс “:focus” всегда подсвечивает фокус. При помощи “:focus-visible” можно организовать показ разных индикаторов фокуса при активации мышью или клавиатурой. Например, можно привязать изменение стиля при наведении фокуса мышью, без клика.
Для отладки изменения фокуса в интерфейс инспектирования страниц (Page Inspector/Rules View) добавлен переключатель, позволяющий включать стили “:focus-visible” для выбранных элементов в дополнение к псевдоклассам “:hover”, “:active”, “:focus”, “:focus-within” и “:visited”.
- В предоставляемом в web-конcоли многострочном режиме редактирования кода появилась кнопка “{}” для форматирования конструкций JavaScript для более наглядного вывода.
- В тег link добавлена поддержка атрибута rel=’preload’, управляющего упреждающей загрузкой контента (например, ). Через preload можно организовать загрузку ресурсов, не дожидаясь когда они будут запрошены, например, можно сразу загрузить определённые файлы CSS, скрипты, видео и картинки. Компания Google продвигает тег может использоваться в качестве альтернативы технологии Server Push.
- В CSS-свойство “touch-action” добавлен параметр “pinch-zoom”, позволяющий настроить обработку жеста “масштабирование щипком”.
- В WebExtensions предоставлена возможность отключения в дополнениях возможности переопределения домашней страницы и экрана открытия новой вкладки без отключения всего дополнения.
- В версии для Android для дополнений на базе WebExtensions реализована поддержка API browsingData, которое позволяет удалять накопленные в процессе навигации данные, такие как данные форм, cookie, пароли, загрузки, содержимое кэша, история посещений.
Кроме новшеств и исправления ошибок в Firefox 84 устранена 33 уязвимости, из которых 25 помечены как опасные. 23 уязвимости (собраны под CVE-2021-23964 и CVE-2021-23965) вызваны проблемами работы с памятью, такими как переполнения буферов и обращение к уже освобождённым областям памяти. Потенциально данные проблемы способны привести к выполнению кода злоумышленника при открытии специально оформленных страниц.