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.
См. также официальные примечания к выпуску и информацию для разработчиков.