Firefox 64 для разработчиков
В этой статье перечислены ключевые изменения, которые касаются разработчиков. Firefox 64 был выпущен 11 декабря 2018 года.
Изменения для веб-разработчиков
>Инструменты разработчика
-
Информационная панель в инструменте поддержки доступности теперь показывает сведения о соотношении контрастности цветов текста или изображений на странице (Firefox bug 1473037).
-
Выбор устройства в режиме адаптивного дизайна запоминается и сохраняется между сеансами (Firefox bug 1248619).
-
Сетевой монитор теперь выделяет ресурсы, на которые потенциально может повлиять защита от отслеживания (Firefox bug 1333994).
-
Веб-консоль получила усовершенствования, связанные с вводом и оценкой кода:
- Регистронезависимое автодополнение выражений (Firefox bug 672733).
- Возможность просмотреть историю выражений консоли с помощью bash-подобного обратного поиска (Firefox bug 1024913).
- Подсветка оценённого кода и при вводе, и при выводе (Firefox bug 1463669).
-
Пошаговое выполнение кода в отладчике JavaScript также было улучшено:
- Отладчик сохраняет развёрнутые переменные при пошаговом выполнении кода (Firefox bug 1491471).
- Выход из функции пропускает возвращаемое значение (Firefox bug 923975).
Удалено
- Окончательно удалена панель разработчика (GCLI) (Firefox bug 1429421). Её интерфейс был удалён в Firefox 62, а теперь удалён и оставшийся код.
HTML
Без изменений.
CSS
- Включена по умолчанию поддержка полос прокрутки CSS (Firefox bug 1492012).
- Реализована поддержка Interaction Media Features, включающая
pointer:coarse(Firefox bug 1035774). Подробности реализацииany-pointerиany-hoverсм в Firefox bug 1483111. - Android-версия обзавелась поддержкой
prefers-reduced-motion(Firefox bug 1478505). - Значения
<gradient>теперь поддерживают мультипозиционный синтаксис остановки цвета, например,yellow 25%, yellow 50%можно записать в видеyellow 25% 50%(Firefox bug 1352643). - Свойство
text-transformтеперь принимает значениеfull-size-kana(Firefox bug 1498148). - Из-за проблем веб-совместимости добавлена поддержка
-webkit-appearance(Firefox bug 1368555). - Кроме того, удалена большая часть специфичных для Firefox значений
-moz-appearance(Firefox bug 1496720). display:list-itemотныне поддерживается на элементах<legend>(Firefox bug 1486602).- SVG
path(), при использовании вoffset-path, теперь могут быть анимированными (Firefox bug 1486094). - Псевдоэлементы с префиксом
-webkit-больше не делают цепочку или группу селекторов недействительной (Firefox bug 1424106). См. Firefox bug 1486325, чтобы узнать, как включить эту возможность.
Удалено
- Нестандартные значения
-moz-boxи-moz-inline-boxdisplayскрыты от веб-содержимого (Firefox bug 1496961). - Нестандартные псевдоэлементы
::-moz-treeскрыты от веб-содержимого (Firefox bug 1496961). - Удалена настройка
layout.css.filters.enabled; CSS-фильтры отныне нельзя отключить (Firefox bug 1408841). - Отменено (Firefox bug 1492567) изменение, сделанное в прошлом выпуске — перемена мест значений
overflow(Firefox bug 1481866). См. причину.
SVG
Без изменений.
JavaScript
- Реализовано предложение TC39 Well-formed JSON.stringify, чтобы
JSON.stringifyне мог возвращать плохо сформированные строки Unicode (Firefox bug 1469021). - Проксируемые функции теперь могут быть переданы
Function.prototype.toString.call()(Firefox bug 1440468). - Если значение не указано, конструктор
WebAssembly.Globalбудет использовать типизированный 0. Это определяется алгоритмомDefaultValue(Firefox bug 1490286).
API
DOM
-
Ряд изменений API Fullscreen:
- API лишился префикса (Firefox bug 1269276).
- Методы
Element.requestFullscreen()иDocument.exitFullscreen()отныне возвращаютPromise, который исполняется, когда завершено изменение режима (Firefox bug 1188256 и Firefox bug 1491212). - События
fullscreenchangeиfullscreenerrorсначала отправлялись вDocument, а затем вElement. Теперь всё стало наоборот. Это поведение отражено в спецификации и совпадает с поведением Chrome (Firefox bug 1375319).
-
На платформе macOS снова включён API WebVR 1.1 (Firefox bug 1476091).
-
В качестве ссылок на
Window.screenXиWindow.screenYдобавленыWindow.screenLeftиWindow.screenTop(Firefox bug 1498860). -
Метод
XMLHttpRequest.getAllResponseHeaders()отныне возвращает имена заголовков в нижнем регистре, в соответствии со спецификацией (Firefox bug 1398718). -
Устаревший интерфейс
HTMLAllCollectionобновлён в соответствии с последними изменениями спецификации (Firefox bug 1398354). -
В целях конфиденциальности
Navigator.buildIDбудет возвращать фиксированную метку времени (Firefox bug 583181). -
По умолчанию отключены следующие возможности
Document.execCommand()(Firefox bug 1490641):enableObjectResizingenableInlineTableEditingenableAbsolutePositionEditor
Сервис-воркеры
- Реализован метод
ServiceWorkerContainer.startMessages()(Firefox bug 1263734).
Media, Web Audio и WebRTC
- Свойства
PannerNode.refDistance,PannerNode.maxDistance,PannerNode.rolloffFactorиPannerNode.coneOuterGainотныне корректно выбрасывают исключения, когда их значения установлены за пределами допустимого (Firefox bug 1487963). - Настройки
RTCRtpEncodingParameters, изменённые с помощьюRTCRtpSender.setParameters(), не обновлялись, если были изменены во время звонка. Теперь они будут обновляться без переподключения (Firefox bug 1253499). - Реализован
RTCIceCandidateStats.relayProtocol— стандартная версияRTCIceCandidateStats.mozLocalTransport, который объявлен устаревшим (Firefox bug 1435789). - Включена по умолчанию автоматическая регулировка усиления (AGC). Эта возможность управляется настройкой
media.getusermedia.agc_enabled(Firefox bug 1496714).
Удалено
- Свойство
Window.event, добавленное в Firefox 63 для разрешения проблем веб-совместимости, скрыто за отключённой в релизных версиях настройкойdom.window.event.enabled, поскольку вскрылись иные затруднения (Firefox bug 1493869). На самом деле, это было сделано в одном из минорных обновлений Firefox 63, мы просто обращаем на это ваше внимание. - Удалён интерфейс
LocalMediaStreamи его методstop()(Firefox bug 1258143). См. Stopping a video stream, чтобы узнать, как остановить поток целиком. - Удалены интерфейсы
AudioStreamTrackиVideoStreamTrack, поскольку они уже некоторое время объявлены устаревшими (Firefox bug 1377146). Их функции перенесены вMediaStreamTrack; дорожки отныне идентифицируются по значению свойствkind, таких, какaudioилиvideo.
Безопасность
- Прекращено доверие сертификатам, выданным удостоверяющими центрами Symantec (см. Firefox bug 1409257; также см. подробности в обсуждении Mozilla's Plan for Symantec Roots).
- Теперь можно использовать
Referrer-Policyдля управления ресурсами, полученными через таблицы стилей (Firefox bug 1330487) — см. Integration with CSS для получения подробных сведений.
Плагины
Без изменений.
WebDriver (Marionette)
Изменения API
- Удалены устаревшие конечные точки без префикса
Marionette:,L10n:илиAddon:(включаяsingeTap) (Firefox bug 1504478, Firefox bug 1504940).
Исправленные ошибки
- Синтезированные события
Shiftс использованиемWebDriver:PerformActionsне создавали заглавные буквы (Firefox bug 1405370). WebDriver:Navigateмог вызвать бесконечное зависание, если низлежащий процесс контента вкладки менялся много раз во время навигации (Firefox bug 1504807).- Для улучшения производительности и сокращения количества потребляемой памяти страница, в новой вкладке или окне будет загружаться не
about:newtab, аabout:blank(Firefox bug 1506643). - Отключено по умолчанию предложение использовать панель блокировки контента, показ которого препятствует взаимодействию с элементами интерфейса (Firefox bug 1488826).
Изменения для разработчиков дополнений
>Изменения API
Меню
-
Добавлен новый API
browser.menus.overrideContext(), который может быть вызван из события DOMcontextmenuи позволяет скрыть все пункты меню по умолчанию, чтобы создать собственное контекстное меню на страницах, относящихся к дополнению. Это контекстное меню может состоять из нескольких пунктов меню верхнего уровня дополнения и может включать элементы контекстного меню вкладок или закладок из других дополнений. См. блог для получения подробных сведений.- Реализован
browser.menus.overrideContext()((Firefox bug 1280347). - Реализована опция
showDefaults: false, позволяющая скрывать из контекстного меню пункты по умолчанию (Firefox bug 1367160). documentURLPatternsтеперь может соответствовать адресуmoz-extension://, даже если используетсяbrowser.menus.overrideContext(). Таким образом, он может надёжно ограничивать пользовательские пункты меню для определённых документов (Firefox bug 1498896).
- Реализован
-
С помощью нового свойства
viewTypesвmenus.create()иmenus.update()можно ограничить места появления контекстного меню в дополнении (Firefox bug 1416839). -
menus.update()теперь позволяет обновить значок существующего пункта меню (Firefox bug 1414566). -
С помощью нового свойства
buttonmenus.OnClickDataдополнения могут определять, какая кнопка мыши использована для выбора пункта меню (Firefox bug 1469148).
Окна
- Метод
windows.create()обзавёлся опциейcookieStoreId, которая определяетCookieStoreIdдля всех вкладок, созданных при открытии окна (Firefox bug 1393570).
Конфиденциальность
- Свойство
cookieConfigprivacy.websites— это объект, который может принимать свойствоbehavior. Это свойство теперь может, в свою очередь, принимать новое значение —reject_trackers, которое указывает дополнению отвергать куки, связанными с отслеживанием (Firefox bug 1493057).
API devtools.panels
- Реализована поддержка метода
Sidebar.setPage()devtools.panels.elements(Firefox bug 1398734).
Изменения манифеста
- Новое свойство
pinnedключа манифестаpage_actionпозволяет дополнениям управлять тем, должны ли при установке их действия на странице быть прикреплены к адресной строке или нет (Firefox bug 1494135). - В Windows наличие ключей NativeMessagingHosts сначала будет проверяться в 32-разрядном представлении реестра (Wow6432Node)); следует использовать то, что подходит для вашего приложения (Firefox bug 1494709).
- Объект
search_providerполяchrome_settings_overridesотныне может включать новые свойства —suggest_url,suggest_url_post_params(Firefox bug 1486819) иsearch_url_post_params.
Предыдущие версии
- Firefox 63 для разработчиков
- Firefox 62 для разработчиков
- Firefox 61 для разработчиков
- Firefox 60 для разработчиков
- Firefox 59 для разработчиков
- Firefox 58 для разработчиков
- Firefox 57 для разработчиков
- Firefox 56 для разработчиков
- Firefox 55 для разработчиков
- Firefox 54 для разработчиков
- Firefox 53 для разработчиков
- Firefox 52 для разработчиков
- Firefox 51 для разработчиков
- Firefox 50 для разработчиков
- Firefox 49 для разработчиков
- Firefox 48 для разработчиков
- Firefox 47 для разработчиков
- Firefox 46 для разработчиков
- Firefox 45 для разработчиков
- Firefox 44 для разработчиков
- Firefox 43 для разработчиков
- Firefox 42 для разработчиков
- Firefox 41 для разработчиков
- Firefox 40 для разработчиков
- Firefox 39 для разработчиков
- Firefox 38 для разработчиков
- Firefox 37 для разработчиков
- Firefox 36 для разработчиков
- Firefox 35 для разработчиков
- Firefox 34 для разработчиков
- Firefox 33 для разработчиков