Релиз Firefox 147
Состоялся релиз web-браузера Firefox 147 и сформированы обновления прошлых веток с длительным сроком поддержки — 140.7.0 и 115.32.0. На стадию бета-тестирования переведена ветка Firefox 148, релиз которой намечен на 24 февраля.
Основные новшества в Firefox 147 (1, 2, 3):
Добавлена поддержка спецификации Freedesktop.org XDG Base Directory и возможность использования каталога »~/.config/mozilla» для хранения профилей, дополнений, настроек и внутренних БД. Поддержка размещения данных в старом каталоге »~/.mozilla» сохранена в качестве опции, активируемой при запуске с переменной окружения «MOZ_LEGACY_HOME=1».
Добавлена поддержка механизма «Compression Dictionary Transport» (RFC 9842), позволяющего сократить размер данных, передаваемых между клиентом и сервером, за счёт использования алгоритмов сжатия (Zstandard Content-Encoding: dcz) и Brotli (Content-Encoding: dcb) в сочетании со сжатием типовых конструкций с использованием словарей. Доступно два сценария использования Compression Dictionary Transport — сжатия контента по предварительно переданным сервером словарям и использование ранее переданного контента в качестве словаря для сжатия его новой версии (дельта-сжатие, при котором передаются только изменения по сравнению с имеющейся версией).
Например, при запросе «GET /index.html» сервер может указать о наличии словаря вернув путь к нему в заголовке 'Link: ‹…/dict›; rel=«compression-dictionary»'. При загрузке клиентом словаря »…/dict» сервер выдаст информацию об его применении к HTML-файлам, выставив заголовок 'Use-As-Dictionary: match=»/*html»'. При следующем запросе html-ресурса, например, «GET /index2.html», клиент укажет сведения о наличии у него словаря через заголовок 'Available-Dictionary: хэш_словаря»'. Если сервер имеет на своей стороне словарь с данным хэшем, то вернёт содержимое index2.html, сжатое с использованием данного словаря.
Для дельта-сжатия разных версий JavaSсript-файлов в ответ на запрос «GET /app.v1.js» сервер может выставить заголовок 'Use-As-Dictionary: match=»/app*js»', информирующий что данный возвращённый контент в дальнейшем можно использовать в качестве словаря для путей »/app*js». При последующем запросе файла, соответствующего данной маске, например, «GET /app.v2.js», клиент может передать хэш имеющегося словаря через заголовок «Available-Dictionary:», а сервер вернёт лишь изменения между файлами app.v1.js и app.v2.js.
Добавлена страница about: keyboard для настройки комбинаций клавиш и переопределения имеющихся горячих клавиш, например, для задания более привычных для себя вариантов или исключения конфликтов с другими программами.

Оптимизировано воспроизведение видео с использованием аппаратного ускорения декодирования на GPU AMD. На системах с GPU AMD аппаратно декодированное видео теперь воспроизводится без дополнительного копирования данных (режим zero-copy), как это ранее было реализовано для систем с GPU Intel и NVIDIA.
Для версии 5 обновлена реализация протокола Safe Browsing, применяемого для проверки URL на предмет наличия в списках небезопасных ресурсов (фишинговые сайты, страницы с вредоносным ПО и т.п.), предоставляемых Google. Новая версия протокола позволяет загружать списки блокировки для использования на локальной системе (БД с префиксами хэшей SHA256 проблемных URL), которые теперь применяются в Firefox.
Добавлена опция для автоматического продолжения воспроизведения видео в режиме «картинка в картинке» в случае переключения вкладки.
В режиме усиленной защиты от отслеживания перемещений (ETP, Enhanced Tracking Protection => Strict) включено по умолчанию применение спецификации LNA (Local Network Access) для ограничения обращений к локальной системе (loopback, 127.0.0.0/8) или внутренней сети (192.168.0.0/16, 10.0.0.0/8 и т.п.) при взаимодействии с публичными сайтами. Обращение к внутренним ресурсам используются злоумышленниками для осуществления CSRF-атак на маршрутизаторы, точки доступа, принтеры, корпоративные web-интерфейсы и другие устройства и сервисы, принимающие запросы только из локальной сети. Кроме того, сканирование внутренних ресурсов может использоваться для косвенной идентификации или сбору сведений о локальной сети.
На Linuх-системах с GNOME и композитным сервером Mutter решена проблема с нечётким отображением контента при использовании дробного уровня масштабирования.
На компьютерах Apple с чипами Apple Silicon и ОС macOS включена поддержка API WebGPU.
Выставляемые в HTTP-заголовке Accept-Language приоритеты выбора языка (q-параметры) синхронизированы со значениями, выставляемыми другими браузерами, что решило некоторые проблемы с переносимостью. Например, для второго языка теперь выставляется приоритет q=0.9 вместо q=0.5, а для каждого последующего языка приоритет уменьшается на 0.1.
Библиотека ICU обновлена до версии 78 с поддержкой Unicode 17 и обновлением данных локалей.
В Service Worker-ах разрешено использование JavaScript-модулей ESM (ECMAScript Module), импортируемых и экспортируемых через выражения import и export.
- Добавлена поддержка спецификации CSS Module Scripts, позволяющей использовать систему модулей JavaScript для импорта CSS-ресурсов. Например:
import styles from "./styles.css" with { type: "css" }; В псевдо-элементе »:: marker», позволяющий настроить параметры чисел и точек для перечислений в блоках ‹ul› и ‹ol›, разрешено использовать CSS-свойства counter-* и quotes.
В API CompressionStream и DecompressionStream добавлена поддержка формата сжатия Brotli.
В API View Transitions, применяемом для создания анимационных эффектов при переключении между разными состояниями DOM, добавлено свойство «type», содержащее массив с типами переходов. Также добавлен соответствующий CSS-селектор »: active-view-transition-type» и свойство document.activeViewTransition, возвращающее экземпляр активного для документа объекта ViewTransition.
Включён набор CSS-свойств для управления показом элементов, привязанных к местоположению других элементов (CSS Anchor Positioning), без использования JavaScript, например, для прикрепления к элементам всплывающих окон (popover), появляющихся по аналогии со всплывающими подсказками.
Реализована спецификация «Storage Access Headers», определяющая заголовок запроса «Sec-Fetch-Storage-Access» и заголовок ответа «Activate-Storage-Access» для получения доступа к сторонним Cookie без вызова метода document.requestStorageAccess (). Сервер может запросить доступ к Cookie через заголовок «Activate-Storage-Access» и он будет отправлен клиентом, если ранее пользователь подтверждал предоставление доступа к хранилищу Cookie через API Storage Access.
В CSS-свойство «root-font-relative» добавлена поддержка относительных единиц измерения rcap, rch, rex и ric.
Реализован API Navigation, позволяющий web-приложениям перехватывать операции навигации в окне, инициировать переход и анализировать историю действий с приложением. API предоставляет альтернативу свойствам window.history и window.location, оптимизированную для одностраничных web-приложений.
В инструментах для web-разработчиков в панели с правилами CSS реализована поддержка редактирования и добавления селекторов псевдоэлементов. В интерфейс для просмотра данных в формате JSON добавлена кнопка для импорта ресурса в систему профилирования (Firefox Profiler) для определения информации о его размере. В панелях инспектирования HTML-элементов и анимации обеспечено отображение псевдоэлементов View Transitions. В панели с правилами CSS реализовано отображение правил @position-try, применяемых для управления показом элементов, привязанных к местоположению других элементов (CSS Anchor Positioning).
В версии Firefox для Android добавлена защита от атак по сторонним каналам, таким как Spectre, применяемым для обхода изоляции между сайтами. Ранее подобная защита была доступа только в сборках для десктоп-систем.
Кроме новшеств и исправления ошибок в Firefox 147 устранено 23 уязвимости. 10 уязвимостей вызваны проблемами работы с памятью, такими как переполнения буферов и обращение к уже освобождённым областям памяти. Потенциально данные проблемы способны привести к выполнению кода злоумышленника при открытии специально оформленных страниц. 3 уязвимости позволяют обойти sandnox-изоляцию из-за некорректной проверки границ и целочисленного переполнения в компоненте для работы с графикой.
Источник: http://www.opennet.ru/opennews/art.shtml? num=64601
OpenNet прочитано 317 раз
