Firefox 53

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

CSS

  • Поддержка значения flow-root свойства display, благодаря чему clearfix-хаки наконец-то становятся ненужными. Возможность также реализована в вышедшем параллельно Chrome 58 и после скорого выхода Opera на его основе будет доступна в 3-х из 5-ти основных браузеров.
  • Поддержка стенографических (shorthand-) свойств place-items, place-self, place-content, эквивалентных одновременному указанию одинаковых значений для обоих соответствующих align-свойств.
  • Поддержка свойств mask-* реализована в полном объёме и включена по умолчанию.
  • Свойство mask-mode со значением luminance теперь правильно работает при использовании градиента в качестве маски.
  • Поддержка свойства caret-color, позволяющего управлять цветом каретки (мигающей вертикальной черты в доступных для ввода текста областях страницы).
  • Свойство -moz-tab-size теперь поддерживает анимации и значения, заданные в конкретных единицах типа em или px (ранее ширину символа табуляции можно было задавать только в пробелах). Свойство позволяет управлять шириной символа табуляции (по умолчанию — 8 пробелов) при его выводе в элементах, свойство white-space которых имеет значение pre или pre-wrap, в том числе в HTML-элементе PRE. В дальнейшем планируется поддержка свойства tab-size без префикса. Отсутствие возможности управлять шириной символа табуляции при слишком большой его ширине по умолчанию ранее вынуждала веб-разработчиков заменять их на пробелы.
  • Удалена поддержка префиксированных версий псевдокласса-функции :dir() (+), функции calc() (+) и свойства text-align-last (+).

JavaScript, DOM

  • Поддержка событий transitionstart, transitionrun и transitioncancel (1, 2). Событие transitionstart возникает, когда transition-анимация запускается, в том числе после задержки, заданной свойством transition-delay. Событие transitionrun, наоборот, возникает до задержки, заданной transition-delay. Событие transitioncancel возникает при отмене transition-анимации, например, вследствие отведения указателя мыши за пределы элемента, к которому transition-анимация применяется при наведении указателя.
  • Поддержка свойств x и y объекта события мыши MouseEvent в качестве псевдонимов существовавших свойств clientX и clientY.
  • Исправлено неверное определение фрагментов pathname (путь от корня домена без строки запроса) и search (строка запроса с предшествующим вопросительным знаком) URL-адресов с нестандартными протоколами.
  • Поддержка метода Selection.setBaseAndExtent(), позволяющего выделить в заданных двух узлах заданное количество их дочерних узлов, ближайших к узлам, расположенным между ними.
  • В качестве папки, содержащей локальный файл, выбранный пользователем с помощью элемента INPUT типа file, в пути, доступном с помощью свойства value, теперь фигурирует C:\fakepath\. Это сделано в соответствии с текущей спецификацией WHATWG HTML и для единообразия с другими браузерами. Ранее в Firefox в значении поля содержалось только имя файла. Исторически браузер Internet Explorer вплоть до последней версии 11 включительно сообщает веб-приложению полный реальный локальный путь к файлу, что нежелательно с точки зрения безопасности, поэтому на уровне стандарта было решено подставлять в путь к файлу фиктивный путь к папке.
  • Поддержка нового метода Node.getRootNode(), позиционируемого как замена теперь нерекомендуемого (deprecated) и широкой поддержки получить не успевшего свойства rootNode, более гибкая благодаря возможности передачи определённых параметров в объекте, используемом в качестве аргумента метода. На данный момент предусмотрен лишь параметр composed, задающий, возвращать ли корневой узел Shadow DOM (по умолчанию) или всего документа.
  • Из соображений безопасности теперь невозможен (1, 2) перебор свойств объектов Plugin, PluginArray и MimeTypeArray, содержащих информацию о заданном программном модуле (плагине), всех доступных в браузере плагинах и поддерживаемых браузером MIME-типах соответственно.
  • Метод HTMLMediaElement.play(), запускающий воспроизведение аудио- или видеофайла, теперь возвращает объект Promise, успешно разрешаемый только в случае начала воспроизведения и отклоняемый при возникновении ошибки.
  • В методе browser.tabs.insertCSS(), доступном для расширений на основе WebExtensions API, теперь можно помечать вставляемые стили как пользовательские, что позволяет предотвратить их перекрытие (overriding) собственными стилями веб-страницы. Возможность реализуется значением user свойства cssOrigin объекта, передаваемого в качестве второго аргумента метода.

Прочее

  • Поля форм, скрытые с помощью display: none или visibility: hidden, теперь исключаются из проверки правильности заполнения формы средствами HTML.
  • Поддержка альфа-канала в видео в формате WebM, благодаря чему появляется возможность делать определённые части видео прозрачными и подкладывать под них произвольный фон (аналог Chroma Key).
  • В скрытых настройках, доступных по псевдо-URL-адресу about:config, теперь предусмотрен параметр network.http.referer.userControlPolicy, позволяющий задать поведение браузера по умолчанию в отношении отправки заголовка запроса Referer. Возможные значения, функционально идентичные соответствующим значениям заголовка ответа сервера Referrer-Policy:
    • 0 — no-referrer;
    • 1 — same-origin;
    • 2 — strict-origin-when-cross-origin;
    • 3 — no-referrer-when-downgrade (по умолчанию).
  • В Firefox для Windows отрисовка графики вынесена в отдельный процесс, что положительно сказалось на стабильности работы Firefox в целом.
  • Прекращена поддержка устаревших операционных систем Windows XP и Vista. Firefox на соответствующих системах планируется автоматически перевести на корпоративную ветвь ESR, которая будет получать обновления, касающиеся безопасности, ещё около года.
  • В Firefox для Linux прекращена поддержка устаревших процессоров без поддержки SSE2 (до Intel Pentium 4 и AMD Opteron). Применительно к Windows такая поддержка была прекращена в Firefox 49.
  • В Firefox для Android декодирование аудио- и видеофайлов теперь осуществляется в отдельном процессе, что призвано повысить быстродействие на многоядерных системах.
  • После выпуска Firefox 53 планируется прекратить приём на сайт Addons.Mozilla.org новых дополнений на основе считающегося теперь устаревшим подхода с использованием XUL/XPCOM, вместо которого теперь следует использовать WebExtensions API.

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