Firefox 52
- Опубликовано:
Представительниц прекрасной половины человечества поздравляем с Международным женским днём, программистов — с долгожданным выходом Visual Studio 2017, а пользователей передового веб-браузера Firefox — с его первым весенним выпуском, готовым порадовать нас внушительным набором новшеств.
CSS, HTML
- Поддержка CSS Grid Layout — нового механизма взаимного расположения блоков, позволяющего создавать виртуальные группы блоков, не объединённых явным образом на уровне HTML-разметки. Параллельно в инструментарий разработки Firefox добавлен новый Grid Inspector, призванный облегчить работу с Grid путём наглядной визуализации виртуальных строк и столбцов.
- Поддержка Flexbox, Grid и многоколоночного вывода текста внутри кнопок, выполненных как элементы
BUTTON
. - Поддержка псевдокласса
:focus-within
, соответствующего элементам, на которые установлен фокус либо которые содержат элемент, на который установлен фокус, в том числе в Shadow DOM. - Поддержка интерполяции в CSS Transitions значений между явно заданным цветом и цветом, заданным ключевым словом
currentColor
, соответствующим текущему значению свойстваcolor
и определённым в спецификации CSS Color Module Level 3. - В CSS-анимациях теперь можно использовать свойства, к которым неприменимо вычисление промежуточных значений (интерполяция) — например,
background-image
иborder-collapse
. - Поддержка значения
space-evenly
свойствjustify-content
иalign-content
для Flex-контейнеров, позволяющего задать равномерное распределение элементов с одинаковым расстоянием между элементами и с внешних сторон крайних элементов. - Поддержка значений
left
,right
,first baseline
,last baseline
иstretch
свойствalign-self
иjustify-self
для элементов внутри Flex-контейнеров. - Поддержка применения масок к элементам
SVG
с помощью свойстваclip-path
. - Поддержка субпиксельного сглаживания при использовании CSS-свойств
mask
иclip-path
. - Свойства, касающиеся многоколоночного вывода текста (CSS Columns), теперь доступны без префикса.
-
Поддержка новых возможностей из спецификации CSS Color Module Level 4:
- функции
rgb()
иhsl()
теперь являются псевдонимамиrgba()
иhsla()
соответственно; - четвёртый аргумент функций
rgba()
иhsla()
теперь необязателен; - прозрачность теперь можно задавать в процентах;
- в качестве разделителя трёх первых составляющих вместо запятой теперь можно использовать пробел, значение прозрачности при этом отделяется от них символом
/
.
- функции
- Поддержка атрибута
rel="noopener"
у элементовA
иAREA
, инструктирующего браузер при открытии такой ссылки создать новый браузерный контекст (browsing context). При этом предотвращается передача страницам, открываемым в новом окне или вкладке, ссылки на родительское окно с помощью доступного в JavaScript свойстваwindow.opener
, которое при использованииrel="noopener"
возвращаетnull
. Эффект от этого атрибута идентиченrel="noreferrer"
, за исключением отключения передачи собственно HTTP-заголовка запросаReferer
. При этом непустые значения атрибутаtarget
, отличные от_top
,_self
и_parent
, трактуются как_blank
при принятии браузером решения, открывать ли новое окно или вкладку. Параллельно реализована поддержка соответствующего параметраnoopener
JavaScript-методаwindow.open()
.
JavaScript, DOM
- Включена по умолчанию поддержка WebAssembly — стандарта промежуточного двоичного кода, разработанного совместными усилиями Mozilla, Google, Microsoft и Apple и по сравнению с JavaScript способного обеспечить значительно более высокое быстродействие, сравнимое с быстродействием исполняемого файла. Функции WebAssembly можно вызывать из JS, и наоборот. Источником кода WebAssembly могут служить не только сценарии JavaScript, но и программы на таких языках низкого уровня, как C/C++ и Rust, например, с помощью компилятора Emscripten. В корпоративной ESR-версии Firefox 52 поддержка WebAssembly пока отключена, т. к. текущая реализация в Firefox соответствует спецификации не полностью.
- Поддержка программного интерфейса (API) Battery Status теперь доступна только для собственного кода браузера и расширений и недоступна для обычных веб-страниц, т. к. данная функциональность могла использоваться для идентификации пользователя, а также в корыстных целях (например, для завышения цены в интернет-магазине при низком уровне заряда устройства).
- Поддержка завершающей запятой в списке параметров и аргументов функции в соответствии со стандартом ES2017. Возможность может быть потенциально полезна в контексте использования систем управления версиями (VCS, SCM) типа Git и Mercurial, помогая при добавлении нового параметра в определение функции или аргумента в её вызов исключить наличие по сути фиктивных изменений, состоящих лишь в добавлении запятой после параметра или аргумента, который до этого был в списке последним.
- Поддержка оператора
...
(rest parameter destructuring), позволяющего внутри функции получить список её аргументов в виде массива без необходимости вручную преобразовывать в массив необходимую часть элементов, доступных через итерируемый объектarguments
. - Поддержка нового оператора
**
, служащего для возведения числа в степень. Ранее для этого использовалась функцияMath.pow()
. - Escape-коды Юникода вида
\u{61}
теперь можно использовать не только в строках, но и в названиях переменных и функций. - Поддержка Selection API, в том числе событий
selectstart
иselectionchange
с говорящими названиями. - Возобновлена поддержка событий прикосновений (Touch events) в версии Firefox для настольных компьютеров. Изначально поддержка была реализована в Firefox 18, но затем была отключена начиная с Firefox 24 ввиду проблем совместимости с некоторыми популярными сайтами (Google, Twitter), проявлявшихся в невозможности прокрутки с помощью тач-экрана и происходившем вместо этого выделении текста.
- Поддержка событий
focusin
иfocusout
, возникающих соответственно перед получением и потерей элементом фокуса и дожидавшихся реализации в Firefox более шести лет. - Поддержка свойства
isSecureContext
вспомогательного интерфейсаWindowOrWorkerGlobalScope
, соответствующего интерфейсамWindow
иWorkerGlobalScope
. Свойство служит для определения, доступны ли в текущем браузерном контексте возможности, определённые в спецификации Secure Contexts. - Свойство
DataTransfer.types
из Drag and drop API теперь возвращает обычный массив (Array
) строк (DOMString
) вместо устаревшего объектаDOMStringList
. - Поддержка событий
loadstart
иloadend
для изображений (элементовIMG
). Событиеloadstart
соответствует началу загрузки изображения. Событиеloadend
отличается отload
тем, что возникает не только по факту успешной загрузки изображения, но и при ошибке (событиеerror
) или отмене загрузки (событиеabort
). - Объект
MediaError
, возвращаемый свойствомHTMLMediaElement.error
при возникновении ошибки при обработке элементаAUDIO
илиVIDEO
, теперь снабжён свойствомmessage
, содержащим описание конкретной возникшей ошибки. - Документам SVG теперь соответствует интерфейс
XMLDocument
вместоSVGDocument
в соответствии с изменением спецификации SVG 2.
Прочее
- Запрещены плагины (сторонние программные модули) класса NPAPI, за исключением Flash. В версиях ESR для корпоративных пользователей, которым могут быть нужны такие плагины, как Java, поддержку планируется сохранить до мая 2018 года.
- В значении заголовка ответа сервера
Referrer-Policy
, первичная поддержка которого доступна начиная с Firefox 50, теперь поддерживаются директивыsame-origin
,strict-origin
иstrict-origin-when-cross-origin
. - В соответствии с текущей версией спецификации Strict Secure Cookies страницам, открытым по обычному, незащищённому протоколу HTTP, при установке cookie-записей теперь недоступна директива
secure
, предписывающая браузеру отправлять cookie на сервер только при использовании защищённого протокола HTTPS. - В Firefox для Windows для отрисовки веб-страниц при невозможности использования программного интерфейса Direct2D теперь используется открытая кроссплатформенная графическая библиотека Skia, развиваемая компанией Google и используемая в том числе в операционной системе Android, браузере Chrome и Firefox для Linux.
- На Firefox 52 основана новая корпоративная версия Firefox с длительным сроком поддержки (ESR). Причём в этот раз пользователи, использующие обычную версию Firefox в устаревших операционных системах Windows XP и Vista, будут автоматически переведены на ветвь ESR, благодаря чему смогут получать обновления безопасности ещё более года несмотря на то, что начиная с Firefox 53 поддержку Windows XP и Vista планируется прекратить.
См. также официальные примечания к выпуску и информацию для разработчиков.