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-boxdisplayскрыты от веб-содержимого (баг 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):enableObjectResizingenableInlineTableEditingenableAbsolutePositionEditor
Сервис-воркеры
- Реализован метод
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).- С помощью нового свойства
buttonmenus.OnClickData(en-US) дополнения могут определять, какая кнопка мыши использована для выбора пункта меню (баг 1469148).
Окна
- Метод
windows.create()(en-US) обзавёлся опциейcookieStoreId, которая определяетCookieStoreIdдля всех вкладок, созданных при открытии окна (баг 1393570).
Конфиденциальность
- Свойство
cookieConfigprivacy.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)