Firefox 39

Новый Firefox 39 несколько задержался, но получился довольно интересным.

CSS

  • Свойство list-style-type теперь поддерживает строки в качестве значения. Это позволяет легко реализовывать, например, «классически-типографский» маркер в виде длинного тире без необходимости манипулировать сочетаниями таких средств, как отступы, относительное / абсолютное позиционирование, отрицательные поля и генерируемые псевдоэлементы.

    Правда, как и свойство list-style-image, эта возможность имеет ограниченную применимость, т. к., похоже, нет возможности точно управлять расположением маркера — он всегда позиционируется по правому краю свободного пространства слева от элемента списка, и, например, для плотного прилегания к левому краю придётся опытным путём подбирать значение левого отступа элемента, что может давать неединообразный результат для разных шрифтов.

  • Поддержка механизма Scroll Snap Points, позволяющего управлять шагом прокрутки заданных блоков, что может быть полезным, например, для веб-приложений или сайтов, содержащих наборы однотипных сущностей (например, фотографий), отображаемых по одной и обязательно целиком.
  • Каскадирование CSS-переходов (Transitions) и анимаций при их совместном применении приведено в соответствие с изменениями в спецификации, предложенными программистом Mozilla Дэвидом Бэроном в марте 2013 года.
  • Исправлено (возможно, связано с багами 1036967 и/или 1128467) пикселизованное отображение векторных SVG-изображений при совместном применении CSS-трансформаций и масштабирования (с помощью CSS-трансформации rotate() или средствами браузера). В версии Firefox для Android это приводило к искажённому отображению элемента с SVG-фоном, например, при его горизонтальном отражении с помощью объявления transform: scaleX(-1).

JavaScript

  • Включена по умолчанию поддержка программного интерфейса (API) Fetch, представляющего собой современный способ работы с XMLHttpRequest-запросами с использованием «цепочного» (chained) синтаксиса Promises.
  • Поддержка свойств offsetX и offsetY JS-объекта MouseEvent, позволяющих при наступлении события мыши определить положение указателя мыши относительно границ элемента, к которому событие относится. Ранее для решения этой задачи приходилось использовать громоздкий код, опираясь на координаты события относительно окна браузера, текущую позицию прокрутки и проч.

Между тем 17 июня опубликована финальная версия стандарта ECMAScript 2015 (ES6), поддержка многих из возможностей которого в JavaScript (например, метода Array.from(), объектов-коллекций Map, Set, WeakMap, WeakSet, краткого «стрелочного» синтаксиса анонимных функций и механизма Promises) уже реализована в предыдущих версиях Firefox.

HTML и проч.

  • Поддержка элемента LINK с атрибутом rel="preconnect", позволяющего браузеру заранее подготовиться к загрузке ресурса с заданного домена с целью ускорить загрузку при фактическом запросе соответствующего ресурса, например, вследствие редиректа. При этом соответствующие подготовительные операции (DNS-поиск, начало сеанса TCP и возможное TLS-согласование) не раскрывают какой-либо информации о пользователе.
  • Поддержка шрифтов в формате WOFF2, изначально реализованная в Firefox 35, теперь включена по умолчанию.
  • Локальный домен localhost теперь можно использовать при офлайновой работе с WebSocket. Ранее приходилось использовать IP-адрес 127.0.0.1.
  • Удалена поддержка протокола шифрования SSL 3.0, использование которого в настоящее время небезопасно. Вместо SSL 3.0 администраторам серверов рекомендуется использовать TLS 1.2. Устаревший SSL 3.0 теперь не рекомендуется (deprecated) на уровне RFC-стандарта.
  • Отключена возможность воспроизведения 4K-видео в формате H. 264 в Windows Vista ввиду проблем аппаратного декодирования и недостаточного быстродействия программного декодирования H. 264, обеспечиваемого встроенными средствами Windows Vista.
  • Firefox 39 — первая «мажорная» версия Firefox, свободная от бага с «замерзанием» окна браузера при переключении между вкладками, впервые проявившегося ещё в Firefox 33, вышедшем более 8 месяцев (!) назад. В Firefox 38 проблема достигла своего апогея, проявляясь каждые несколько секунд и делая работу в Firefox буквально невозможной. К счастью, теперь Firefox снова можно использовать.

Средства разработки

  • Поддержка отладки работающих на Firefox OS мобильных устройств по Wi-Fi средствами WebIDE.
  • Поддержка в WebIDE проектов платформы Apache Cordova, позволяющей создавать полноценные мобильные приложения для iOS, Android и Firefox OS с использованием веб-технологий HTML, CSS и JavaScript.
  • При инспектировании блочной модели строчных элементов, занимающих несколько строк, теперь отображается подблок, соответствующий каждой из строк.
  • Возможность перемещения узлов по DOM-дереву путём их перетаскивания в Инспекторе страницы.
  • Возможность выбора предопределённых временнЫх кривых Безье в CSS-анимациях из списка с их наглядным графическим отображением.

О других новшествах Firefox 39 читайте в официальных примечаниях к выпуску и информации для разработчиков.