Firefox 46

Firefox 46 — свежая версия передового веб-браузера. Некоторые из интересных новшеств:

CSS, HTML

  • Включена по умолчанию поддержка некоторых CSS-свойств с префиксом -webkit-, которые теперь трактуются их как псевдонимы соответствующих уже поддерживаемых стандартных свойств, в частности поддерживаются -webkit-box-orient, @media (-webkit-transform-3d), -webkit-filter, а также DOM-интерфейс WebKitCSSMatrix как псевдоним DOMMatrix. Такая номинальная поддержка призвана улучшить совместимость Firefox с сайтами, созданными в расчёте на нестандартные возможности браузеров на основе движка WebKit (в первую очередь Safari).
  • Включена по умолчанию поддержка CSS-свойств text-emphasis, text-emphasis-style, text-emphasis-color и text-emphasis-position, позволяющих выводить заданный символ определённого цвета рядом с каждым символом текста элемента. Свойства наследуемые, т. е. их значения можно переопределить для дочерних элементов. При этом свойство text-emphasis является стенографическим (shorthand) лишь для text-emphasis-style и text-emphasis-color, а свойство text-emphasis-position при необходимости переопределить его значение следует указывать явно — в отдельном объявлении.
  • Неподдерживаемое значение атрибута type элемента UL теперь трактуется как отсутствие атрибута вместо включения режима десятичной нумерации.

JavaScript, DOM

  • Поддержка нового DOM-метода document.elementsFromPoint(), позволяющего получить коллекцию элементов, расположенных в точке с заданными пиксельными координатами.
  • Поддержка флага u для регулярных выражений, что позволяет, в частности, вставлять в регулярные выражения Юникод-символы с помощью escape-кодов вида \u{aa}. У ранее созданных объектов RegExp есть соответствующее булево свойство unicode, доступное только для чтения.

  • Удалена поддержка метода clear() объектов WeakMap и WeakSet, упразднённого в более поздних версиях стандарта ES2015 в пользу создания нового объекта вместо очистки существующего.
  • Включена по умолчанию поддержка программного интерфейса (API) Permissions, призванного дать веб-разработчикам возможность более явного взаимодействия с пользователем при необходимости использования какой-либо функциональности, требующей согласия пользователя. Реализуется методом query() объекта Permissions, содержащегося в свойстве permissions глобального объекта window.navigator. В настоящее время поддерживается управление правами применительно к программным интерфейсам Geolocation, Notifications, Push и WebMIDI, которым соответствуют строки geolocation, notifications, push и midi в качестве значения свойства name объекта, передаваемого методу query() в качестве аргумента.
  • Улучшена совместимость с некорректными файлами шрифтов WOFF, более строгая проверка корректности которых начиная с Firefox 44 привела к невозможности использования таких шрифтов на некоторых популярных сайтах (например, Nokia Networks).
  • В рамках реализации программного интерфейса WebExtensions добавлена поддержка chrome.notifications.getAll, chrome.runtime.sendMessage, chrome.webRequest.onBeforeRedirect и chrome.tabs.move, а также возможности создания нестандартных всплывающих меню, открываемых по нажатию кнопки на панели инструментов. WebExtensions представляет собой новый, более простой механизм создания расширений, аналогичный используемому в браузере Chrome и в долгосрочной перспективе позиционируемый в качестве замены традиционному для Gecko-браузеров подходу на основе XUL. Полноценная поддержка WebExtensions параллельно с включённым по умолчанию многопроцессным режимом (Electrolysis, e10s) ожидается в Firefox 48.

Безопасность

  • Повышена безопасность JIT-комплилятора JavaScript благодаря подходу W^X: каждая страница памяти, хранящая JIT-код, теперь не может быть одновременно исполняемой и доступной для изменения.
  • В соответствии с RFC 7686, Firefox теперь не отправляет традиционные DNS-запросы для определения IP-адресов доменов в псевдозоне .onion. За это отвечает параметр network.dns.blockDotOnion в about:config.
  • Планировавшееся ранее удаление возможности установки неподписанных дополнений, доступной сейчас путём установки about:config-параметра в значение xpinstall.signatures.required, отложено до Firefox 47.
  • Устранён ряд уязвимостей.

Прочее

  • Поддержка GTK3 в сборках Firefox для Linux, благодаря чему, в частности, улучшается поддержка экранных режимов с повышенной плотностью точек (High-DPI, Retina), например, при использовании 4K-мониторов.

См. также официальные примечания к выпуску и информацию для разработчиков.