04.07.2022

Firefox 94

Доступен релиз Firefox 94.

  • Ускорена работа браузера:
    • Сокращены накладные расходы при использовании API-интерфейсов performance.mark() и performance.measure() с большими наборами записей о производительности.
    • Изменено подавление отрисовки во время загрузки, благодаря чему значительно ускорена тёплая загрузка в режиме изоляции сайтов.
    • Немного уменьшено потребление памяти скриптами.
    • Ускорено перечисление свойств JavaScript.
    • Улучшено планирование сборки мусора, что принесёт немного очков в тестах, связанных со скоростью загрузки страниц.
    • Снижена нагрузка на процессор при опросе сокетов HTTPS-соединений.
    • Ускорена инициализация хранилища.
    • Ускорен холодный запуск (снижено число операций ввода-выода главного потока).
    • При закрытии инструментов разработчика теперь высвобождается больше памяти.
    • Ускорена загрузка страниц (больший приоритет выделяется загрузке и отрисовке изображений).
  • Добавлено множество монохромных тем.
  • Появилась страница about:unloads (аналог chrome://discards), на которой можно вручную выгрузить вкладки, чтобы не закрывать их, но освободить ресурсы.
  • Менеджер паролей научился работать с мультистраничными формами входа (когда поле ввода пароля появляется после успешного ввода логина).
  • Добавлена возможность работы в виде фонового процесса (основной процесс браузера запускается без создания окна и не завершается при закрытии последней вкладки, а висит в фоне). Для этого следует запускать браузер с параметром MOZ_APP_SILENT_START=1.
  • Добавлено системное дополнение Proxy Failover, которое предотвращает некорректное использование API Proxy криво написанными дополнениями. Необходимость в нём возникла после того, как были обнаружены дополнения, разработчики которых, в погоне за своими целями, случайно заблокировали пользователям доступ к обновлениям браузера и обновлениям списка вредоносных дополнений. Проблемные дополнения уже исключены из каталога дополнений, а Proxy Failover гарантирует, что подобное не повторится вновь.
  • Пользователям предложено дополнение Firefox Multi-Account Containers значительно упрощающее работу со встроенными в браузер контейнерами. Кроме того, оно умеет работать совместно с Mozilla VPN, позволяя пустить трафик определённого контейнера через определённый VPN-сервер.
  • Возвращена пропавшая в прошлом выпуске кнопка очистки поля поиска в закладках.
  • Клавиша Esc теперь снова очищает содержимое панели поиска (это сломалось 15 лет назад).
  • Панель закладок больше не отображается при добавлении новой вкладки, если включена настройка «Никогда не отображать».
  • Большему (по сравнению с прошлым выпуском, числу пользователей будет включена изоляция сайтов (проект Fission). Вкладки, относящиеся к разным доменам, будут размещены в отдельных процессах (по процессу на домен, в отличие от текущей ситуации, когда все вкладки ютятся в 8 процессах). Только так можно гарантированно защититься от атак по сторонним каналам (Meltdown, Spectre), а также дополнительно изолировать содержимое внешних скриптов и фреймов. Платой за это является некоторое общее увеличение потребления памяти, но оно компенсируется плюсами: снижается фрагментация памяти, браузер получает возможность эффективнее возвращать память операционной системе (нет необходимости ждать закрытия всех вкладок, достаточно дождаться закрытия вкладок, относящихся к домену), эффективнее распределяется нагрузка на ядра процессора, повышается стабильность (падение вкладки сайта не утащит за собой вкладки с другими сайтами).
  • Сетевое разделение, дебютировавшее в Firefox 85, теперь затрагивает кеш OSCP (пока лишь в режиме приватного просмотра).
  • Включено кеширование токенов TLS.
  • Исправлена проблема, из-за которой в создаваемые скриншоты не попадали элементы с position: fixed, а также canvas.
  • Исправлена ошибка, из-за которой при отключении настройки «Предлагать в адресной строке ссылки из журнала посещений» переставали предлагаться и открытые вкладки.
  • Исправлена ощибка, из-за которой заблокированные (например, дополнением) запросы достигали DNS-резолвера, если было включено использование DNS-over-HTTPS.
  • Исправлена ошибка, из-за которой воспроизведение медиа-файлов продолжалось, даже если пользователь вернулся на предыдущую страницу.
  • Включено автоопределение изменений состояния сети, связанных с IPv6. По ошибке оно годами было отключено не только в Windows XP, как задумывалось, но во всех версиях Windows.
  • Удалена настройка layout.css.font-visibility.level, ограничивающая число доступных шрифтов. Вместо неё предложены настройки layout.css.font-visibility.standard, layout.css.font-visibility.trackingprotection, layout.css.font-visibility.resistFingerprinting, layout.css.font-visibility.private, позволяющие управлять доступными шрифтами более гибко (теперь можно устанавливать разные значения в зависимости от выбранного режима защиты).
  • Убрано предупреждение, появляющееся при закрытии браузера с несколькими открытыми вкладками. Оно оставлено лишь в Linux и macOS, и только при закрытии браузера сочетанием клавиш Ctrl+Q, поскольку его легко перепутать с другой горячей клавишей — Ctrl+Tab. При закрытии браузера прочими способами (кнопкой в заголовке окна / через пункт меню / сочетанием трёх клавиш) пользователь осознанно хочет закрыть браузер, и к чему раздражать его лишними вопросами. Для тех, кому это предупреждение всё же нужно, сделана специальная настройка. Кроме того, удалена настройка «Предупреждать при выходе из браузера» (работавшая совместно с «Восстанавливать предыдущую сессию при запуске»), поскольку новая настройка полностью её заменяет.
  • Настройка «Восстанавливать предыдущую сессию при запуске» переименована в «Открыть предыдущие окна и вкладки».
  • Отключена по умолчанию поддержка оппортунистического шифрования при использовании HTTP (так называемого «TLS для http://»). В нём больше нет смысла, так как если владелец ресурса хочет настроить защищённое соединение, то настроит HTTPS (получить сертификат для домена сейчас намного проще, чем 7 лет назад), а если ресурс до сих пор работает по HTTP, то его владелец вряд ли заинтересован в поддержке безопасного соединения.
  • macOS: при воспроизведении видео с YouTube и Twitch в полноэкранном режиме Firefox теперь задействует режим энергосбережения. В системах с процессорами M1 исправлено падение при переходе в полноэкранный режим при использовании программного декодирования видео.
  • Windows 11: Добавлена поддержка макетов окон.
  • Windows: при перезапуске браузера (например, после обновления) окна будут размещены на тех же виртуальных рабочих столах, что и до перезапуска.
  • Windows 10+: добавлена настройка clipboard.copyPrivateDataToClipboardCloudOrHistory, позволяющая при копировании текста не сохранять его в истории буфера обмена (если история буфера обмена включена).
  • Доступны установщики в формате MSIX.
  • X11:
    • Задействован EGL-бэкенд вместо применявшегося ранее GLX. Пока поддерживаются лишь свободные драйверы Mesa 21. Поддержка проприетарного драйвера NVIDIA пока отключена, так как он не поддерживает EGL_GENERATE_RESET_ON_VIDEO_MEMORY_PURGE_NV.
    • Теперь используется Xrandr, что позволяет корректно обрабатывать ситуации, когда рабочий стол составлен из нескольких дисплеев (до этого они определялись как один большой).
  • Wayland:
    • Включена поддержка буфера обмена Wayland (который работает в асинхронном режиме).
    • Решена проблема со всплывающими окнами (всплывающие подсказки, диалоги, запросы разрешений, меню).
  • WebRender:
    • Включён на системах с Xwayland.
    • Аппаратный WebRender Включён для встроенной графики Ryzen 5000G.
    • Отключён на системах с DDX драйвером Intel (вместо него следует использовать драйвер modesetting).
  • CSS:
    • Правило @import теперь поддерживает функцию layout().
    • Убран префикс у -moz-fit-content.
  • API:
    • Реализована глобальная функция structuredClone(), позволяющая копировать сложные объекты JavaScript.
    • DOM:
      • Добавлены свойство HTMLElement.enterKeyHint и глобальный атрибут enterkeyhint.
      • Реализована поддержка статического метода HTMLScriptElement.supports() (простой и унифицированный способ проверки того, поддерживает ли браузер определенные типы скриптов, такие как модули JavaScript или классические скрипты.
      • Появилась поддержка свойства ShadowRoot.delegatesFocus (позволяет коду проверить, было ли установлено свойство delegatesFocus при присоединении теневой DOM.
  • Инструменты разработчика:
    • Отладчик теперь показывает все вхождения выбранного токена.
    • Сетевой монитор научился показывать запросы, заблокированные политикой Same Origin.

>>> Примечания к выпуску для разработчиков

>>> Все закрытые в этом выпуске баги

>>> Подробности

Источник.