Релиз Firefox 122

Состоялся релиз web-браузера Firefox 122 и сформировано обновление ветки с длительным сроком поддержки — 115.7.0. На стадию бета-тестирования переведена ветка Firefox 123, релиз которой намечен на 20 февраля.

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

  • Расширены возможности, связанные с выводом рекомендаций при вводе в адресной строке. Для некоторых поисковых систем реализована возможности показа в рекомендациях изображений и текстовых описаний. При поиске информации, связанной с web-разработкой, обеспечен вывод среди рекомендаций ссылок на документацию в MDN (Mozilla Developer Network).

  • Началось формирование готовых deb-пакетов для Ubuntu, Debian и Linux Mint. Формируемые пакеты совместимы с традиционными сборками Firefox для Debian и Ubuntu, предлагаемыми для загрузки в архивах «.tar.bz2».
  • Улучшено качестве перевода страниц при помощи встроенной системы машинного перевода. Решены проблемы с пропаданием переведённой страницы и нарушением работы интерактивных виджетов.
  • Для повышения защиты от XSS-атак и для улучшения переносимости между браузерами в SVGUseElement прекращена поддержка URL «data:».
  • Добавлена защита от утечки информации о посещённых ранее ссылках через анализ
    цвета пикселей при помощи фильтров, использующих параметр currentColor. Вывод подобных фильтров теперь невозможно будет прочитать из canvas в SVG, так как они могут использоваться для определения цвета, выставленного через селектор «:visited».

  • В сборках для macOS добавлена поддержка технологии Passkey (использование только в iCloud Keychain), которая позволяет пользователю проходить аутентификацию без паролей с использованием биометрических идентификаторов, таких как отпечаток пальца или распознавание лица.
  • Обеспечена обработка токена автодополения «webauthn«. В диалогах автозаполнения форм реализован вывод интерфейса для подключения при помощи Passkey.
  • В режиме приватного просмотра скриптам предоставлена возможность сохранения данных через API Cache с целью унификации поведения в приватном и обычном режимах (имевшуюся разницу можно было использовать для определения работы пользователя в приватном режиме).
  • В WebRTC включена по умолчанию поддержка механизма упреждающей коррекции ошибок ULPFEC (Uneven Level Protection Forward Error Correction), позволяющего восстанавливать повреждённые или потерянные пакеты. Применение ULPFEC даёт возможность улучшить качество видео для пользователей со сбойными каналами связи.

  • Разрешено использование элемента ‹hr› внутри элемента ‹select› для вставки разделителей в списки, формируемые на базе элемента ‹select›.
  • Добавлена возможность использования метода showPicker с элементами ‹select› для программного вызова предоставляемой браузером реализации выпадающего меню.
  • К соответствию стандарту Unicode приведены правила разрыва строк при отображении текста на web-страницах. Для азиатских языков, таких как японский и китайский, реализована поддержка выделения целых слов двойным щелчком мыши в тексте.
  • Включено CSS-свойство offset-position, задающее начальную позицию элемента и обычно применяемое вместе со свойством offset-path для определения траектории движения объектов анимации.
  • В CSS-свойство offset-path добавлена поддержка функции ray(), определяющей сегмент линии, которому следует анимированный элемент, а также значений basic-shape и coord-box.
  • В CSS-свойства clip-path и offset-path добавлена поддержка функций rect() и xywh() для создания базовых фигур.
  • Добавлена поддержка анимирования SVG-атрибута viewBox, используя язык SMIL (Synchronized Multimedia Integration Language), предназначенный для анимирования элементов SVG.
  • Парсер URL, вызываемый для ссылок с неизвестной схемой, изменён на
    DefaultURI в соответствии с требованием спецификации.

  • Включена поддержка методов ArrayBuffer.prototype.transfer() и ArrayBuffer.prototype.transferToFixedLength() для передачи прав владения на память от одного ArrayBuffer к другому. После передачи буфер отсоединяется от исходной области памяти и становится непригоден для использования. Для проверки состояния буфера можно использовать свойство ArrayBuffer.prototype.detached.
  • Реализован API LargestContentfulPaint, предоставляющий сведения о времени отрисовки наиболее крупного изображения или текста на этапе до того, как пользователь начнёт взаимодействие со страницей.
  • Добавлена поддержка API Screen Wake Lock, позволяющего web-приложению, например, мультимедийному проигрывателю, блокировать вызов хранителя экрана после длительной неактивности пользователя.
  • Добавлена экспериментальная поддержка API:
    • API Declarative Shadow DOM (включается через dom.webcomponents.shadowdom.declarative.enabled в about:config) для создания новых корневых веток в Shadow DOM, например чтобы отделить импортируемый сторонний стиль элемента и связанную с ним подветку DOM от основного документа. Предложенный декларативный API позволяет обойтись для открепления веток DOM только HTML без необходимости написания кода на JavaScript.
    • API Popover (включается через dom.element.popover.enabled в about:config) для создания элементов интерфейса, показываемых поверх других элементов web-интерфейса. Например, при помощи нового API можно создавать меню действий, выводить подсказки для заполнения форм, создавать обучающие интерфейсы и реализовать захват содержимого. Вывод поверх других элементов производится через выставление атрибута «popover», при этом местоположение, каскадирование и фокус ввода обрабатываются автоматически. В отличие от элемента «dialog» элементы с атрибутом «popover» не используют модальный режим, поддерживают события и легко отменяются.
    • Средства для чтения и записи в буфер обмена (включается через dom.events.asyncClipboard.clipboardItem, dom.events.asyncClipboard.readText и dom.events.asyncClipboard.writeText в about:config), позволяющие использовать интерфейс ClipboardItem и методы read(), readText() и write().
    • Объект Intl.Segmenter (включён только в ночных сборках Firefox) для точного сегментирования текста в строке с учётом локали, например, для разделения слов в языках не использующих пробел для разделения слов.
  • В инструментах для web-разработчиков в режиме инспектирования при редактировании селектора или свойств нажатие клавиши Enter теперь подтверждает ввод и выставляет фокус на соответствующий элемент, а не приводит к перемещению фокуса на следующее поле ввода (для перемещения фокуса на следующее поле можно использовать табуляцию).
  • В версии для Android предоставлена возможность включения механизма GPC (Global Privacy Control), пришедшего на смену заголовку «DNT» (Do Not Track) и позволяющего информировать сайты о запрете продажи персональных данных и их использования для отслеживания предпочтений или перемещений между сайтами. Предоставлена возможность выставления Firefox в качестве программы по умолчанию для просмотра PDF. Для усиления защиты от пассивной идентификации пользователя в заголовке User-Agent теперь всегда выставляется «Android 10», независимо от фактической версии платформы.

Кроме новшеств и исправления ошибок в Firefox 122 устранено 15 уязвимостей (5 помечены как опасные). 8 уязвимостей вызваны проблемами работы с памятью, такими как переполнения буферов и обращение к уже освобождённым областям памяти. Потенциально данные проблемы способны привести к выполнению кода злоумышленника при открытии специально оформленных страниц.

Дополнительно можно отметить объявление о создании Mozilla отдельного сервиса для отслеживания фактов дискриминации Firefox на различных платформах и решения выявленных проблем совместно с производителями платформ. В настоящее время на сайте обобщены технические проблемы возникающие при работе Firefox в системах Apple, Google и Microsoft.

Например, на платформе Android отмечена невозможность импорта настроек браузера и снижение качества поиска. В Windows упомянут запрет программной смены браузера по умолчанию и навязывание Microsoft Edge. В Android и Windows также упоминается сохранение некоторых привязок к Chrome и Edge даже после изменения браузера по умолчанию.

Источник: http://www.opennet.ru/opennews/art.shtml?num=60483