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

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

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

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

  • Включён по умолчанию инспектор Flexbox.

  • Отладчик JavaScript получил поддержку точек останова XHR (Firefox bug 821610).

  • Щелчок правой кнопкой по элементу дерева доступности позволяет вывести его в JSON-формате.

  • Если фон текста является сложным (например, градиент или сложное изображение), инструмент цветового контраста в инспекторе доступности покажет диапазон значений цветового контраста.

  • Во вкладку «Заголовки» сетевого монитора добавлено отображение политики Referrer для выбранного запроса (Firefox bug 1496742).

  • При просмотре трассировки стека (например, в журналах консоли или отладчике JavaScript) вызовы методов фреймворка распознаются и по умолчанию сворачиваются, что облегчает размещение вашего кода.

  • Подобно традиционным терминалам теперь можно использовать обратный поиск в истории консоли JavaScript(

    F9

    в Windows/Linux или

    Ctrl

    +

    R

    в macOS, затем ввести искомое, а сочетаниями

    Ctrl

    +

    R

    /

    Ctrl

    +

    S

    переключаться между результатами).

  • Сокращение $0 в консоли JavaScript (ссылается на инспектируемый в данный момент элемент страницы) обзавелось возможностью автодополнения. Например, вы можете ввести $0.te, чтобы получить предложения автодополнения для свойств наподобие $0.textContent.

  • Правки, внесённые через просмотр правил в Инспекторе, теперь отображаются на вкладке «Изменения» (Firefox bug 1503920).

HTML

  • События теперь отправляются на отключённые элементы HTML, то есть элементы <button>, <fieldset>, <input>, <select> и <textarea> с установленными атрибутами disabled (Firefox bug 329509).
  • Как в Chrome и Safari, удаление атрибута src у элемента <iframe> загружает в него about:blank (Firefox bug 1501418) . До этого удаление src не влияло на содержимое iframe.
  • Добавлена поддержка атрибута referrerpolicy у элементов <script> (Firefox bug 1460920).

CSS

  • Убран префикс у значения crisp-edges свойства image-rendering (Firefox bug 1496617).

  • Значение auto scrollbar-color теперь разрешается в auto, а не в два цвета (Firefox bug 1501418).

  • Реализована поддержка свойств break-* (Firefox bug 775618):

  • Реализована поддержка значения anywhere у свойства overflow-wrap (Firefox bug 1505786).

  • Добавлены новые ключевые слова jump-start, jump-end, jump-none и jump-both, используемые внутри временной функции steps() (Firefox bug 1496619). Функция frames(), ранее использовавшаяся для этого, объявлена устаревшей.

  • Для совместимости с прочими браузерами добавлены несколько новых значений -webkit-appearance. В частности:

    • meter, которое отныне используется в качестве значения по умолчанию для элементов <meter>; существующее значение meterbar теперь является псевдонимом meter (Firefox bug 1501483).
    • progress-bar, которое отныне используется в качестве значения по умолчанию для элементов <progress>; существующее значение progressbar теперь является псевдонимом progress-bar (Firefox bug 1501506).
    • textarea, которое отныне используется в качестве значения по умолчанию для элементов <textarea>; существующее значение textfield-multiline теперь является псевдонимом textarea (Firefox bug 1507905)
  • Изменено поведение user-select, чтобы достичь сходства с прочими браузерами (Firefox bug 1506547). Конкретно:

    • user-select: all, установленное на элемент, больше не перекрывает значения user-select дочерних элементов. Пример:

      html
      <div style="-webkit-user-select: all">
        All
        <div style="-webkit-user-select: none">None</div>
      </div>
      

      <div>, на который установлен none, теперь не выбирается. До этого значение none перекрывалось значением all родительского элемента.

    • Теперь можно выбирать элементы не-contenteditable, вложенные в элементы contenteditable.

    • user-select теперь ведёт себя согласованно внутри и снаружи теневого DOM.

    • Удалено проприетарное значение -moz-text.

  • Реализована поддержка переменных среды CSS (функция env()) (Firefox bug 1462233).

Удалено

SVG

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

JavaScript

API

Новые API

DOM

События DOM

  • За одно событие разрешено не более одного вызова Window.open() (Firefox bug 675574).
  • События keyup и keydown в целях улучшения кроссбраузерной совместимости для пользователей CJKT отныне срабатывают во время композиции IME (Firefox bug 354358).

Веб-воркеры

Fetch и сервис-воркеры

Media, Web Audio и WebRTC

Canvas и WebGL

Удалено

  • Отключена мутация событий в теневых деревьях (Firefox bug 1489858).

  • Удалено нестандартное свойство currentTime MediaStream (Firefox bug 1502927).

  • Удалены настройки dom.webcomponents.shadowdom.enabled и dom.webcomponents.customelements.enabled — больше нельзя отключить поддержку Shadow DOM и Custom Elements через about:config (Firefox bug 1503019).

  • Удалено нестандартное событие DOM text, срабатывавшее, чтобы уведомить пользовательский интерфейс редактора браузера о строках данных композиции IME и диапазоне выбора (Firefox bug 1288640).

  • Событие keypress больше не срабатывает для непечатаемых клавиш (Firefox bug 968056) за исключением клавиши

    Enter

    и комбинаций

    Shift

    +

    Enter

    и

    Ctrl

    +

    Enter

    (сохранены для кроссбраузерной совместимости).

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

Сеть

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

Плагины

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

WebDriver (Marionette)

Изменения API

  • WebDriver:ElementSendKeys при проверке интерактивности обрабатывает <input type=file> менее строго, позволяя скрывать эти элементы без возникновения ошибки not interactable. Если требуется строгая проверка, следует использовать strictFileInteractability (Firefox bug 1502864).

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

  • Команды для манипуляций окнами WebDriver:FullscreenWindow, WebDriver:MinimizeWindow, WebDriver:MaximizeWindow и WebDriver:SetWindowRect стали более стабильными (Firefox bug 1492499). При определённых обстоятельствах они больше не вызывают бесконечное зависание, но ожидают в течение 5 секунд, если запрошенное состояние окна не может быть достигнуто (Firefox bug 1521527).
  • WebDriver:ElementClick отныне корректно высчитывает центр элемента для щелчка по нему, что позволяет взаимодействовать с элементами, имеющими размер 1x1 пиксель (Firefox bug 1499360).

Прочее

  • При возникновении ошибки unexpected alert open выводятся более понятные сообщения (Firefox bug 1502268).

Прочее

  • Добавлена поддержка изображений в формате WebP (Firefox bug 1294490).

    • Кроме того, для улучшения кросс-браузерной совместимости MIME-тип WebP (image/webp) был добавлен в стандартный заголовок HTTP-запроса Accept для файлов HTML (Firefox bug 1507691).

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

Изменения API

Вкладки

  • tabs API обзавёлся поддержкой наследников вкладок — вкладке можно назначить ID вкладки-наследника, которая станет активной, когда первая вкладка закроется (Firefox bug 1500479, см. также эту запись в блоге для получения подробных сведений). В частности:

    • Тип tabs.Tab получил свойство successorId, используемое для хранения/получения ID вкладки-наследника.
    • Колбэк обработчика событий tabs.onActivated получил новый параметр, previousTabId, содержащий ID предыдущей активированной вкладки, если она всё ещё открыта.
    • Объект updateProperties функции tabs.update() обзавёлся новым свойством successorTabId, которое служит для его обновления.
    • successorTabId также возвращается функциями наподобие tabs.get() и tabs.query().
    • Новая функция tabs.moveInSuccession() позволяет массово манипулировать наследниками вкладок.

Изменения манифеста

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

Прочее

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