Состоялся релиз web-браузера Firefox 84. Кроме того, сформировано обновление ветки с длительным сроком поддержки 78.6.0. На стадию бета-тестирования в ближайшие часы перейдёт ветка Firefox 85, релиз которой намечен на 26 января.

Основные новшества:

  • На платформе Linux для GNOME и X11 по умолчанию задействован движок композитинга WebRender, написанный на языке Rust и позволяющий добиться существенного увеличения скорости отрисовки и снижения нагрузки на CPU за счёт выноса на сторону GPU операций отрисовки содержимого страницы, которые реализованы через выполняемые в GPU шейдеры. В списке блокировки для WebRender остаются проприетарные драйверы NVIDIA, а также драйверы Intel при использовании экранных разрешений 3440×1440 и выше. Для принудительного включения в about:config следует активировать настройку «gfx.webrender.enabled» или запустить Firefox с выставленной переменной окружения MOZ_WEBRENDER=1.

    На платформе Android движок WebRender включён для устройств с GPU Mali-G, помимо ранее поддерживаемых Adreno 5xx (Google Pixel, Google Pixel 2/XL, Oneplus 5), Adreno 6xx (Google Pixel 3, Google Pixel 4, Oneplus 6), а также смартфонов Pixel 2 и Pixel 3. Для Windows поддержка WebRender включена для 5 и 6 поколений GPU Intel, для macOS для выпуска Big Sur.

  • Для Linux задействованы более современные методы выделения разделяемой памяти, что привело к увеличению производительности и улучшило совместимость с Docker.
  • При просмотре мультимедийного контента, например, роликов на YouTube, в индикаторе управления воспроизведением и регулирования громкости в GNOME и MATE теперь показывается эскиз воспроизводимого контента и кнопки управления воспроизведением.

  • C использованием инфраструктуры Remote Settings реализована упреждающая загрузка сертификатов промежуточных удостоверяющих центров, что позволило снизить число сообщений об ошибках при просмотре некорректно настроенных сайтов. В новом выпуске также доведена до рабочего вида поддержка механизма CRLite, который позволяет организовать эффективную проверку отзыва сертификатов по базе данных, размещаемой на системе пользователя.
    Для включения локальной проверки сертификатов в about:config следует выставить параметры security.remote_settings.crlite_filters.enabled=true и security.pki.crlite_mode=2.

  • В менеджере дополнений (about:addons) реализована возможность предоставления и отзыва необязательных дополнительных прав, необходимых для реализации в дополнении расширенной функциональности, включаемой через отдельные настройки. Ранее подобные расширенные права запрашивались динамически при включении расширенных функций и не отражались в интерфейсе about:addons. Например, дополнение Simple Tab Groups имеет дополнительную функцию создания закладок, которая по умолчанию отключена, а при включении требует полномочий для доступа к закладкам.

  • Добавлена возможность изменения масштаба всплывающих окон и панелей дополнений через вращение колеса мыши при нажатой клавише Ctrl.
  • Обращение к localhost (URL http://localhost/, http://dev.localhost/ и т.п.) больше не помечается как смешанный контент и загрузка ресурсов с localhost не влияет на метку безопасного соединения.

  • Реализован API PerformancePaintTiming (Paint Timing), позволяющий отследить время различных стадий отрисовки страницы. При помощи данного API можно выявить узкие места загрузки страницы и проблемные моменты, например, ситуации когда посетителю уже видна ссылка или форма ввода, но из-за того, что JavaScript ещё не загрузился, их обработчики недоступны.
  • Отключена поддержка технологии Application Cache (AppCache), применявшейся для организации работы web-приложения в offline-режиме. В качестве причины называется желание избавиться от одного из векторов для совершения атак, связанных с межсайтовым скриптингом. Вместо AppCache рекомендуется использовать API Service Worker.
  • В конструктор Intl.DateTimeFormat добавлено свойство fractionalSecondDigits для настройки формата отображения долей секунды.
  • В методе Navigator.registerProtocolHandler() прекращена поддержка параметра title (допустимы только параметры scheme и url).
  • В CSS-псевдокласс :not() добавлена поддержка сложных селекторов. Например: «:not(:disabled, :hover) { outline: 1px solid red;}».
  • В инструментах для web-разработчиков в режиме инспектирования средств для людей с ограниченными возможностями
    обеспечена индикация последовательности переходов по элементам страницы и ссылкам при нажатии клавиши «табуляция», что позволяет оценить удобство работы со страницей только с использованием клавиатуры.

  • В панели инспектирования сети добавлена обработка неожиданных крахов панели, обеспечен вывод дополнительных отладочных данных, включая трассировку стека и добавлена кнопка для быстрой отправки разработчикам уведомления о проблемах.

  • Добавлена поддержка систем Apple на базе ARM-чипа M1, на котором основаны новые модели MacBook Air, Mac Mini и MacBook Pro. Тем не менее, при работе на новых системах наблюдаются проблемы при просмотре видео с сервисов Netflix, Hulu, Disney+ и Amazon Video Prime, для устранения которых требуется установка транслятора Rosetta.
  • В версии для Android добавлена кнопка для удаления загруженных файлов, улучшена точность прокрутки и реализован режим Grid view для просмотра открытых вкладок «бок о бок».

Кроме новшеств и исправления ошибок в Firefox 84 устранена 31 уязвимость, из которых 19 помечены как опасные. 7 уязвимостей (собраны под CVE-2020-35113 и CVE-2020-35114) вызваны проблемами работы с памятью, такими как переполнения буферов и обращение к уже освобождённым областям памяти. Потенциально данные проблемы способны привести к выполнению кода злоумышленника при открытии специально оформленных страниц. Также отмечается критическая уязвимость CVE-2020-16042, которая через манипуляцию с типом BigInt позволяет прочитать содержимое неинициализированной памяти.

Также можно отметить, что Firefox 84 станет последним релизом с поддержкой плагина Adobe Flash. Компания Adobe намерена прекратить сопровождение технологии Flash в конце декабря 2020 года. Начиная с выпуска Firеfox 69 возможность запуска плагина Adobe Flash отключена по умолчанию, но была оставлена опция для индивидуального включения Flash для конкретных сайтов. Flash остаётся последним NPAPI-плагином, поддержка которого сохранялась в Firefox после перевода API NPAPI в разряд устаревших. Поддержка Silverlight, Java, Unity, Gnome Shell Integration и NPAPI-плагинов с поддержкой мультимедийных кодеков была прекращена ещё в Firefox 52, выпущенном в 2016 году.