Firefox 78
- Опубликовано:
Firefox 78 — второй летний выпуск свободного веб-браузера.
CSS
Псевдоклассы :is()
и :where()
Долгожданная поддержка псевдоклассов-функций :is()
и :where()
. Они позволяют укоротить перечисления селекторов, содержащих повторяющиеся части, путём перечисления только различающихся частей селекторов внутри :is()
или :where()
.
- Было:
SECTION .foo .bar,
ARTICLE .foo .bar,
ASIDE .foo .bar,
NAV .foo .bar {}- Стало:
:is(SECTION, ARTICLE, ASIDE, NAV) .foo .bar {}
Кроме того, в отличие от обычных селекторов, указание не поддерживаемого браузером селектора в списке селекторов внутри :is()
/:where()
не приводит к игнорированию всего правила, игнорируется только соответствующий селектор внутри :is()
/:where()
. Это поможет предотвратить вынужденное дублирование целиком правил.
- Игнорируется всё правило:
:valid, :unsupported {}
- Игнорируется только неподдерживаемый селектор из перечисленных в
:is()
: :is(:valid, :unsupported) {}
Ранее вместо :is()
был псевдокласс :any()
, доступный с префиксами (:-moz-any()
, :-webkit-any()
), и описанный в черновике спецификации псевдокласс :matches()
(доступен в Chromium), но позднее рабочая группа CSS склонилась к :is()
как смысловой противоположности псевдокласса :not()
. В отличие от :any()
, внутри :is()
и :where()
можно использовать составные селекторы с комбинаторами.
Работают :is()
и :where()
аналогично, но :is()
имеет специфичность наиболее специфичного из аргументов, а специфичность :where()
нулевая.
Псевдоклассы :read-only
и :read-write
без префиксов
Псевдоклассы :read-only
и :read-write
теперь поддерживаются без префиксов.
Псевдокласс :read-write
соответствует элементам, содержимое которых пользователь может редактировать — например, текстовые поля форм (INPUT
и TEXTAREA
) и доступные для визуального (WYSIWYG) редактирования элементы с атрибутом contenteditable
.
Псевдокласс :read-only
имеет противоположный смысл и соответствует, например, текстовым полям форм с атрибутом disabled
и элементам форм, по своей природе не предполагающим редактирования — например, SELECT
.
JavaScript, DOM
-
Теперь используется движок регулярных выражений из JS-движка V8, используемого в браузерном движке Chromium и в скриптовой среде Node.js. Благодаря этому появились новые полезные возможности:
- поиск с учётом предшествующей подстроки без её включения в захваченную подстроку (lookbehind assertions) (баг 1225665);
- однострочный режим (
dotAll
), включаемый флагомs
, в котором символ.
(точка) в регулярном выражении соответствует действительно любым символам, в том числе символам перевода строки (баг 1361856). Включён ли однострочный режим для конкретного объектаRegExp
, можно узнать с помощью булева свойстваdotAll
, доступного только для чтения. При использовании флагаs
в многострочном режиме (m) символы перевода строки включаются в найденные подстроки; - поиск символов определённого типа (Unicode property escapes) — например, эмодзи (emoji) (баг 1361876);
- именованные подстроки (named capture groups), позволяющие получить доступ к найденной подстроке как к свойству с заранее заданным именем вместо доступа по числовому индексу (баг 1362154).
- Поддержка DOM-метода
replaceChildren()
, который заменяет содержимое элемента переданными узлами. Если узлы не переданы, содержимое элемента удаляется аналогично присвоению пустой строки свойствуtextContent
. - Поддержка объекта
Intl.ListFormat
, позволяющего генерировать текстовое представление списков, соответствующее заданному языку.
Прочее
- Использование движка отрисовки WebRender, написанного на языке Rust, включено для компьютеров с графическим ядром Intel при работе от электросети и использовании операционной системы Windows 10. Таким образом, теперь WebRender по умолчанию используется на компьютерах под управлением Windows 10 с видеокартами любого из основных производителей: AMD, nVidia, Intel.
- На Firefox 78 основана новая корпоративная версия браузера с длительным сроком поддержки (ESR). Предыдущая ESR-версия была основана на Firefox 68.
См. также
- Официальные примечания к выпуску.
- Информация для разработчиков.
- Статья на Mozilla Hacks.
- Информация об изменениях в совместимости с сайтами (архивная копия) (после прекращения попыток заблокировать Telegram в России сайт «Firefox Site Compatibility» тоже стал доступен из России).