Firefox 68

Летний Firefox подкрался неожиданно.

CSS, HTML

  • Поддержка свойств из новой спефицикации CSS Scroll Snap, позволяющих управлять привязкой прокрутки страницы к элементам. Новая спецификация пришла на смену устаревшей черновой спецификации CSS Scroll Snap Points, поддерживавшейся начиная с Firefox 39. Новая функциональность включает свойства scroll-padding (баг 1373832), scroll-margin (баг 1373833) и scroll-snap-align (баг 1373835). Поддержка свойств scroll-snap-coordinate, scroll-snap-destination, scroll-snap-type-x и scroll-snap-type-y прекращена. Свойство scroll-snap-type теперь не стенографическое (shorthand), поэтому объявления вида scroll-snap-type: mandatory теперь не работают.
  • Поддержка нестандартного свойства -webkit-line-clamp для совместимости с веб-страницами, написанными в расчёте на WebKit-браузеры. Свойство позволяет ограничить высоту элемента определённым количеством строк текста. Работает только в сочетании со свойством display, установленным в нестандартное значение -webkit-box или -webkit-inline-box, и нестандартным свойством -webkit-box-orient со значением vertical (свойства и значения семейства -webkit-box соответствуют WebKit-реализации устаревшей версии спецификации Flexbox). Помимо этого, для реального усечения блока требуется объявление overflow: hidden, иначе результатом будет лишь многоточие в конце последней из строк в пределах указанного количества, а текст будет по-прежнему отображаться в полном объёме. Черновая спецификация «CSS Overflow Module Level 3» предусматривает аналогичное стандартное свойство line-clamp, но при этом требует одновременной поддержки варианта с префиксом -webkit.
  • Поддержка псевдоэлемента ::marker, позволяющего управлять внешним видом и анимациями маркеров элементов списков и заголовков SUMMARY разворачиваемых блоков DETAILS.
  • Ключевое слово currentColor теперь трактуется как вычисленное значение (computed value). currentColor позволяет установить в значение, соответствующее текущему значению свойства color, свойства, по умолчанию его не наследующие. Использование currentColor в качестве значения свойства color приводит к установке свойства в его унаследованное значение (inherited value), соответствующее вычисленному значению одноимённого свойства родительского элемента.
  • Реализация единицы ch приведена в соответствие со спецификацией. При отсутствии символа 0 в шрифте теперь единица соответствует значению 0.5em.
  • Поддержка свойства counter-set, предназначенного для установки значения CSS-счётчика.
  • Номера в упорядоченных списках OL теперь генерируются с помощью CSS-механизма счётчиков, что позволило исправить ряд ошибок 15-летней давности.
  • Поддержка псевдоэлемента ::part, служащего для выборки элементов деревьев Shadow DOM по атрибуту part.
  • Поддержка CSS-трансформаций для SVG-элементов mask, marker, pattern и clipPath, не соответ­ствующих отрисовываемым элементам напрямую.
  • Варианты функций градиентов linear-gradient(), radial-gradient() и repeating-radial-gradient() с префиксом -moz-, поддерживаемые для обратной совместимости, теперь функционально приближены к их стандартным вариантам, что позволило упростить их синтаксический разбор (парсинг). В частности, сложный синтаксис, принимавший одновременно угол и положение, больше не работает, а ключевое свойство to больше не является обязательным в префиксированных вариантах функций в параметрах типа <side-or-corner>.
  • Возобновлена поддержка атрибута disabled элемента LINK с новым поведением. Для элементов LINK с атрибутом rel="stylesheet" атрибут disabled теперь предотвращает изначальную загрузку таблицы стилей при загрузке страницы; загрузку таблицы стилей затем можно инициировать вручную изменением значения атрибута на false или удалением атрибута. При этом атрибут не связан с одноимённым JS-свойством.
  • Прекращена поддержка установки Cookies с помощью META-элементов типа http-equiv="set-cookie".

JavaScript, DOM

  • Включена по умолчанию поддержка программного интерфейса (API) Visual Viewport в Firefox для Android. Включение этой функциональности в настольном Firefox планируется в будущих версиях. Visual Viewport API, изначально предложенный компанией Google, даёт ряд полезных возможностей, в том числе позволяя определить «пальцевый» масштаб (pinch zoom) на мобильных устройствах с чувствительным к прикосновениям экраном (touch screen) с помощью свойства VisualViewport.scale. Ранее для определения такого масштаба требовались ненадёжные обходные манёвры.
  • Поддержка специфичных для IE9+ нестандартных свойства rules и методов addRule() и removeRule() объектов CSSStyleSheet для улучшения совместимости с некоторыми устаревшими веб-страницами.
  • Новый числовой тип BigInt позволяет хранить целые числа более 253.
  • Поддержка параметра noreferrer для блокировки отправки URL-адреса ссылающейся страницы в HTTP-заголовке запроса Referer при открытии окна методом window.open().
  • Метод focus() теперь имеет необязательный параметр-объект, булево свойство preventScroll которого указывает, следует ли браузеру прокручивать страницу к элементу, на который устанавливается фокус.
  • Генерация событий для дополнительных кнопок мыши теперь точнее соответствует спецификации: события щелчка click и двойного щелчка dblclick для дополнительных кнопок более не генерируется; для отслеживания щелчка на дополнительной кнопке теперь служит событие auxclick.
  • В Firefox для Android событие resize более не генерируется при первичной отрисовке страницы, что улучшает совместимость с некоторыми скриптами.

Прочее

  • Прекращена поддержка директивы executionContexts в HTTP-заголовке ответа сервера Clear-Site-Data ввиду некоторых противоречий описания этой директивы в спецификации и реального процесса веб-навигации.
  • Новая реализация адресной строки на HTML/CSS вместо XUL.
  • Включён графический движок WebRender для пользователей Windows 10 с видеокартами AMD. WebRender использует видеокарту (GPU) вместо центрального процессора (CPU) для части операций отрисовки, что призвано повысить быстродействие.
  • Поддержка механизма фонового обновления Windows (Windows Background Intelligent Transfer Service, BITS), позволяющего обновлять Firefox, когда он не запущен.
  • При обнаружении ошибки HTTPS, связанной с антивирусным ПО, Firefox теперь пытается автоматически это исправить.
  • Для доступа к камере и микрофону (getUserMedia()) теперь требуется HTTPS-соединение, в&nbps;противном случае возникает ошибка NotAllowedError.
  • Новая служебная страница, доступная по псевдо-URL-адресу about:compat, показывает сайты, к которым автоматически применяются индивидуальные исправления, со ссылками на соответ­ствующие баги и возможностью эти исправления отключить для каждого из сайтов.
  • На Firefox 68 основана новая корпоративная ESR-версия с увеличенным сроком поддержки.

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