Firefox 85

Встречаем юбилейный Firefox 85 — первый выпуск свободного альтер­нативного веб-браузера в новом десятилетии.

HTML

  • Включена по умолчанию поддержка элемента <link rel="preload">. Элемент предписывает браузеру заранее загрузить указанный ресурс, который с большой вероятностью потребуется пользователю.

    Дополни­тельно можно указать тип ресурса с помощью атрибута as, что позволяет браузеру:

    • оптими­зировать приори­тетность загрузки;
    • кэшировать ресурс для быстрого повторного его исполь­зования при будущих запросах;
    • применять к ресурсу соответ­ствующую политику безопасности (content security policy);
    • устана­вливать подходящее значение для заголовка запроса Accept при запросе этого ресурса.

    Допустимые типы ресурсов: audio, document, embed, fetch, font, image, object, script, style, track, worker, video.

    Пред­загрузка видео­роликов (as="video") преду­смотрена в специ­фикации, но пока не реализована в браузерах — вероятно, из опасения зло­упот­реб­лений или бездумного исполь­зования, что в сочетании с большим объёмов видео­файлов крайне отрица­тельно сказалось бы на скорости загрузки страниц и привело бы к пустому расходу большого количества трафика.

    Дополнительно можно указать MIME-тип ресурса с помощью атрибута type, например: type="video/mp4", что позволяет браузеру, например, даже не пытаться загрузить ресурс, если браузер его не поддерживает.

    Для пред­загрузки шрифтов и ресурсов, которые пред­пола­гается затем загрузить без пере­загрузки страницы (fetch(), XMLHttpRequest), с активной функцией CORS, требуется также указать атрибут crossorigin, даже если ресурс расположен на том же домене.

  • Отключена поддержка элемента MENUITEM. В частности теперь не имеют специ­ального функцио­нального назначения и не связаны друг с другом HTML-атрибут disabled и одно­имённое DOM-свойство, что нарушило работу интер­фейса расширения Greasemonkey, использующего этот элемент.

    Полностью поддержка MENUITEM из Firefox пока не удалена, на странице скрытых настроек about:config предусмотрен временный булев параметр dom.menuitem.enabled.

    Элемент был пред­наз­начен для семанти­ческого представления элемента всплывающего меню. Элемент удалили из специ­фикации HTML в 2017-м году из-за отсутствия интереса со стороны разработчиков браузеров. При этом в движок WebKit, лежащий в основе браузера Apple Safari, поддержку в том же году, наоборот, добавили в рамках реализации Touch Bar Web API.

CSS

  • Поддержка псевдо­класса :focus-visible. Назначение аналогично псевдоклассу :focus, но выборка ограничивается элементами, для которых предполагается явное отображение факта наличия фокуса. Ранее был доступен нестандартный псевдо­класс :-moz-focusring для той же цели.

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

    Параллельно на вкладку «Инспектор» инструментов разработчика добавлена возможность временно применить стили :focus-visible к выделенному элементу в дополнение к ранее поддержи­вавшимся :hover, :active, :focus, :focus-within и :visited.

  • Поддержка значения pinch-zoom свойства touch-action. Свойство указывает, каким образом занятой элементом областью страницы может манипулировать пользователь. Значение pinch-zoom соответствует изменению масштаба пальцами. В сочетании с ним можно исполь­зовать любое из значений pan-*, управляющих разрешёнными направлениями жестов: pan-left, pan-right, pan-up, pan-down.

JavaScript

  • Поддержка свойства collation ассоциативного массива-объекта, пере­дава­емого конструктору Intl.Collator(). Конструктор пред­наз­начен для создания объектов Intl.Collator, позволяющих сравнивать строки с учётом особенностей указанного языка, например, чтобы пере­упоря­дочить элементы массива с помощью метода sort(). Свойство collation помогает сделать код более понятным:

    new Intl.Collator(["zh-u-co-pinyin"]); // Ранее.
    new Intl.Collator("zh", {collation: "pinyin"}); // Теперь.

Блокировка SuperCookies

В Firefox 85 внедрена защита от так называемых SuperCookies — способов междоменного отслеживания (cross-site tracking) пользо­вателей с помощью кэшируемых браузерами сущностей, изначально не пред­назна­чав­шихся для отсле­живания, в том числе HTTP-заголовков ETag и HSTS-флагов.

Для защиты от таких SuperCookies соответствующие сущности, относящиеся к внедрённым на страницу ресурсам со сторонних доменов, теперь кэшируются независимо для каждого сайта. К таким сущностям относятся HTTP-запросы, изображения, таблицы стилей, шрифты, DNS-запросы, TLS-сертификаты и проч.

Защита работает в отношении всех сторонних доменов вне зависимости от того, входят ли эти домены в перечень заранее известных сайтов-трекеров, на исполь­зовании которого основана внедрённая ранее «обычная» защита от отслеживания.

Удалена поддержка Flash

Удалена поддержка плагина Flash Player, и изменить это невозможно даже с помощью скрытых настроек.

Элементы OBJECT и EMBED, использо­вавшиеся для вставки Flash-роликов на веб-страницы, теперь обраба­тываются следующим образом.

  • Для ресурсов, имеющих MIME-тип x-shockwave-flash или x-test, элемент отображается как прозрачная область, имеющая размеры, указанные в атрибутах width и height.
  • Для ресурсов, имеющих MIME-тип, отличный от x-shockwave-flash и x-test, поведение прежнее:

    • ресурсы, не требующие плагинов для своего отображения, обраба­ты­ваются обычным образом;
    • элементы, которым соответствуют ресурсы неизвестных типов, имеют на странице нулевой размер (0×0).
  • Если для элемента OBJECT предусмотрен альтернативный (fallback-) HTML-контент, отображается этот контент.

См. также