Доступен Firefox 85.
- Графическая подсистема:
- WebRender включён на устройствах, использующих связку «GNOME+Wayland+видеокарта Intel/AMD» (кроме 4K-дисплеев, поддержка которых ожидается в Firefox 86). Кроме того, WebRender включён на устройствах, использующих графику Iris Pro Graphics P580 (мобильные Xeon E3 v5), о которых разработчики забыли, а также на устройствах с драйверами Intel HD Graphics версии 23.20.16.4973 (этот конкретный драйвер находился в чёрном списке). На устройствах с драйвером AMD 8.56.1.15/16 WebRender отключён.
- На системах, использующих Wayland, налажено аппаратное ускорение видео в форматах VP8/VP9.
- Отключён механизм Advanced Layers. Теперь эту работу выполняет WebRender.
- Временно отключено ускорение Canvas 2D средствами графического процессора, вызывающее артефакты на некоторых ресурсах.
- Включено сетевое разделение. Отныне кэш (HTTP, изображения, фавиконы, пул соединений, CSS, DNS, HTTP-авторизация, Alt-Svc, спекулятивные предварительные соединения, шрифты, HSTS, OCSP, теги Prefetch и Preconnect, CORS и прочее) хранится отдельно для каждого домена. Это серьёзно затруднит отслеживание пользователей со стороны крупных CDN и рекламных сетей, которые могут анализировать наличие определённых файлов в кэше браузера и делать выводы об истории посещений. Сетевое разделение впервые появилось в Safari восемь лет назад (началось с HTTP-кэша, затем Apple постепенно добавляла другие категории), а в конце 2020 года появилось в Chrome. Неизбежной платой станет некоторое увеличение трафика (каждый ресурс будет загружать с CDN контент, даже если этот контент уже был загружен другим ресурсом) и времени загрузки, но по оценкам Google эта величина крайне мала (4% трафика, замедление загрузки на 0.09-0.75% для большинства сайтов, 1.3% в худших случаях). К сожалению, в современном вебе нет иного способа для борьбы с суперкуками (дополнения наподобие Decentraleyes не могут служить альтернативой, так как охватывают лишь незначительную часть перечисленного выше содержимого кэша).
- Появилась возможность показывать панель закладок только на странице новой вкладки (Вид → Панели инструментов → Панель закладок → Только в новой вкладке), а не на всех страницах. Кроме того, Firefox научился запоминать папку для добавляемых закладок, а на панели закладок теперь отображается папка «Прочие закладки» (
browser.toolbars.bookmarks.showOtherBookmarks
). После импорта закладок из других браузеров панель закладок будет включена автоматически во всех вкладках. Добавлена телеметрия для оценки роста числа взаимодействий с панелью закладок, роста числа новых пользователей, импортирующих закладки, а также пользователей, отключающих панель закладок вовсе. - Дальнейшие улучшения адресной строки:
- В диалог настройки поисковых движков добавлены «Закладки», «Журнал» и «Открытые вкладки», что позволяет назначать им короткие имена.
- Любой из поисковых движков теперь можно скрыть из адресной строки.
- Добавлена настройка, позволяющая не предлагать поисковые движки в результатах поиска (например, начиная с Firefox 83, при вводе «bing» первым делом предлагается переключиться на поисковик Bing).
- Появилась выборочная печать страниц (например, не 1-5, а 1-3,5), а также печать нескольких страниц на одном листе. Функции доступны лишь в новом диалоговом окне предпросмотра печати, которое включается настройкой
print.tab_modal.enabled
. - В менеджер сохранённых паролей добавлена очистка всех сохранённых паролей (до этого их приходилось удалять по одному).
- Добавлена возможность выбора домашней страницы и страницы новой вкладки, даже если установлено дополнение, меняющее эти страницы. Раньше у пользователя был лишь выбор между «смириться» и «отключить дополнение».
- Стало возможным отображение PID в подсказках вкладок (
browser.tabs.tooltipsShowPid
). - Максимально возможный масштаб страницы увеличен с 300% до 500%, чтобы не отставать от других браузеров.
- Автодополнение адреса (когда пользователь вводит слово в адресную строку и нажимает Ctrl+Enter) теперь добавляет префикс
https://
, а неhttp://
. - Обновлён логотип поисковика Bing. Сам поисковик переименован в Microsoft Bing.
- Во избежание падений максимально возможная длина каждой ссылки в истории ограничена 2000 символами.
- Максимально допустимый размер локального хранилища (LocalStorage), который может использовать конкретный веб-ресурс, увеличен с 5 до 25 мегабайт. В Firefox 84 были внесены изменения в алгоритм подсчёта объёма хранимых данных, в результате чего выяснилось, что некоторым веб-сайтам перестало хватать 5 мегабайт. Поскольку разработчики планируют в скором будущем полностью переписать код, ответственный за LocalStorage (LocalStorage NextGen), решено пока что просто увеличить предел, а не тратить время на исправление кода, которому осталось жить совсем немного.
- Исправлена невозможность восстановить несколько закрытых вкладок, если они были закрыты не пользователем, а дополнением (восстанавливалась лишь последняя из закрытых вкладок, а не все).
- Исправлено зависание при загрузке объёмных файлов с файлообменника Mega.
- Устранена проблема, из-за которой Firefox, установленный в виде пакета Flatpak, не мог открыть адрес
localhost:порт
. - Эвристика, пытающаяся угадать корректное расширение файла по отдаваемому сервером MIME-типу, теперь делает исключения для форматов zip, json и xml (это создавало проблемы при загрузке файлов типа .rwp и .t5script, по сути являющихся zip-архивами, но имеющими другое расширение). Эвристика необходима, так как существует много неправильно настроенных серверов, которые отдают файлы с правильным MIME-типом, но некорректным расширением, а также не меньшее число серверов, которые отдают файлы с корректным расширением, но неверным MIME-типом (например, в случае с .rwp (сжатый каталог Train Simulator 2021) сервер не должен был сигнализировать браузеру о том, что это ZIP-архив). Пользователи, в свою очередь, не желают вникать в то, что виноват некорректно настроенный сервер, а не браузер, поэтому, например, Chrome вынужден держать в кодовой базе громадный список MIME-типов, чтобы разруливать такие ситуации.
- Исправлена ошибка, приводящая к бесконечному уведомлению о том, что в локальной сети обнаружен Captive Portal. Посещение пользователем домена firefox.com приводило к получению информации о HSTS, что заставляло браузер отныне использовать для соединения с этим доменом протокол HTTPS. Это в свою очередь ломало механизм определения Captive Portal (который проверяет доступность адреса http://detectportal.firefox.com по HTTP, т.к. HTTPS-запросы бесполезны при реальном наличии Captive Portal).
- Исправлена невозможность соединения с доменами в локальной сети по именам NetBIOS.
- Полностью удалена поддержка Flash. Вместо элементов <object> и <embed>, имеющих тип
x-shockwave-flash
илиx-test
, будет отображаться прозрачная область. - Прекращена поддержка Encrypted SNI (eSNI), применявшегося для шифрования поля SNI (содержит имя хоста в заголовках HTTPS-пакетов, используется для организации работы нескольких HTTPS-ресурсов на одном IP-адреса, а также используется провайдерами для выборочной фильтрации трафика и анализа посещаемых ресурсов). Практика показала, что это не обеспечивает должной конфиденциальности, так как имя домена фигурирует, например, в параметрах PSK (Pre-Shared Key) при возобновлении сеанса, а также в некоторых иных полях. Создавать аналоги eSNI для каждого из подобных полей представляется нецелесообразным. На замену eSNI предложен стандарт ECH (Encrypted Client Hello), в котором шифруются не отдельные поля, а сообщение ClientHello целиком (за его включение отвечают настройки
network.dns.echconfig.enabled
иnetwork.dns.use_https_rr_as_altsvc
). - Прекращена поддержка поисковых движков, установленных в каталог distribution или в каталог языкового пакета. Таких движков не должно было остаться после Firefox 78 (а если они остались, то это явная ошибка и их не следует использовать).
- Дополнения:
- Значение настройки «режим только HTTPS» теперь доступно для считывания дополнениями, чтобы дополнения наподобие HTTPS Everywhere могли отключать часть своих функций, которые конфликтуют с этим режимом.
- Дополнениям теперь доступен API browsingData (благодаря чему дополнения могут очищать данные, сохранённые в браузере).
- HTML:
- Включена поддержка <link rel=«preload»> (подгрузка контента ещё до того, как он будет явно запрошен браузером).
- Отключена поддержка элемента <menuitem>.
- CSS:
- Включена поддержка псевдокласса :focus-visible.
- Включена поддержка значения
pinch-zoom
у свойства touch-action.
- JavaScript: свойство
collation
теперь может передаваться в качестве опции конструктору Intl.Collator() (вместоlet pinyin = new Intl.Collator(["zh-u-co-pinyin"]);
можно написатьlet pinyin = new Intl.Collator("zh", {collator: "pinyin"});
). - Инструменты разработчика:
- В редакторе кода Консоли появилась кнопка для форматирования JS-выражений.
- Инспектор научился включать и отключать псевдокласс :focus-visible для выбранного элемента (в дополнение к уже поддерживаемым псевдоклассам :hover, :active, :focus, :focus-within и :visited).
>>> Примечания к выпуску для разработчиков
>>> Подробности