Релиз Firefox 93

Состоялся релиз web-браузера Firefox 93. Кроме того, сформировано обновление веток с длительным сроком поддержки – 78.15.0 и 91.2.0. На стадию бета-тестирования переведена ветка Firefox 94, релиз которой намечен на 2 ноября.

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

  • Включена по умолчанию поддержка формата изображений AVIF (AV1 Image Format), в котором задействованы технологии внутрикадрового сжатия из формата кодирования видео AV1. Поддерживаются цветовые пространства с полным и ограниченным диапазоном цветов, а также операции трансформации (поворот и отзеркаливание). Анимация пока не поддерживается. Для настройки соответствия спецификации в about:config предложен параметр “image.avif.compliance_strictness’. Значение HTTP-заголовка ACCEPT изменено по умолчанию на “image/avif,image/webp,*/*”.
  • Переведён в разряд обязательных движок WebRender, который написан на языке Rust и позволяет добиться существенного увеличения скорости отрисовки и снижения нагрузки на CPU за счёт выноса на сторону GPU операций отрисовки содержимого страницы, которые реализованы через выполняемые в GPU шейдеры. Для систем со старыми видеокартами или проблемными графическими драйверами в WebRender применяется режим программной растеризации (gfx.webrender.software=true). Поддержка опции для отключения WebRender (gfx.webrender.force-legacy-layers и MOZ_WEBRENDER=0) прекращена.
  • Улучшена поддержка протокола Wayland. Добавлена прослойка, решающая проблемы с буфером обмена в окружениях на базе протокола Wayland. В состав также включены изменения, позволяющие при использовании Wayland избавиться от мерцания при перемещении окна к краю экрана в многомониторных конфигурациях.
  • Во встроенном PDF-просмотрщике реализована возможность открытия документов с интерактивными XFA-формами, обычно используемыми в электронных бланках различных банков и госучреждений.

  • Включена защита от загрузки файлов, отдаваемых по HTTP без шифрования, но инициированных со страниц, открытых по HTTPS. Подобные загрузки не защищены от подмены в результате контроля над транзитным трафиком, но так как они совершаются переходом со страниц, открытых по HTTPS у пользователя может возникнуть ложное впечатление об их безопасности. При попытке загрузки подобных данных пользователю будет показано предупреждение, позволяющее при желании отменить блокировку.
    Кроме того, теперь запрещена и будет молча блокироваться загрузка файлов из изолированных iframe, в которых явно не указан атрибут allow-downloads.

  • Улучшена реализация механизма SmartBlock, предназначенного для решения проблем на сайтах, возникающих из-за блокировки внешних скриптов в режиме приватного просмотра или при активации усиленной блокировки нежелательного контента (strict). SmartBlock автоматически заменяет применяемые для отслеживания скрипты заглушками, обеспечивающими корректную загрузку сайта. Заглушки подготовлены для некоторых популярных скриптов отслеживания пользователей, занесённых в список Disconnect. В новой версии включена адаптивная блокировка скриптов Google Analytics, скриптов рекламных сетей Google и виджетов сервисов Optimizely, Criteo и Amazon TAM.
  • В режимах приватного просмотра и усиленной блокировки нежелательного контента (strict) включена дополнительная защита HTTP-заголовка “Referer”. В указанных режимах сайтам теперь запрещено включение через HTTP-заголовок Referrer-Policy политик “no-referrer-when-downgrade”, “origin-when-cross-origin” и “unsafe-url”, позволяющих в обход настройкам по умолчанию вернуть передачу сторонним сайтам полного URL в заголовке “Referer”. Напомним, что в Firefox 87 c целью блокирования потенциальных утечек конфиденциальных данных по умолчанию была активирована политика “strict-origin-when-cross-origin”, подразумевающая вырезание путей и параметров из “Referer” при отправке запроса на другие хосты при обращении по HTTPS, передача пустого “Referer” при переходе с HTTPS на HTTP и передачу полного “Referer” для внутренних переходов в рамках одного сайта. Но эффективность изменения была под вопросом, так как сайты через манипуляции с Referrer-Policy могли вернуть старое поведение.
  • На платформе Windows реализована поддержка автоматической выгрузки вкладок из памяти, если уровень свободной памяти в системе достигает критически низких значений. В первую очередь выгружаются вкладки, которые потребляют больше всего памяти и к которым долго не обращался пользователь. При переключении на выгруженную вкладку её содержимое автоматически загружается повторно.
  • Оформление панели со списком загрузок приведено к общему визуальному стилю Firefox.
  • В число алгоритмов, которые можно использовать для организации аутентификации (HTTP Authentication) добавлен SHA-256 (ранее поддерживался только MD5).
  • Отключены по умолчанию TLS-шифры, в которых используется алгоритм 3DES. Например, набор шифров TLS_RSA_WITH_3DES_EDE_CBC_SHA, подвержен атаке Sweet32. Возвращение поддержки 3DES возможно при явном разрешении в настройках старых версий TLS.
  • На платформе macOS решена проблема с потерей сеансов в случае запуска Firefox из примонтированного файла “.dmg”.
  • Реализован интерфейс пользователя для наглядного ввода даты и времени для элемента web-форм .
  • Для элементов с атрибутом aria-label или aria-labelledby реализована роль meter (role=”meter”), позволяющая реализовать индикаторы числовых значений, меняющихся в определённом диапазоне (например, индикаторы заряда аккумулятора).
  • В CSS-свойство font-synthesis добавлена поддержка ключевого слова “small-caps”.
  • Реализован метод Intl.supportedValuesOf(), возвращающий массив поддерживаемых календарей, валют, систем исчисления и единиц измерения.
  • Для классов предоставлена возможность применения статических блоков инициализации для группировки кода, выполняемого один раз при обработке класса: class C { // Блок будет запущен при обработке самого класса static { console.log(“C’s static block”); } }
  • Добавлена поддержка вызова HTMLElement.attachInternals для доступа к дополнительным методам управления формой.
  • В метод ElementInternals добавлен атрибут shadowRoot, позволяющий из собственных элементов обращаться к своему отдельному корню в Shadow DOM, независимо от состояния.
  • В метод createImageBitmap() добавлена поддержка свойств imageOrientation и premultiplyAlpha.
  • Добавлена глобальная функция reportError(), позволяющая скриптам выводить ошибки на консоль, эмулируя возникновение неперехватываемого исключения.
  • Улучшения в версии для платформы Android:
    • При запуске на планшетах в панель добавлены кнопки “вперёд”, “назад” и “перезагрузка страницы”.
    • Включено по умолчанию автоматическое заполнение логинов и паролей в web-формах.
    • Предоставлена возможность использования Firefox в качестве менеджера паролей для заполнения логинов и паролей в других приложениях (включается через “Settings”> “Logins and passwords”> “Autofill in other apps”).
    • Добавлена форма “Settings”> “Logins and passwords”> “Saved Logins”> “Add Login” для ручного добавления учётных данных в менеджер паролей.
    • Добавлена страница “Settings”> “Data collection”> “Studies and switch off”, позволяющая отказаться от участия в тестировании экспериментальных возможностей.

Кроме новшеств и исправления ошибок в Firefox 93 устранено 13 уязвимостей, из которых 10 помечены как опасные. 9 уязвимостей (собраны под CVE-2021-38500, CVE-2021-38501 и CVE-2021-38499) вызваны проблемами работы с памятью, такими как переполнения буферов и обращение к уже освобождённым областям памяти. Потенциально данные проблемы способны привести к выполнению кода злоумышленника при открытии специально оформленных страниц.

В бета-выпуске Firefox 93 отмечается реализация новой служебной страницы “about:unloads” на которой пользователь для сокращения потребления памяти может принудительно выгрузить определённые вкладки, не закрывая их (содержимое будет перезагружено при переходе на вкладку).

Release. Ссылка here.