LINUX.ORG.RU

Firefox 94

 ,


0

2

Доступен релиз 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, теперь затрагивает кеш OCSP (пока лишь в режиме приватного просмотра).
  • Включено кеширование токенов 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.

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

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

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

Появилась страница about:unloads

Не хватает возможности выбирать нужную вкладку, а не в порядке очереди. А ещё лучше, сразу бы контекстным меню на конкретной вкладке так делать.

th3m3 ★★★★★ ()

У лисы есть возможность хранить историю вечно и поиск по ней быстрый. В ungoogled-chromium, даже если включить галочку, всё равно история чистится. И выглядит хуже, чем лиса.

Есть рецепт, как зарезать всю телеметрию? Когда-то давно видел огромный список внутренних настроек, которые надо потыкать.

InterVi ★★★ ()

Появилась страница about:unloads

Звучит годно.

Добавлена возможность работы в виде фонового процесса

Опять у хрома слизали хрень?

Radjah ★★★★★ ()

Появилась страница about:unloads (аналог chrome://discards), на которой можно вручную выгрузить вкладки, чтобы не закрывать их, но освободить ресурсы.

Сраный веб катится в сраное говно.

anonymous ()

Тиринг при прокрутке

Кто-нибудь из использующих легковесные некомпозитные оконные менеджеры в качестве ДЕ (типа Openbox и т. п.) ответте: наблюдаете ли вы тиринг при прокрутке веб-страниц в последних версиях Firefox? Как с этим бороться? Есть ли решение?

gammaray ()
Ответ на: комментарий от MozillaFirefox

После применения этих настроек он стал виснуть, выжирая 1 ядро, крашится, висеть в фоне после закрытия. Проблема не решилась: при старте и при закрытии окна он по прежнему стучал на облока cloudflare и ещё куда-то.

InterVi ★★★ ()
Ответ на: комментарий от Windows

зачем нужны 180 вкладок?

Много читаю параллельно, сёрфаю гитхаб, плюс всякая отладка клиентских сайтиков, плюс много закреп-табов. Короче просто юзаю браузер, ничего особенного.

T3M4 ()
Ответ на: комментарий от sudopacman

Если нет композитинга, то вполне закономерно, что будет тиринг.

Раньше для композитинга в браузере использовался OpenGL и всё работало прекрасно. После 92-й версии все методы композитинга убрали, оставив лишь WebRender. При использовании некомпозитного оконного менеджера теперь вместо OpenGL используется WebRender (Software) и появляется тиринг при прокрутке.

Я не хочу с вами дискутировать. Мне просто интересно услышать ответы людей, столкнувшихся с той же проблемой, что и я.

gammaray ()
Ответ на: комментарий от InterVi

Вероятно, нужно применять не все, а выборочно.

Но это самый полный и актуальный из известных мне списков.

Также можете посмотреть в сторону LibreWolf, там некоторые вещи отключают ещё на этапе сборки.

MozillaFirefox ★★★★★ ()
Последнее исправление: MozillaFirefox (всего исправлений: 1)

При первом запуске после установки обновления запускается новый интерфейс для выбора шести сезонных цветовых тем, для которых предложено три уровня применения…

Куда ж без скучных обоев, это ж главное?! Теперь еще и при обновлениях будет мозг выносить 18-тью вопросами? :)

bohm ★★★★★ ()
Ответ на: комментарий от T3M4

Драная лиса все более и более прожорлива до памяти, сейчас открыто всего лишь 180 вклодок в TreeStyleTab - расход 12Gb из 32Gb на моем писюке. И чем дальше, тем больше аппетит у броузера.

Вообще-то это веб развивается и для того, чтобы следовать стандартам, приходится запиливать поддержку этих стандартов, что и приводит к увеличенному потреблению памяти.

vilisvir ★★★★★ ()
Ответ на: комментарий от sv_warvar

Нет, предупреждение полезное и надеюсь я не забуду его назад включить когда эта версия (а точнее какая-то следующая -esr) дойдёт до дебиана. Хотя крестика у окон (как и вообще заголовочной панели) в моём wm нет (а так, случайно по нему кликнуть не такая уж сложность), но зато хоткей закрытия окна (Super+Esc) похож на переключение (Super+Tab). Весь остальной софт, где что-то может потеряться при закрытии, предупреждает.

firkax ()
Ответ на: комментарий от InterVi

Есть рецепт, как зарезать всю телеметрию? Когда-то давно видел огромный список внутренних настроек, которые надо потыкать.

Я сделал проще: весь трафик через локальный прокси, и нужные домены (в основном мозилла и гугл) внёс в чёрный список. А внутренние настройки могут меняться с каждой версией. Домены, впрочем, тоже, но их легче пересчитать по логам того же прокси.

firkax ()
Ответ на: комментарий от Windows

> сейчас открыто всего лишь 180 вклодок... расход 12Gb из 32Gb
По-моему это отличный результат и сложно представить, зачем нужны 180 вкладок?.. :)

У меня когда-то был расход меньше 4гб на аналогичное. Потом перестал открывать по столько вкладок, потому что стабильность работы браузера пошла вниз, аптайм месяцами уже не поддерживается, полагаться на сессию браузера как на хранитель нужных урлов расхотелось.

firkax ()
Ответ на: комментарий от gammaray

Единственный известный способ борьбы с тирингом - буферизация в композитном оконном менеджере. Соответственно так и надо с этим бороться. Композитор для openbox это xcompmr или как он там сейчас называется.

kirill_rrr ★★★★★ ()
Ответ на: комментарий от gammaray

2D ускорение прямоугольников на экране выпилили из иксов сто лет назад. Теперь только через 3D.

Как-то может это работать с Glamor, но это не точно.

Shadow ★★★★★ ()
Последнее исправление: Shadow (всего исправлений: 2)
Ответ на: комментарий от sudopacman

Не закономерно.
На «матрасе» Xfree86 без тиринга всё гоняет, с буферизацией и видеооверлеем. Но этого больше нет.

Shadow ★★★★★ ()
Последнее исправление: Shadow (всего исправлений: 1)
Ответ на: комментарий от gammaray

При использовании некомпозитного оконного менеджера теперь вместо OpenGL используется WebRender (Software) и появляется тиринг при прокрутке.

Если это зависит от наличия композитного менеджера, то что мешает поставить compton (или что там вместо него сейчас?)?

sudopacman ★★★★★ ()
Ответ на: комментарий от bohm

Куда ж без скучных обоев, это ж главное?!

Хорошее сравнение. Похоже, они сделаны для манипуляции пользователями, которые не знают о темах: там написана какая-то пресс-релизная ерунда про моду, и через пару выпусков останется то, что выбрал, а при новой установке выбрать то же будет нельзя.

Теперь еще и при обновлениях будет мозг выносить 18-тью вопросами? :)

Нет, просто 6 цветных кружочков и три варианта.

AVRS ★★ ()
Ответ на: комментарий от T3M4

С Tab Stash можно настроить количество постоянно загруженных вкладок. Но осторожно, профиль лучше забэкапить перед сокрытием сотен вкладок, а то оно может занять столько времени, что будет непонятно, что́ получилось.

AVRS ★★ ()
Ответ на: комментарий от sudopacman

Если это зависит от наличия композитного менеджера, то что мешает поставить compton (или что там вместо него сейчас?)?

picom

Неохота просто этой темой систему нагружать только лишь ради одного браузера.

gammaray ()
Ответ на: комментарий от AVRS

Tab Stash

Я со временем пришел к использованию вместе с TreeStyleTab сессионного менеджера Tab Session Manager, что позволило хоть как-то сократить количество вкладок и сгруппировать работу, учебу, разные поиски, форумы и гитхабчик в наборы сессий, которые позволяют не держать слишком уж много открытого. Связка работает очень стабильно, за долгое время падений и отказов я не наблюдал ни разу. Как побочный профит - переодически rsync’аю некоторые json наборы сессий на ноут, что бы была возможность продолжить в мобильном варианте или возможность сохранить «на потом» сессию активного гуглежа какого-то нерешенного вопроса, что бы потом вернуться к ней снова.

T3M4 ()
Ответ на: комментарий от sudopacman

picom

Ещё момент такой: лишний компонент в системе — лишний гемор.

Во-первых нужно саму софтину изучить (настройка и т. п.). Потом он может заглючить в какой-то момент, нужно будет с этим разбираться. При этом документации для него нет нормальной. По-моему даже в его man’е man от той программы, от который он был форкнут (!). То есть, какие-то опции, указанные в man’е не будут в нём просто работать.

Одним словом, нет у меня доверия к этому picom’у. Ладно бы ещё, куча других програм на нём висела. Можно было бы ещё да — заморочиться. Но ещё раз, ради одной софтины не вижу просто смысла.

gammaray ()
Ответ на: комментарий от firkax

полагаться на сессию браузера как на хранитель нужных урлов расхотелось.

Сейчас это решается сессионным менеджером с опцией автосохранения сессий

T3M4 ()

Контейнер в ФФ вообще ТОРТ!!!

Юзкейс - у нас примерно 8 акаунтов АВС разніх (под разніе енв) и они без проблем живут рядом во вкладках.

А с TreeStyleTab вообще такая нямка, что ппц.

Long Live FireFox!

PunkoIvan ★★★★ ()
Ответ на: комментарий от kirill_rrr

Но мозг может держать в голове только 6 объектов одновременно… Ну ладно, пусть 6 задач по 6 вкладок…

Я не использую все 180 одновременно. Просто за десятичасовой рабочий день и вечер могу произвольно обращаться к любым вкладкам или группам вкладок из этого количества и мне нужен моментальный доступ, а не доставать и загружать страницу из закладок, авторизоваться и и.д. Одних только панелей управления VDSками от разных провайдеров и разными хостингами штук 40 вкладок наберётся, плюс админки сайтов, это ещё столько же. Плюс чтение, документация, гитхаб и и.д, 180 это количество уже после того, как я оптимизировал количество одновременно открытых использованием сессионного менеджера.

T3M4 ()
Ответ на: комментарий от kirill_rrr

Композитор для openbox это xcompmr или как он там сейчас называется.

xcompmgr. Только что нашёл и попробовал. Запускаю xcompmgr -c. Тени у окон появились, но тиринг в FF по-прежнему есть. За наводку, впрочем, всё равно сенькс. В целях, так сказать, повышения образованности.

dimgel ★★★★ ()

Задействован EGL-бэкенд вместо применявшегося ранее GLX

Круто, конечно, путь к этому моменту занял всего год, а не пять. Но EGL в комбинации с WebRender это просто глитч-дром. Иногда части вспомогательных окон просто не отрисовываются, иногда там мелькает визуальный мусор, а потом они отрисовываются. Причём глитчи нестабильны. Такие баги чинить — сущий ад. Никогда не узнаешь, починился он или нет.

Репортить нет смысла: такие баги уже заводили в багтрекер по несколько раз. Некоторые закрывали сами авторы баг-репортов. Мол, у них всё починилось, давно не видели проблем. Ага. Не видели они проблем.

i-rinat ★★★★★ ()
Ответ на: комментарий от i-rinat

Ну да, в описании к 1730671 прямо так и сказано, мол, мы давненько не видели в живую блокер, надеемся, что он сдох, так что поехали в релиз ¯\_(ツ)_/¯

Но выбора-то нет - WebRender теперь с нами навсегда, а старый код (layers.*) в этом выпуске поехал на помойку:

pref("layers.acceleration.draw-fps.print-histogram", false);
pref("layers.acceleration.draw-fps.write-to-file", false);
pref("layers.bench.enabled", false);
pref("layers.bufferrotation.enabled", true);
pref("layers.componentalpha.enabled", true);
pref("layers.compositing-tiles.height", 1024);
pref("layers.compositing-tiles.width", 1024);
pref("layers.draw-bigimage-borders", false);
pref("layers.draw-borders", false);
pref("layers.draw-layer-info", false);
pref("layers.draw-tile-borders", false);
pref("layers.dump", false);
pref("layers.dump-client-layers", false);
pref("layers.dump-host-layers", false);
pref("layers.dump-texture", false);
pref("layers.effect.contrast", "0.0");
pref("layers.effect.grayscale", false);
pref("layers.effect.invert", false);
pref("layers.flash-borders", false);
pref("layers.geometry.basic.enabled", true);
pref("layers.geometry.d3d11.enabled", true);
pref("layers.geometry.opengl.enabled", true);
pref("layers.low-precision-opacity", "1.0");
pref("layers.max-active", -1);
pref("layers.orientation.sync.timeout", 0);
pref("layers.single-tile.enabled", true);
pref("layers.tile-initial-pool-size", 50);
pref("layers.tile-pool-clear-timeout", 5000);
pref("layers.tile-pool-shrink-timeout", 50);
pref("layers.tile-pool-unused-size", 10);
pref("layers.tiles.edge-padding", false);
pref("layers.tiles.fade-in.duration-ms", 250);
pref("layers.tiles.fade-in.enabled", false);
pref("layers.tiles.retain-back-buffer", true);
pref("layers.transaction.warning-ms", 200);
pref("layers.uniformity-info", false);
pref("layers.use-image-offscreen-surfaces", true);

всё это добро больше не с нами

MozillaFirefox ★★★★★ ()
Последнее исправление: MozillaFirefox (всего исправлений: 4)

Поддержка проприетарного драйвера NVIDIA пока отключена, так как он не поддерживает EGL_GENERATE_RESET_ON_VIDEO_MEMORY_PURGE_NV.

На опеннете подсказали, что в 490-й драйвер уже завезли нужное расширение, так что включат, когда этот драйвер подтянется в репозитории основных дистрибутивов.

MozillaFirefox ★★★★★ ()
Ответ на: комментарий от MozillaFirefox

так что поехали в релиз

Вот этот момент меня сильно удивил. Что просто так взяли и продавили в релиз. С accelerated layers тянули очень долго, несмотря на то, что он работал. Как-то даже включали, но потом быстро выключили. Где-то что-то вылезло, и сразу решение откатили. А тут бац! WebRender всем, бац! Basic вообще удалим, бац! включаем EGL. Ну и что, что у пользователи Nightly писали, что у них отрисовка глючит?

И включили, несмотря на то, что в привязках WebRender к остальным частям Firefox не хватало части кода. Если какой-то компонент пошлёт X Pixmap, то контент-процесс весело упадёт. И это можно было триггернуть настройкой из about:config. Но сейчас эта настройка тоже сломана, поэтому два бага накладываются друг на друга, и всё хорошо! Всем радоваться.

i-rinat ★★★★★ ()
Ответ на: комментарий от sudopacman

Меня с год назад как раз на стандартном композитном окружении на Firefox встретил тиринг при прокрутке. Приходилось включать экспериментальную опцию (accelerated layers что-ли).

Сейчас такого нет.

fornlr ★★★★★ ()