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-box
display
скрыты от веб-содержимого (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):enableObjectResizing
enableInlineTableEditing
enableAbsolutePositionEditor
Сервис-воркеры
- Реализован метод
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). -
С помощью нового свойства
button
menus.OnClickData
дополнения могут определять, какая кнопка мыши использована для выбора пункта меню (Firefox bug 1469148).
Окна
- Метод
windows.create()
обзавёлся опциейcookieStoreId
, которая определяетCookieStoreId
для всех вкладок, созданных при открытии окна (Firefox bug 1393570).
Конфиденциальность
- Свойство
cookieConfig
privacy.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 для разработчиков