Firefox 63
- Опубликовано:
Новая версия свободного веб-браузера Firefox 63 дарит множество новых возможностей.
JavaScript, DOM
-
Поддержка механизмов Shadow DOM (баг 1471947) и Custom Elements (баг 1471948) в рамках концепции веб-компонентов (Web Components).
Shadow DOM даёт возможность инкапсуляции нестандартной функциональности, представленной в HTML-документе в виде обычного элемента.
Custom Elements позволяет использовать нестандартные HTML-элементы. Во избежание конфликтов со стандартными элементами теги нестандартных элементов обязаны содержать как минимум один дефис, например:
<foo-bar>
. Для регистрации нестандартного элемента используется методCustomElementRegistry.define()
. - Поддержка программного интерфейса (API) Media Capabilities, призванного дать веб-приложениям возможность выбирать параметры воспроизведения видео- и аудиоафайлов, наиболее эффективные по быстродействию, энергопотреблению и другим критериям с учётом возможностей конкретного устройства.
-
Поддержка методов
writeText()
иreadText()
объектовnavigator.clipboard
в рамках Async Clipboard API. Методы представляют собой удобные средства копирования текста в буфер обмена и чтения из него.Чтение содержимого буфера доступно только в расширениях при условии наличия разрешения (permission)
clipboardRead
. Копирование в буфер доступно без явных разрешений в расширениях и собственных скриптах браузера, но только в обработчиках событий, инициированных пользователем. Расширения с разрешениемclipboardWrite
могут копировать в буфер в произвольный момент, без привязки к действиям пользователя.Ранее для копирования текста приходилось использовать обобщённый метод
document.execCommand()
с предварительным временным переопределением обрабочика события копирования или созданием невидимого текстового поля с нужным текстом и выделением его содержимого перед вызовом командыCopy
. Из-за этого в частности копирование не работало в фоновых (background-) скриптах расширений, которые исполняются не в контексте веб-страницы.В расширениях на основе XUL/XPCOM прямое копирование текста в буфер обмена было возможно с помощью метода
nsIClipboardHelper.copyString()
. После перехода на WebExtensions API столь же удобный способ копирования текста в буфер обмена до текущего момента отсутствовал. -
Дополнена поддержка Web Animations API:
- свойства
ready
,finished
иeffect
объектаAnimation
; - интерфейсы
KeyframeEffect
иAnimationEffect
.
- свойства
- Поддержка метода
Element.toggleAttribute()
, добавляющего булев (без значения) атрибут при его отсутствии, и удаляющего — при наличии. Необязательный второй аргумент может содержать булево значение, на основании которого атрибут будет добавлен или удалён вне зависимости от его наличия. Метод работает аналогично методуDOMTokenList.toggle()
, используемому для управления, например, списком классов элементаelement.classList
. - Поддержка метода
Object.fromEntries()
, создающего объект из итерируемого (iterable
) набора паримя : значение
— например, из иерархии вложенных массивов (Array
). - Устранена ошибка, из-за которой относящиеся к фокусу события при взаимодействии с элементами не генерировались при неактивном окне Firefox.
- Для единообразия с браузерами Edge и Chrome свойство
navigator.platform
в Firefox теперь возвращает значениеWin32
даже при работе на 64-битных версиях Windows.
CSS, HTML
- Новые возможности Media Queries:
-
Поддержка синтаксиса Media Queries Level 4. Сюда входит долгожданная возможность указания диапазонов, не включающих пограничное значение (
width < 600px
).Благодаря этому теперь возможно создание смежных диапазонов, прилегающих друг к другу без зазоров. С прежним синтаксисом на основе префиксов
min-
/max-
пограничное значение всегда включалось в диапазон:например,
max-width: 600px
эквивалентноwidth <= 600px
, и для исключения зазоров приходилось использовать вложенные диапазоны с последующим вынужденным переопределением ненужных правил, унаследованных от родительского диапазона.Обновлено (): В Chrome эта функциональность доступна начиная с версии 104, вышедшей спустя 4 года.
- Снова включена поддержка свойств с префиксом
webkit-
, соответствующих плотности точек, в Media Queries. Изначально её реализовали в Firefox 45, но из-за несовместимости с Google Docs временно отключили в Firefox 46. - Поддержка свойства
prefers-reduced-motion
в условиях Media Queries в Windows и macOS. Соответствует параметру в системных настройках доступности, с помощью которого пользователь может явным образом указать на своё желание минимизировать количество анимаций. Это может иметь смысл для пользователей с вестибулярными нарушениями.
-
- Новинки Flexbox:
- Поддержка свойств с говорящими названиями
row-gap
,column-gap
иgap
. -
Поддержка новых значений свойств
align-self
,align-content
,align-items
,justify-content
:justify-content
:left
,right
,baseline
,last baseline
;align-items
/align-self
:left
,right
,self-start
,self-end
,baseline
,last baseline
;- значения
start
иend
, отличающиеся отflex-start
иflex-end
зависимостью от порядка строк и столбцов (row-reverse
,column-reverse
,wrap-reverse
).
-
Поддержка значений
safe
иunsafe
в свойствахalign-self
,align-content
, andjustify-content
:- значение
safe
трактуется какstart
, если размер элемента превышает размер контейнера, относительно которого он выравнивается; - значение
unsafe
выравнивает элемент заданным образом вне зависимости от его размера.
- значение
- Поддержка свойств с говорящими названиями
- Поддержка псевдокласса
:defined
, соответствующего элементам, поддержка которых встроена в браузер, а также нестандартным (custom
-) элементам. Может быть полезно, например, для временного скрытия нестандатных элементов до тех пор, пока не отработает связанный с ними JS-код. - Поддержка функции
path()
в значении свойстваoffset-path
, задающего траекторию движения анимированного элемента. - Свойства семейства
offset-
переименованы вinset-block-start
,inset-block-end
,inset-inline-start
,inset-inline-end
. Свойстваoffset-*
работали только в Firefox, поэтому их поддержка не сохранена. - Поддержка зависящих от направления потока значений
block
иinline
свойстваresize
, позволяющего управлять возможностью изменения размеров элементов пользователем. - Логические свойства, зависящие от направления потока, в ряде случаев теперь можно анимировать.
- Поддержка атрибута
decoding
элементовIMG
и одноимённого DOM-свойства объектовHTMLImageElement
(Image
). Атрибут и свойство сообщают браузеру предпочтительный способ декодирования изображения: синхронный (sync
) или асинхронный (async
). Значение по умолчанию —auto
, при котором браузер выбирает стратегию декодирования самостоятельно.
Прочее
- Поддержка HTTP-заголовка ответа сервера
Clear-Site-Data
, позволяющего серверу запросить у браузера удаление всех связанных с сайтом данных (значение заголовка"*"
) или данных определённого типа ("cache"
,"cookies"
,"storage"
,"executionContexts"
). - Работа с favicon-пиктограммами теперь соответствует политике безопасности Content Security Policy, если таковая определена сайтом.
- Поддержка MIME-типа
application/json
как псевдонимаapplication/x-suggestions+json
в плагинах OpenSearch. - Устранено ограничение, из-за которого в расширениях на основе WebExtensions API было невозможно использовать сочетания клавиш с одновременным нажатием клавиш-модификаторов Ctrl и Alt.
См. также официальные примечания к выпуску и информацию для разработчиков.