Firefox 63 для разработчиков

В этой статье перечислены ключевые изменения, которые касаются разработчиков. Firefox 63 был выпущен 23 октября 2018 года.

Изменения для веб-разработчиков

Инструменты разработчика

HTML

Удалено

  • Удалена поддержка ссылок с типом sidebar (rel="sidebar") (Firefox bug 1452645).

CSS

Удалено

  • Удалены offset-block-start, offset-block-end, offset-inline-start и offset-inline-end; как упомянуто выше, они переименованы в inset-* (Firefox bug 1464782).

SVG

Без изменений.

JavaScript

Удалено

  • Удалена экспериментальная поддержка сериализации IndexedDB WebAssembly.Module (Firefox bug 1469395).

API

Новые API

DOM

События DOM

  • На платформе Windows улучшена обработка правой клавиши Alt . Если в текущей раскладке клавиша Alt назначена на AltGr , значение KeyboardEvent.key будет "AltGraph". Такое поведение соответствует поведению, принятому недавно в Chrome (Firefox bug 900750).

Медиа, Web Audio и WebRTC

  • Доступ к микрофону теперь работает одновременно в нескольких вкладках, даже в рамках одного процесса контента (Firefox bug 1404977).
  • RTCDataChannel (en-US) теперь поддерживает формат данных sctp-sdp-21 в дополнение к старому формату sctp-sdp-05.
  • Узлы ConstantSourceNode (en-US) отныне имеют не один, а два канала (Firefox bug 1413283).
  • Интерфейс API Web Audio AudioScheduledSourceNode (en-US) (и все остальные типы узлов, основанные на нём) теперь выбрасывает корректное исключение (RangeError), если время начала узла представляет собой отрицательное значение (Firefox bug 1413284).
  • Минимальные и максимально допустимые значения value (en-US) объекта AudioParam (en-US) изменены на минимальное отрицательное число с плавающей запятой одинарной точности (-340,282,346,638,528,859,811,704,183,484,516,925,440) и максимальное положительное число с плавающей запятой одинарной точности (+340,282,346,638,528,859,811,704,183,484,516,925,440) (Firefox bug 1476695).
  • Включена по умолчанию поддержка метода SourceBuffer.changeType (en-US), позволяющего изменить кодеки во время активного потока. Это часть API Media Source Extensions (en-US) (Firefox bug 1481166).
  • Метод AudioParam.setValueCurveAtTime() (en-US) обновлён, чтобы корректно принимать массив значений с плавающей запятой для указания значений параметров, которые изменяются со временем. До этого он требовал Float32Array (en-US) (Firefox bug 1421091).
  • AudioParam.setValueCurveAtTime() (en-US) обновлён, чтобы возвращать правильный TypeError, если в массиве values обнаружено не конечное значение (Firefox bug 1472095).
  • Кроме того, setValueCurveAtTime() обновлён таким образом, чтобы, когда параметр заканчивает следовать кривой значений, значение параметра устанавливалось в соответствии с последним значением в списке значений кривой (Firefox bug 1308436).
  • Словарь RTCRTPStreamStats переименован в RTCRtpStreamStats (en-US) согласно прочим словарям WebRTC и спецификации (Firefox bug 1480498).
  • Словарь RTCRtpStreamStats получил поддержку свойства kind (en-US) (Firefox bug 1481851).
  • Свойство isRemote словаря RTCRtpStreamStats (en-US) объявлено устаревшим и будет удалено в Firefox 65. При доступе к свойству будет выведено предупреждение в консоли. Подробности в блоге (Firefox bug 1393306).

Canvas и WebGL

  • HTMLCanvasElement.getContext() обзавёлся новым атрибутом powerPreference. В macOS, при наличии нескольких графических процессоров, это позволяет приложениям и апплетам WebGL, которым не важна производительность, запрашивать слабый GPU вместо более мощного и потребляющего больше энергии (Firefox bug 1349799).

Удалено

CSSOM

Без изменений.

HTTP

Безопасность

  • Фавиконы сайтов отныне подчиняются политике защиты контента (CSP), если она настроена (Firefox bug 1297156).
  • Выражение 'report-sample' директивы CSP script-src отныне учитывается при создании отчёта о нарушении. Эта директива указывает, что в отчёт должен быть включён краткий пример того, где произошло нарушение. До этого Firefox всегда включал такой пример в отчёт (Firefox bug 1473218).
  • Библиотеки NSS обновлены до версии 3.39 (Firefox bug 1470914).

Плагины

Без изменений.

WebDriver (Marionette)

Новые возможности

  • Marionette будет возвращать возможность (en-US) setWindowRect в ответы WebDriver:NewSession, если браузер поддерживает все команды позиционирования и изменения размера окна (это верно лишь для Firefox, но не для любого мобильного приложения) (Firefox bug 1470659).
  • Реализована поддержка возможности unhandledPromptBehavior, позволяющая настроить prompt behavior (Firefox bug 1264259).
  • Командам WebDriver:ExecuteScript и WebDriver:ExecuteAsyncScript добавлена возможность обработки запросов к пользователю (Firefox bug 1439995).

Изменения API

  • Удалены устаревшие конечные точки команд без префикса WebDriver: (Firefox bug 1451725).
  • Команда WebDriver:NewSession возвращает рекомендованные строки (linux, mac, windows) для platformName, как и определено в спецификации WebDriver (Firefox bug 1470646).

Исправленные ошибки

  • События, связанные с фокусом, отсутствовали при взаимодействии элементов, если окно браузера находилось в фоне (Firefox bug 1398111).
  • Последовательное выполнение действий pointerDown и pointerUp могло вызвать двойной щелчок, поскольку WebDriver:ReleaseActions не сбрасывал счётчик двойных щелчков (Firefox bug 1422583).
  • Многократное выполнение действий pause могло привести к бесконечному зависанию (Firefox bug 1447449).
  • WebDriver:ExecuteScript и WebDriver:ExecuteAsyncScript вызывали ошибку циклической ссылки при возвращении коллекции элементов (Firefox bug 1447977).
  • Для предотвращения состояния гонки команды WebDriver:AcceptAlert и WebDriver:DismissAlert будут ожидать закрытия запроса к пользователю (Firefox bug 1479368).
  • Записи журнала, вызванные скриптом фрейма, не ограничивались MarionettePrefs.logLevel, а содержали всё подряд (Firefox bug 1482829).
  • WebDriver:TakeScreenshot вызывал ошибку при создании скриншота окна, у которого размер стороны превышал 32767 пикселей (Firefox bug 1485730).
  • WebDriver:SendAlertText не заменял текст по умолчанию в запросе у пользователя, если переданный текст представлял собой пустую строку (Firefox bug 1486485).

Прочее

  • Исправлено поведение PerformanceObserver.observe() (en-US): этот метод теперь ничего не делает, если в указанном массиве типов записей не обнаружены допустимые типы записей или массив пуст/отсутствует. До этого некорректно выбрасывался TypeError (Firefox bug 1403027).
  • Формат OpenSearch (en-US) теперь допускает использование application/json в качестве типа URL-адреса (application/json является ссылкой на application/x-suggestions+json) (Firefox bug 1425827).

Изменения для разработчиков дополнений

Изменения API

Темы

  • Цвет текста по умолчанию для значков browserAction (en-US) теперь автоматически становится чёрным или белым, чтобы достичь максимального контраста с фоном (Firefox bug 1474110).
  • Свойства accentcolor и textcolor ключа theme (en-US) теперь необязательны (Firefox bug 1413144).
  • browserAction.getBadgeTextColor() (en-US) и browserAction.setBadgeTextColor() (en-US) позволяют получать и настраивать цвет текста значков browserAction (en-US) (Firefox bug 1424620).
  • Объект colors ключа theme теперь поддерживает свойства ntp_text (для указания цвета текста в новой вкладке) и ntp_background (для указания цвета фона) (Firefox bug 1347204).
  • Темы получили возможность настраивать цвет боковых панелей, например, боковой панели закладок (Firefox bug 1418602). Соответствующие свойства:
    • sidebar: цвет фона.
    • sidebar_text: цвет текста.
    • sidebar_highlight: цвет фона выделенного элемента.
    • sidebar_highlight_text: цвет текста выделенного элемента.
  • Метод management.install() (en-US) позволяет дополнениям устанавливать и задействовать подписанные темы (Firefox bug 1369209).

Поиск

  • Новый API search (en-US) позволяет получить список установленных поисковых плагинов, и выполнять поиск с их помощью (Firefox bug 1352598).
  • topSites.get() (en-US) получил поддержку параметра options, позволяющего настроить различные параметры возвращённого списка сайтов (Firefox bug 1445836).

Вкладки

  • tabs.onHighlighted (en-US) отныне поддерживает множественное выделение (Firefox bug 1474440).
  • tabs.highlight (en-US) теперь включает необязательное поле в объекте highlightInfopopulate — по умолчанию имеющее значение true. Установка его значения в false запрещает возвращённому объекту windows.Window заполнять список вкладок, что положительно сказывается на производительности (Firefox bug 1489814).
  • tabs.update (en-US) позволяет менять статус выделения вкладки с помощью highlighted: true в параметре updateProperties (Firefox bug 1479129).
  • tabs.update (en-US) поддерживает изменения статуса выделения вкладки без изменения фокуса (Firefox bug 1486050). Для этого в параметре updateProperties используются одновременно highlighted: true и active: false.
  • tabs.query (en-US) стала возвращать массив объектов tabs.Tab (en-US) при выборе нескольких вкладок (Firefox bug 1465170).
  • Свойство tabs.Tab (en-US) теперь корректно отражает то, какие вкладки выделены (подсвечены), а tabs.highlight (en-US) поддерживает изменение статуса выделения нескольких вкладок (Firefox bug 1464862).
  • Свойство isarticle в объекте extraParameters, передаваемом в tabs.onUpdated (en-US), переименовано в isArticle. Старое название сохранено, но объявлено устаревшим. Это изменение попало в Firefox 62 (Firefox bug 1461695).
  • Событие tabs.onUpdated (en-US) позволяет отслеживать, какая вкладка привлекает внимание пользователя с помощью свойства attention объекта changeInfo (Firefox bug 1396684).

Меню

Прочее

Предыдущие версии