Firefox 96

Встречаем Firefox 96 — ново­годнюю версию свободной программы для просмотра веб-страниц.

CSS

  • Поддержка функции hwb() для указания цвета как сочетания оттенка (hue), уровня белого (whiteness) и уровня чёрного (blackness). В необя­зательном четвёртом компоненте можно указать уровень непрозрачности. Оттенок указывается как значение без единицы измерения, соответствующее углу в градусах в цветовом круге, например, красному цвету соответствуют значения 0 и 360. Уровни чёрного и белого указываются в процентах. В отличие от функций rgb() и rgba(), аргументы функции указываются не через запятую, а через пробел, а уровень непрозрачности отделяется дробью:

    hwb(194 0% 0% / .5)

    Иной синтаксис наверняка будет запутывать как минимум начинающих веб-разработчиков, а также, возможно, усложнит синтаксический разбор аргументов. Впрочем, после замены top на to bottom в градиентах удивляться подобным фантазиям рабочей группы CSS уже не приходится.

  • Поддержка свойства color-scheme для указания цветовых схем, с которыми элемент хорошо сочетается. Возможные значения:

    • normal (по умолчанию);
    • light (светлая тема, «дневной режим»);
    • dark (тёмная тема, «ночной режим»).

    Можно указать одно­временно оба значения:

    color-scheme: light dark;

  • Поддержка функции reversed() в значении свойства counter-reset при использовании CSS-счётчиков с нумерацией элементов по убыванию. В Firefox эта функцио­нальность неявно исполь­зуется для поддержки HTML-атрибута reversed упоря­доченных списков OL.

JavaScript, DOM, API

  • Включён по умолчанию программный интер­фейс (API) Web Locks, позволяющий веб-приложению согласовывать работу нескольких своих экземпляров, работающих одно­временно в нескольких вкладках или worker’ах.
  • Поддержка экспорта изображений в формате WebP из элементов CANVAS с помощью методов toDataURL(), toBlob() и convertToBlob(). Декоди­рование формата WebP поддержи­вается в Firefox начиная с версии 65.
  • Конструктор IntersectionObserver() теперь не генерирует исключение, а устана­вливает rootMargin в значение по умолчанию 0px 0px 0px 0px, если в качестве значения одно­имённого свойства пере­даваемого вторым аргументом объекта задана пустая строка. Параметр rootMargin служит для увеличения или уменьшения габаритов блока, исходя из которых рас­счи­тывается пере­сечение с этим блоком. Intersection Observer API поддерживается в Firefox начиная с версии 55.
  • Удалена поддержка ряда нестандартных статис­тических полей WebRTC Statistics API:

    • bitrateMean;
    • bitrateStdDev;
    • framerateMean;
    • framerateStdDev;
    • droppedFrames.
  • Firefox для Android теперь поддерживает метод navigator.canShare() из Web Share API, позволяющий проверить возможность использования метода navigator.share(). В Firefox для настольных систем эта функцио­нальность пока по умолчанию выключена. Web Share API призван дать способ веб-приложениям пере­давать, например, текст, ссылки или файлы в буфер обмена, телефонную книгу, почтовые приложения, сайты или на другие устройства через bluetooth.

Прочее

  • Cookie, отправленные с одного и того же домена, но по разными протоколам (например, http и https), теперь при применении атрибута-директивы SameSite рассмат­риваются как относящиеся к разным сайтам. Если атрибут SameSite не указан, теперь по умолчанию пред­полагается значение Lax (ранее значением по умолчанию было None). Использовать SameSite=None теперь можно только в сочетании с атрибутом Secure, указывающим на доступность cookie только в защищённых контекстах.

См. также