Firefox 61

Firefox 61 — первый и единственный летний выпуск веб-браузера Firefox в 2018-м году.

CSS

  • Поддержка шрифтов OpenType с переменными характеристиками (OpenType Font Variations):
    • Включена по умолчанию поддержка CSS-свойств font-variation-settings и font-optical-sizing:

      • font-variation-settings предназначено для низкоуровневого управления видом шрифтов;
      • font-optical-sizing позволяет управлять отрисовкой шрифтов, которая по умолчанию может различаться в зависимости от размера шрифта для повышения разборчивости текста.
    • Свойства font-weight, font-stretch и font-style теперь поддерживают дополнительные значения в соответствии со спецификацией CSS Fonts Level 4:

      • в font-weight теперь можно использовать значения с плавающей запятой в диапазоне от 1 до 1000 включительно;
      • в font-stretch теперь поддерживаются процентные значения;
      • в font-style теперь можно указать конкретный угол наклона после ключевого слова oblique;
      • те же три свойства теперь можно использовать с указанными значениями в составе правила @font-face.

      Поддерживается также указание диапазона значений, поддерживаемых конкретным шрифтом. Для этого используются двойные значения: font-weight: 100 600; font-stretch: 80% 125%.

  • CSS-свойства grid-gap, grid-row-gap и grid-column-gap теперь дополнительно доступны как gap, row-gap и column-gap. Новые свойства универсальные, касаются не только Grid Layout и описаны в спецификации CSS Box Alignment.
  • Поддержка процентных значений CSS-свойства column-gap из спецификации CSS Multi-Column Layout. Свойство служит для управления зазором между колонками при многоколоночном выводе элементов.
  • Поддержка значения content CSS-свойства flex-basis для установки размера элемента по его содержимому. Значение content трактуется как max-content.
  • Поддержка псевдокласса :host, соответствующего нестандартному элементу при использовании псевдокласса внутри Shadow-DOM-поддерева элемента.
  • Поддержка указания двух значений в CSS-свойстве overflow как стенографическом (shorthand) для overflow-x и overflow-y. Ранее можно было использовать только одно значение, что было эквивалентно установке одного и того же значения для обоих подсвойств.
  • Отключена по умолчанию поддержка CSS-правила @-moz-document в веб-страницах. Для этого служит параметр layout.css.moz-document.content.enabled на странице скрытых настроек about:config. Изначально это было сделано в Nightly- и ранних бета-версиях Firefox 59.

JavaScript, DOM

  • Для HTML-элементов A (SVGAElement) внутри векторных изображений SVG включена по умолчанию поддержка свойств ping, rel, referrerPolicy, relList, hreflang, type и text для единообразия с обычными элементами-ссылками A.
  • Свойство selectorText объектов CSSStyleRule теперь реализовано в полном объёме и доступно не только для чтения, но и для изменения.
  • Новые методы trimStart() и trimEnd() объектов-строк String представляют собой абстрагированные от направления письма псевдонимы существовавших до этого trimLeft() и trimRight().
  • Метод replace() объектов-коллекций DOMTokenList — например, element.classList для манипулирования списком классов элемента — теперь возвращает булево значение, показывающее, произошла ли замена.
  • Конструктор объекта AudioContext теперь принимает необязательный параметр options в виде объекта AudioContextOptions. Это даёт возможность задать желаемые максимальную задержку (latencyHint) и/или частоту дискретизации (sampleRate) для нового контекста. Браузер может не принять во внимание заданную задержку, а реальную задержку можно определить с помощью свойства baseLatency после создания объекта.
  • Удалена поддержка свойства lastModifiedDate интерфейса File в связи с удалением свойства из спецификации.
  • Удалена поддержка метода Element.createShadowRoot(). Вместо него следует использовать attachShadow().

Быстродействие

  • Реализован механизм Retained Display Lists, призванный ускорить отрисовку страниц путём определения того, какие из высокоуровневых элементов (рамки, фоны, текст и проч.) изменились по сравнению с предыдущей отрисовкой. Выигрыш может составлять до 40%. Как и с любым кэшированием, в предварительных версиях Firefox не обошлось без аномалий, например:

    • в определённых случаях страницы не перерисовывались после удаления блока с фиксированным позиционированием (position: fixed), что нередко соответствует закрытию псевдоокна;
    • была нарушена работа jQuery-плагина fancyBox для отображения увеличенных изображений, используемого, например, на популярном русскоязычном новостном сайте ИТ-тематики iXBT.com.

    К счастью, благодаря своевременным баг-репортам и оперативной реакции разработчиков Firefox ошибки были исправлены и в стабильную версию Firefox 61 не попали.

  • Реализовано распараллеливание синтаксического разбора (парсинга) CSS-кода.
  • На страницу скрытых настроек about:config добавлен параметр browser.startup.blankWindow, позволяющий включить отображение сразу после запуска браузера полностью белого окна с последующей отрисовкой интерфейса. Позиционируется как мера для повышения субъективной скорости запуска браузера. В стабильном Firefox эта функция по умолчанию отключена, но включена в предварительных сборках.

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

  • Поддержка параметра SameSite при установке Cookie-записей. Параметр SameSite предписывает браузеру не отправлять Cookie-запись при запросах с сайтов, отличных от установившего Cookie, и призван отчасти защитить от атак типа CSRF.
  • Более не поддерживается загрузка вставленных в HTML-страницу ресурсов по протоколу FTP (ftp://…), т. к. это позволяло обойти предупреждение о межсайтовой аутентификации (XSA). FTP по-прежнему поддерживается при прямом доступе к ресурсу, когда адрес ресурса фигурирует в адресной строке.

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