Расширена сводная страница (Protections Dashboard) с отчётами об эффективности работы механизмов защиты от отслеживания перемещений, проверки компрометации учётных данных и управления паролями. В новом выпуске появилась возможность просмотреть статистику использованию скомпрометированных учётных данных, а также отследить возможные пересечения сохранённых паролей с известными утечками пользовательских баз. Проверка осуществляется через интеграцию с базой данных проекта haveibeenpwned.com, включающей сведения о 9.7 миллиардах учётных записей, похищенных в результате взломов 456 сайтов. Сводка предоставляется на странице "about:protections" или через меню, вызываемое через клик на значок щита в адресной строке (вместо Show Report теперь показывается Protections Dashboard).
В Uninstaller добавлена кнопка "Refresh Firefox", позволяющая сбросить в исходное состояние настройки и удалить все дополнения без потери накопившихся данных. В случае проблем пользователи часто пытаются решить их переустановкой браузера. Кнопка Refresh позволит добиться подобного эффекта не потеряв закладки, историю посещений, сохранённые пароли, Cookie, подключённые словари и данные для автозаполнения форм (при нажатии кнопки создаётся новый профиль и в него переносятся указанные БД). После нажатия Refresh будут потеряны дополнения, темы оформления, сведения о правах доступа, подключённые поисковые движки, локальные DOM-хранилища, сертификаты, изменённые настройки, пользовательские стили (userChrome, userContent).
В показываемое для вкладок контекстное меню добавлены элементы для отмены закрытия нескольких вкладок, а также для закрытия вкладок справа от текущей и закрытия всех вкладок, кроме текущей.
Обеспечено отключение срабатывания хранителя экрана во время осуществления видеозвонков и конференций на базе WebRTC.
На платформе Windows для GPU Intel при любых разрешения экрана включена система композитинга WebRender, написанная на языке Rust и позволяющая добиться существенного увеличения скорости отрисовки и снижения нагрузки на CPU. WebRender выносит на сторону GPU операции отрисовки содержимого страницы, которые реализованы через выполняемые в GPU шейдеры. Ранее WebRender был включён на платформе Windows 10 для GPU Intel при использовании небольших экранных разрешений, а также на системах с APU AMD Raven Ridge, AMD Evergreen и на ноутбуках с видеокартами NVIDIA. В Linux WebRender пока активируется для карт Intel и AMD только в ночных сборках, и не поддерживается для карт NVIDIA. Для принудительного включения в about:config следует активировать настройки "gfx.webrender.all" и "gfx.webrender.enabled" или запустить Firefox с выставленной переменной окружения MOZ_WEBRENDER=1.
До 100% доведена доля пользователей из Великобритании, для которых на странице новой вкладки включено отображение контента, рекомендованного сервисом Pocket. Ранее подобные страницы показывалась только пользователям из США, Канады и Германии. Оплаченные спонсорами блоки показывается только в США и явно помечены как реклама. Связанная с подбором контента персонализация выполняется на стороне клиента и без передачи сведений о пользователе третьим лицам (в браузер загружается весь список рекомендованных ссылок на текущий день, который ранжируется на стороне пользователя, отталкиваясь от данных истории посещений). Для отключения рекомендованного Pocket контента предусмотрена настройка в конфигураторе (Firefox Home Content/Recommended by Pocket) и опция "browser.newtabpage.activity-stream.feeds.topsites" в about:config.
Включены патчи, влияющие на производительность и стабильность аппаратного ускорения декодирования видео при помощи VA-API (поддерживается только в окружениях на базе Wayland).
Повышены требования к системным компонентам Linux. Для запуска Firefox в Linux теперь требуется как минимум Glibc 2.17, libstdc++ 4.8.1 и GTK+ 3.14.
Следуя плану по прекращению поддержки устаревших криптоалгоритмов по умолчанию отключены все наборы шифров TLS на базе DHE (TLS_DHE_*, протокол обмена ключей Диффи — Хеллмана). Для снижения возможного негативного влияния от отключения DHE добавлено два новых набора шифров AES-GCM на базе SHA2.
Отключена поддержка протоколов TLS 1.0 и TLS 1.1. Для обращения к сайтам по защищённому каналу связи сервер должен предоставить поддержку как минимум TLS 1.2. По данным Google в настоящее время около 0.5% загрузок web-страниц продолжает осуществляться с использованием устаревших версий TLS. Отключение произведено в соответствии с рекомендациями IETF (Internet Engineering Task Force). Причиной отказа от поддержки TLS 1.0/1.1 является отсутствие поддержки современных шифров (например ECDHE и AEAD) и требование поддержки старых шифров, надёжность которых на современном этапе развития вычислительной техники поставлена под сомнение (например, требуется поддержка TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA, для проверки целостности и аутентификации используется MD5 и SHA-1). Вернуть возможность работы с устаревшими версиями TLS можно через настройку security.tls.version.enable-deprecated = true или при помощи кнопки на странице с ошибкой, выводимой при заходе на сайт со старым протоколом.
Существенно улучшено качество работы с экранными ридерами для людей с нарушением зрения (решились проблемы с позиционированием курсора, устранены подвисания, ускорена обработка очень больших таблиц и т.п.). Для пользователей с мигренью и эпилепсией сокращены анимационные эффекты, такие как подсвечивание вкладок и расширение поисковой панели.
Для предприятий в групповые политики добавлены новые правила для настройки внешних приложений-обработчиков, отключения режима картинка-в-картинке, обязательности задания мастер-пароля.
В JavaScript-движке SpiderMonkey обновлена подсистема обработки регулярных выражений, которая синхронизирована с реализацией из JavaScript-движка V8, применяемого в браузерах на основе проекта Сhromium. Изменение позволило реализовать поддержку следующих возможностей, связанных с регулярными выражениями:
Именованные группы позволяют связать сопоставленные регулярным выражением части строки с определёнными именами вместо порядковых номеров совпадений (например, вместо "/(\d{4})-(\d{2})-(\d{2})/" можно указать "/(?<year>\d{4})-(?<month>\d{2})-(?<day>\d{2})/" и получить доступ к году не через result[1], а через result.groups.year).
Экранирование классов Unicode-символов добавляет конструкции \p{…} и \P{…}, например, \p{Number} определяет все возможные знаки с изображением цифр (включая символы вида ①), \p{Alphabetic} - буквы (в том числе иероглифы), \p{Math} - математические символы и т.п.
Флаг dotAll приводит к срабатыванию маски "." в том числе для символов перевода строки.
Режим Lookbehind позволяет определить в регулярном выражении, что один шаблон предшествует другому (например, сопоставить сумму в долларах без захвата знака доллара).
Реализованы псевдоклассы CSS :is() и :where() для привязки CSS-правил к набору селекторов. Например, вместо
header p:hover, main p:hover, footer p:hover {...}
можно указать
:is(header, main, footer) p:hover {...}
Включены псевдоклассы CSS :read-only и :read-write для привязки к элементам форм (input или textarea), которые запрещено или разрешено редактировать.
Добавлена поддержка метода Intl.ListFormat() для создания локализованных списков (например, замены "or" на "или", "and" на "и").
const lf = new Intl.ListFormat('en');
lf.format(['Frank', 'Christine', 'Flora']);
// → 'Frank, Christine, and Flora'
// при локали "ru" будет 'Frank, Christine и Flora'
В метод Intl.NumberFormat добавлена поддержка форматирования единиц измерения, валют, научных и компактных обозначений (например, "Intl.NumberFormat('en', {style: 'unit', unit: 'meter-per-second'}");
В консоли для web-разработчиков обеспечено детализированное журналирование ошибок, связанных с Promise, включая сведения об именах, стеках и свойствах, что существенно упрощает разбор ошибок при использовании таких фреймворков, как Angular.
В отладчике JavaScript реализована возможность раскрытия сокращённых имён переменных на основе source-map при использовании точек журналирования (Log points), позволяющих в момент срабатывания метки сбрасывать в web-консоль информацию о номере строки в коде и значениях переменных.
В интерфейсе инспектирования сети добавлены сведения о расширениях и CORS-ограничениях (Cross-Origin Resource Sharing), которые могут блокировать запрос.
Кроме новшеств и исправления ошибок в Firefox 78 устранена серия уязвимостей, из которых несколько помечены как критические, т.е. могут привести к выполнению кода злоумышленника при открытии специально оформленных страниц. В настоящее время информация с подробностями об исправленных проблемах безопасности недоступна, ожидается, что перечень уязвимостей будет опубликован в течение нескольких часов.