Добавлена новая служебная страница "about:certificate" для доступа ко встроенному интерфейсу просмотра сертификатов. В интерфейсе можно вывести список корневых и сохранённых сертификатов, посмотреть детали по каждому сертификату и выполнить экспорт сертификатов (поддержка импорта пока отсутствует).
Добавлена экспериментальная поддержка формата изображений AVIF (AV1 Image Format), в котором задействованы технологии внутрикадрового сжатия из формата кодирования видео AV1 (поддерживается начиная с Firefox 55). Для включения AVIF в about:config предусмотрена опция image.avif.enabled. Контейнер для распространения сжатых данных в AVIF полностью аналогичен HEIF. AVIF поддерживает как изображения в HDR (High Dynamic Range) и цветовом пространстве Wide-gamut, так и в стандартном динамическом диапазоне (SDR).
Расширено число систем для которых включена система композитинга WebRender, написанная на языке Rust и позволяющая добиться существенного увеличения скорости отрисовки и снижения нагрузки на CPU. WebRender выносит на сторону GPU операции отрисовки содержимого страницы, которые реализованы через выполняемые в GPU шейдеры. WebRender теперь включён на оборудовании с Intel Skylake GT1, APU AMD Raven Ridge, AMD Evergreen и на ноутбуках с видеокартами NVIDIA, работающих под управлением Windows 10. Для принудительного включения в about:config следует активировать настройки "gfx.webrender.all" и "gfx.webrender.enabled" или запустить Firefox с выставленной переменной окружения MOZ_WEBRENDER=1.
В адресной строке улучшен разбор поисковых фраз. Слова с точкой теперь оцениваются на связь с актуальными доменами (например, раньше ввод ключей вида "test.log" приводил не к поиску, а к попытке открытия сайта, а ввод "data:url" с пробелами и символом вопроса - к поиску, а не загрузке).
Добавлена поддержка необязательных полномочий, запрос которых в дополнениях не приводит к выводу уведомления о подтверждении новых полномочий при установке или обновлении дополнения, а выводится при непосредственном обращении дополнения к операции, требующей повышенных прав. В число полномочий, которые можно заявить как необязательные, включены management, devtools, browsingData, pkcs11 proxy и session. В качестве мотива добавления необязательных полномочий упоминается желание снизить нагрузку на пользователей при обновлении дополнений и предоставить возможность обновления дополнения без обязательного подтверждения полномочий (ранее, если пользователь не согласен с полномочиями, дополнение не обновлялось).
Для пользователей из Великобритании на странице новой вкладки включено отображение контента, рекомендованного сервисом Pocket. Ранее подобные страницы показывалась только пользователям из США, Канады и Германии. Связанная с подбором контента персонализация выполняется на стороне клиента и без передачи сведений о пользователе третьим лицам (в браузер загружается весь список рекомендованных ссылок на текущий день, который ранжируется на стороне пользователя, отталкиваясь от данных истории посещений). Следует отметить, что оплаченные спонсорами блоки показывается только в США и явно помечены как реклама, в остальных странах рекламные статьи пока не используются. Для отключения рекомендованного Pocket контента предусмотрена настройка в конфигураторе (Firefox Home Content/Recommended by Pocket) и опция "browser.newtabpage.activity-stream.feeds.topsites" в about:config.
В конфигураторе в выпадающий блок методов блокировки Cookie в секции настройки блокировки отслеживания перемещений добавлен новый пункт для динамической изоляции Cookie по отображаемому в адресной строке домену ("Dynamic First Party Isolation", когда свои и сторонние вставки определяются на основе базового домена сайта). В about:config интерфейс включается через настройку "browser.contentblocking.reject-and-isolate-cookies.preferences.ui.enabled" или напрямую "network.cookie.cookieBehavior = 5".
Для упрощения навигации на устройствах с сенсорными экранами увеличены отступы на панели закладок (при открытии новой вкладки новая адресная строка Megabar частично перекрывает панель с закладками и оставляет мало места для нажатия).
Реализованы новые модальные диалоги, привязанные к отдельным вкладкам и не блокирующие весь интерфейс. Для управления включением привязки диалогов в about:config добавлены опции "prompts.defaultModalType", "prompts.modalType.confirmAuth" и "prompts.modalType.insecureFormSubmit" (1 - привязка к контенту, 2 - привязка к вкладке, 3 - привязка к окну).
В about:config добавлена новая настройка middlemouse.openNewWindow, при помощи которой можно отключить использование средней кнопки мыши для открытия ссылки в новой вкладке.
Удалены настройки browser.urlbar.update1, позволяющая вернуть старую реализацию адресной строки, и browser.urlbar.update1.view.stripHttps (поддержка настройки browser.urlbar.trimURLs сохранена).
Из движка Gecko полностью удалена поддержка XUL Grids.
По умолчанию включён автоматический поворот JPEG-изображений на основе данных из Exif.
Удалена настройка "browser.urlbar.oneOffSearches". Для скрытия кнопок альтернативных поисковых систем, появляющихся при начале набора в адресной или поисковой строке, можно выбрать необходимые поисковые системы на странице about:preferences#search.
Текст, не вмещающийся в ограничение "maxlength", больше не обрезается при вставки в поля <input> и <textarea>.
Добавлен метод String.prototype.replaceAll() (String#replaceAll), возвращающий новую строку (исходная строка не меняется), в которой на основании заданного шаблона выполнены замены всех совпадений. Шаблоны могут быть как простыми масками, так и регулярными выражениями.
Обеспечено отображения значения метки, заданной при помощи атрибута "label" в элементе <option>, если содержимое элемента не заполнено.
В IndexedDB реализовано свойство IDBCursor.request.
Добавлена экспериментальная поддержка раскладки Masonry в grid-контейнерах.
В средства для разработчиков добавлена панель для оценки потенциальных проблем с совместимостью с разными браузерами (показывается в каких браузерах поддерживается то или иное свойство CSS, привязанное к выбранному элементу). Включается через настройку devtools.inspector.compatibility.enabled в about:config.
Внесена большая порция улучшений в отладчик JavaScript. Ускорена загрузка и пошаговая отладка, сокращено потребление памяти. Улучшено сопоставление разных представлений кода (source map), позволяющее просматривать переменные из оригинальных исходных текстов при отладке итоговых модулей. При изменении выделенной строки через клик в окне Call Stack и запуска пошагового выполнения (Step over, F10), отладчик будет выполнять код до тех пор, пока не достигнет строки, идущей следом за выделенной. В панель добавлено меню (значок шестерёнки), в котором пока только один пункт для отключения JavaScript. Добавлена возможность установки условных точек останова (watchpoint), приостанавливающих выполнение при изменении или чтении определённых значений (ранее можно было приостановить выполнение при чтении и изменении по отдельности).
В панель интерфейса для инспектирования сетевой активности добавлено меню, в котором собраны функции управления ведением логов (сохранение лога между загрузками сайта, импорт HAR-файла, запись HAR-файла). В панель блокировки запросов ("Request Blocking") добавлено контекстное меню для включения, отключения и удаления блокируемых элементов.
Отключение поддержки FTP отложено до выпуска Firefox 79, но уже добавлена опция для управления активностью FTP (network.ftp.enabled в about:config).
Кроме новшеств и исправления ошибок в Firefox 77 устранено 9 уязвимостей, из которых 7 помечены как опасные: Четыре уязвимости (собраны под CVE-2020-12411 и CVE-2020-12409) вызваны проблемами работы с памятью, такими как переполнения буферов и обращение к уже освобождённым областям памяти. Потенциально данные проблемы способны привести к выполнению кода злоумышленника при открытии специально оформленных страниц.
Уязвимость CVE-2020-12406 вызвана отсутствием проверки типов при удалении объектов NativeTypes и потенциально может использоваться для организации выполнения кода атакующего.
Уязвимость CVE-2020-12405 вызвана обращением к освобождённому блоку памяти (Use-after-free) в SharedWorkerService и скорее всего ограничивается вызовом краха.
Уязвимость CVE-2020-12399 связана с подверженностью библиотеки NSS атаке по сторонним каналам, позволяющей на основе анализа различий во времени вычислений восстановить закрытый ключ для цифровой подписи DSA.