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