Firefox 72
- Опубликовано:
Встречаем новогодний Firefox 72.
CSS
- Поддержка функциональности CSS Shadow Parts, куда входят атрибут
part
и псевдоэлемент::part
, позволяющие делать отдельные элементы внутри поддерева Shadow DOM доступными для оформления с помощью стилей страницы, на которой компонент используется. -
Поддержка функциональности CSS Motion Path, позволяющей в рамках CSS-анимаций перемещать элементы по произвольной траектории, заданной SVG-кривой в свойстве
offset-path
. Сопутствующие свойства:- стенографическое (shorthand) свойство
offset
; offset-anchor
для выравнивания элемента относительно траектории;offset-distance
для указания положения элемента по длине траектории;offset-rotate
для поворота элемента относительно ориентации по умолчанию.
- стенографическое (shorthand) свойство
- Поддержка самостоятельных свойств
scale
,rotate
,translate
для масштабирования, поворота и смещения элементов соответственно. Свойства независимы от свойстваtransform
и призваны упростить использование соответствующей функциональности.
JavaScript
-
Поддержка краткого тернарного оператора
??
(nullish coalescing operator). Оператор возвращает левый операнд, если он не равенnull
и не является неопределённым (undefined
), и правый операнд — в противном случае. Например, следующие выражения эквивалентны:'undefined' === typeof a || null === a ? 'foo': a
a ?? 'foo'
Возможность также доступна в Chrome 80+ и Safari TP 89+.
- Поддержка событий FormDataEvent, возникающих при отправке формы или вызове конструктора
FormData()
и призванных упростить получение данных формы, если необходимо отменить их обычную отправку и обработать иным способом — например, отправить на сервер без перезагрузки страницы. -
Вызов методов Notification.requestPermission() (запрос согласия пользователя на получение уведомлений) и PushManager.subscribe() (подтверждение подписки на Push-уведомления) теперь разрешён только в обработчиках событий, являющихся результатом действий пользователя — например, щелчка мышью (
click
). Благодаря этому исключаются назойливые служебные всплывающие окна, которые ранее могли открываться сразу после загрузки веб-страницы.Аналогичное ограничение введено для метода
MediaDevices.getDisplayMedia()
, запрашивающего согласие пользователя на снятие скриншота или видеозахват определённой области экрана.
Расширения
Обработка клавиш-модификаторов и среднего щелчка на кнопках расширений
Для кнопок расширений browserAction
и pageAction
теперь возможна обработка щелчка средней кнопкой мыши и клавиш-модификаторов Shift/Ctrl/Alt. Соответствующие данные передаются в виде объекта во втором аргументе функции обратного вызова обработчика onClicked
.
К сожалению, обработка щелчка правой кнопкой мыши расширениям Firefox по-прежнему недоступна и зарезервирована для собственного контекстного меню Firefox, единообразного для всех кнопок расширений.
UsableHomeButton 2.5
Благодаря этой возможности, например, функциональность авторского расширения UsableHomeButton в свежей версии 2.5 наконец удалось восстановить почти до уровня изначальной XUL/XPCOM-версии:
- при нажатии кнопки расширения с зажатой клавишей Ctrl главная страница текущего сайта открывается в новой вкладке;
- при зажатой Shift — в новом окне;
- при зажатой Alt текущая страница открывается в приватном окне;
- меню UsableHomeButton по умолчанию открывается средним щелчком; есть возможность поменять местами функциональность левой и средней кнопок мыши с помощью настроек расширения;
- нажатие кнопки расширения без клавиш-модификаторов по-прежнему по умолчанию открывает главную страницу текущего сайта.
UsableHomeButton исполнилось 11 лет.
Прочее
- Отключение определения типа документа по его содержимому (MIME sniffing) с помощью заголовка ответа сервера
X-Content-Type-Options
теперь применяется и к документам верхнего уровня, для которых указан тип содержимого (Content-Type
). Это может приводить к скачиванию веб-страницы вместо её отображения, если в её заголовкеContent-Type
указан MIME-тип, отличный отtext/html
.