Firefox 51
- Опубликовано:
Вторую половину первой сотни версий свободного веб-браузера Firefox открывает его первый выпуск в 2017 году с россыпью интересных нововведений.
JavaScript
- Поддержка WebGL 2 включена по умолчанию. WebGL 2 поднимает возможности по выводу трёхмерной графики в браузере на новый уровень, предоставляя улучшенные возможности работы с текстурами, новый язык написания шейдеров и проч. Функциональность WebGL 2 соответствует стандарту OpenGL ES 3.0, представляющему собой подмножество OpenGL, ориентированное на встраиваемые и мобильные устройства.
- Полная поддержка IndexedDB версии 2, представляющей собой транзакционную объектно-ориентированную СУБД, предназначенную для хранения на клиентской стороне больших объёмов структурированных данных в виде доступных по ключу объектов, поддерживаемых алгоритмом структурного клонирования, который по сравнению с JSON поддерживает сериализацию объектов с циклическими ссылками. В IndexedDB 2 добавлены методы IDBObjectStore.getKey(), IDBCursor.continuePrimaryKey(), поддержка двоичных ключей и проч.
- Номинально полная экспериментальная поддержка WebVR API, реализующего функции виртуальной реальности в браузере. Пока по умолчанию отключена, включается параметром
dom.vr
на странице скрытых настроек, доступной по псевдо-URL-адресу.enabled about:
.config - Свойства
selectionStart
иselectionEnd
элементовINPUT
иTEXTAREA
при отсутствии выделения теперь возвращают текущую позицию курсора вместо нуля. - Доступно без префикса свойство Canvas
Rendering , позволяющее отключать размытие масштабированных изображений при их отрисовке средствами элементаContext2D .image Smoothing Enabled CANVAS
. - Поддержка назначения обработчиков событий
animation
,start animation
,iteration animationend
иtransitionend
с помощью соответствующихon
-свойств. - Прекращена поддержка префиксированного варианта Page Visibility API, позволяющего веб-приложениям учитывать, является ли текущая вкладка активной, благодаря чему можно, например, экономить вычислительные ресурсы компьютера пользователя путём приостановки анимаций или воспроизведения видео в фоновых вкладках.
- Из движка Gecko удалена поддержка нестандартных программных интерфейсов (API) Simple Push и Alarms, в основном предназначавшихся для использования в операционной системе Firefox OS, активная разработка которой прекращена. Вместо них предлагается использовать стандартный Push API.
- Ограничение (throttling, clamping) частоты срабатывания JS-таймеров в фоновых вкладках теперь не применяется к страницам, содержащим объекты
AudioContext
, вне зависимости от того, воспроизводят ли они звук. Аналогичная мера, ранее предпринятая в Firefox 50 применительно к страницам, воспроизводящим звук непосредственно в момент переключения вкладок, в некоторых случаях оказалась недостаточной.
CSS, HTML
- Поддержка элемента
HR
для вывода разделителя в меню, реализуемых элементомMENU
. - Поддержка псевдокласса
:indeterminate
для radio-кнопок. Псевдокласс соответствует кнопкам в составе групп, в которых ни одна из кнопок не выбрана как текущая (checked
). - Поддержка псевдокласса
:placeholder-shown
для однострочных текстовых полей. Псевдокласс соответствует состоянию поля формы, текущее значение которого пусто, вследствие чего отображается строка из HTML-атрибутаplace
.holder - Псевдоэлемент
::place
, позволяющий настраивать оформление строки, отображаемой в поле формы при пустом значении поля, теперь доступен без префикса.holder - Псевдокласс
:valid
теперь корректно работает применительно к правильно заполненным формам. - Поддержка значений
fill-box
иstroke-box
свойстваclip-path
, позволяющего скрывать части элемента путём применения к нему маски на основе SVG-изображения или фигуры, описанной одной из CSS-функцийinset()
,circle()
,ellipse()
,polygon()
. Ранее значенияfill-box
иstroke-box
работали какborder-box
. - Приведено в соответствие с изменением в спецификации вычисление высоты элементов в однострочных Flexbox-контейнерах при наличии заданного значения свойства
max-height
.
SVG
- Поддержка атрибута
tabindex
. - Поддержка атрибута
href
. Прежний атрибутxlink:href
отныне является устаревшим. - Поддержка доступа к пользовательским data-атрибутам с помощью DOM-свойства
dataset
. - Исправлена неработоспособность CSS-анимаций в SVG-изображениях, вставленных с помощью элемента
IMG
.
WebExtensions API
- Средствами WebExtensions API теперь можно копировать строки в буфер обмена, а благодаря поддержке разрешения (permission)
clipboard
копирование не обязательно должно быть следствием действия (например, щелчка) пользователя. К сожалению, в отличие от Chrome, в фоновых скриптах эта возможность пока недоступна, а чтение из буфера в Firefox пока не поддерживается вовсе.Write - Теперь возможна интеграция WebExtensions-расширений в boot
strapped-расширения и расширения на основе Add-on SDK. Предполагается, что это облегчит перевод таких расширений на новый API и/или внедрение поддержки многопроцессности благодаря возможности осуществлять их постепенную переработку.
Прочее
- Поддержка воспроизведения аудиозаписей в формате FLAC, работающем по принципу архиватора с возможностью прямого воспроизведения и широко используемом для хранения аудиозаписей без потерь качества наряду с Monkey’s Audio (APE), обеспечивающим несколько более высокую степень сжатия. FLAC поддерживается как для аудиофайлов в контейнерах FLAC и Ogg, так и для видеофайлов в контейнерах Ogg и MP4 (в том числе в режиме MSE). Практически одновременно поддержка FLAC также реализована в параллельно вышедшем браузере Chrome 56.
- Включена по умолчанию поддержка современного видеокодека VP9 (свободного аналога H.265) в рамках WebRTC. Изначально поддержка была реализована в Firefox 46, но отключена по умолчанию. Ввиду слишком высокой ресурсоёмкости VP9 приоритет по-прежнему имеет кодек предыдущего поколения VP8.
- Повышено быстродействие на системах, где нет возможности задействовать аппаратное ускорение средствами видеоядра.
См. также официальные примечания к выпуску и информацию для разработчиков.