Релиз Firefox 77

Состоялся релиз web-браузера Firefox 77, а также мобильной версии Firefox 68.9 для платформы Android. Кроме того, сформировано обновление ветки с длительным сроком поддержки 68.9.0. В ближайшее время на стадию бета-тестирования перейдёт ветка Firefox 78, релиз которой намечен на 30 июня.

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

  • Добавлена новая служебная страница «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» с пробелами и символом вопроса — к поиску, а не загрузке).
  • Включён по умолчанию режим очистки старых Cookie и данных сайта при обращении к сайтам с кодом отслеживания перемещений, с которыми пользователь интерактивно не взаимодействовал. Режим нацелен на борьбу с отслеживанием через редиректы.
  • Добавлена поддержка необязательных полномочий, запрос которых в дополнениях не приводит к выводу уведомления о подтверждении новых полномочий при установке или обновлении дополнения, а выводится при непосредственном обращении дополнения к операции, требующей повышенных прав. В число полномочий, которые можно заявить как необязательные, включены management, devtools, browsingData, pkcs11 proxy и session. В качестве мотива добавления необязательных полномочий упоминается желание снизить нагрузку на пользователей при обновлении дополнений и предоставить возможность обновления дополнения без обязательного подтверждения полномочий (ранее, если пользователь не согласен с полномочиями, дополнение не обновлялось).
  • Для пользователей из Великобритании на странице новой вкладки включено отображение контента, рекомендованного сервисом Pocket. Ранее подобные страницы показывалась только пользователям из США, Канады и Германии. Связанная с подбором контента персонализация выполняется на стороне клиента и без передачи сведений о пользователе третьим лицам (в браузер загружается весь список рекомендованных ссылок на текущий день, который ранжируется на стороне пользователя, отталкиваясь от данных истории посещений). Следует отметить, что оплаченные спонсорами блоки показывается только в США и явно помечены как реклама, в остальных странах рекламные статьи пока не используются. Для отключения рекомендованного Pocket контента предусмотрена настройка в конфигураторе (Firefox Home Content/Recommended by Pocket) и опция «browser.newtabpage.activity-stream.feeds.topsites» в about:config.
  • В движке Gecko включён по умолчанию режим полного управления цветом (gfx.color_management.mode = 1), обеспечивающий цветокоррекцию с использованием цветовых профилей не только для изображений в тегах img, но и для CSS.
  • В конфигураторе в выпадающий блок методов блокировки Cookie в секции настройки блокировки отслеживания перемещений добавлен новый пункт для динамической изоляции Cookie по отображаемому в адресной строке домену («Dynamic First Party Isolation«, когда свои и сторонние вставки определяются на основе базового домена сайта).
  • Для упрощения навигации на устройствах с сенсорными экранами увеличены отступы на панели закладок (при открытии новой вкладки новая адресная строка Megabar частично перекрывает панель с закладками и оставляет мало места для нажатия).
  • Реализованы новые модальные диалоги аутентификации и предупреждения небезопасной отправки формы, привязанные к отдельным вкладкам и не блокирующие весь интерфейс. Для управления включением привязки диалогов в about:config добавлены опции «prompts.defaultModalType», «prompts.modalType.confirmAuth» и «prompts.modalType.insecureFormSubmit» (1 — привязка к контенту, 2 — привязка к вкладке, 3 — привязка к окну).
  • В about:config добавлена новая настройка middlemouse.openNewWindow, при помощи которой можно отключить использование средней кнопки мыши для открытия ссылки в новой вкладке.
  • Удалена настройка 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(), возвращающий новую строку (исходная строка не меняется), в которой на основании заданного шаблона выполнены замены всех совпадений. Шаблоны могут быть как простыми масками, так и регулярными выражениями.
  • Добавлена экспериментальная поддержка раскладки Masonry в grid-контейнерах.
  • В средства для разработчиков добавлена панель для оценки потенциальных проблем с совместимостью с разными браузерами (показывается в каких браузерах поддерживается то или иное свойство CSS, привязанное к выбранному элементу). Включается через настройку devtools.inspector.compatibility.enabled в about:config.
  • В отладчике JavaScript ускорена загрузка и пошаговая отладка, сокращено потребление памяти. Улучшено сопоставление разных представлений кода (source map), позволяющее просматривать переменные из оригинальных исходных текстов при отладке итоговых модулей.
  • Отключение поддержки 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.

Источник: http://www.opennet.ru/opennews/art.shtml?num=53072