chrome.debugger

Описание

API chrome.debugger служит альтернативным транспортом для протокола удаленной отладки Chrome. Используйте chrome.debugger для подключения к одной или нескольким вкладкам для управления сетевым взаимодействием, отладки JavaScript, изменения DOM и CSS и т. д. Используйте tabId Debuggee для таргетинга вкладок с помощью sendCommand и маршрутизации событий по tabId из обратных вызовов onEvent.

Разрешения

debugger

Чтобы использовать этот API, вы должны объявить разрешение "debugger" в манифесте вашего расширения.

{
  "name": "My extension",
  ...
  "permissions": [
    "debugger",
  ],
  ...
}

Примечание

По соображениям безопасности API chrome.debugger не предоставляет доступ ко всем доменам протокола Chrome DevTools. Доступные домены: доступность , аудит , CacheStorage , консоль , CSS , база данных , отладчик , DOM , DOMDebugger , DOMSnapshot , эмуляция , выборка, ввод- вывод , ввод , инспектор , журнал , сеть , наложение , страница , производительность , профилировщик , среда выполнения , хранилище. , Target , Tracing , WebAudio и WebAuthn .

Примеры

Чтобы попробовать этот API, установите пример API отладчика из репозитория chrome-extension-samples .

Типы

Debuggee

Идентификатор отладчика. Необходимо указать tabId, ExtensionId или TargetId.

Характеристики

  • идентификатор расширения

    строка необязательна

    Идентификатор расширения, которое вы собираетесь отлаживать. Присоединение к фоновой странице расширения возможно только при использовании переключателя командной строки --silent-debugger-extension-api .

  • идентификатор табуляции

    номер необязательно

    Идентификатор вкладки, которую вы собираетесь отлаживать.

  • идентификатор цели

    строка необязательна

    Непрозрачный идентификатор цели отладки.

DebuggerSession

В ожидании

Идентификатор сеанса отладчика. Необходимо указать один из tabId, ExtensionId или TargetId. Кроме того, можно указать необязательный идентификатор сеанса. Если sessionId указан для аргументов, отправленных из onEvent , это означает, что событие поступает из сеанса дочернего протокола в сеансе корневого отлаживаемого объекта. Если sessionId указан при передаче sendCommand , он нацелен на сеанс дочернего протокола в сеансе корневого отлаживаемого объекта.

Характеристики

  • идентификатор расширения

    строка необязательна

    Идентификатор расширения, которое вы собираетесь отлаживать. Присоединение к фоновой странице расширения возможно только при использовании переключателя командной строки --silent-debugger-extension-api .

  • идентификатор сессии

    строка необязательна

    Непрозрачный идентификатор сеанса протокола Chrome DevTools. Идентифицирует дочерний сеанс в корневом сеансе, указанном tabId, ExtensionId или TargetId.

  • идентификатор табуляции

    номер необязательно

    Идентификатор вкладки, которую вы собираетесь отлаживать.

  • идентификатор цели

    строка необязательна

    Непрозрачный идентификатор цели отладки.

DetachReason

Хром 44+

Причина прекращения соединения.

Перечисление

"target_closed"

"cancelled_by_user"

TargetInfo

Отладка целевой информации

Характеристики

  • прикрепил

    логическое значение

    True, если отладчик уже подключен.

  • идентификатор расширения

    строка необязательна

    Идентификатор расширения, определенный, если type = 'background_page'.

  • faviconUrl

    строка необязательна

    Целевой URL-адрес значка.

  • идентификатор

    нить

    Идентификатор цели.

  • идентификатор табуляции

    номер необязательно

    Идентификатор вкладки, определенный, если type == 'page'.

  • заголовок

    нить

    Заголовок целевой страницы.

  • Тип цели.

  • URL

    нить

    Целевой URL.

TargetInfoType

Хром 44+

Тип цели.

Перечисление

"страница"

"фоновая_страница"

"работник"

"другой"

Методы

attach()

Обещать
chrome.debugger.attach(
  target: Debuggee,
  requiredVersion: string,
  callback?: function,
)

Присоединяет отладчик к заданной цели.

Параметры

  • Цель отладки, к которой вы хотите подключиться.

  • требуемая версия

    нить

    Требуемая версия протокола отладки («0.1»). К отлаживаемому продукту можно подключиться только с соответствующей основной версией и большей или равной дополнительной версией. Список версий протокола можно получить здесь .

  • перезвонить

    функция необязательна

    Параметр callback выглядит так:

    ()=>void

Возврат

  • Обещание<void>

    Хром 96+

    Промисы поддерживаются в Манифесте V3 и более поздних версиях, но обратные вызовы предусмотрены для обратной совместимости. Вы не можете использовать оба при одном вызове функции. Промис разрешается с тем же типом, который передается в обратный вызов.

detach()

Обещать
chrome.debugger.detach(
  target: Debuggee,
  callback?: function,
)

Отключает отладчик от заданной цели.

Параметры

  • Цель отладки, от которой вы хотите отсоединиться.

  • перезвонить

    функция необязательна

    Параметр callback выглядит так:

    ()=>void

Возврат

  • Обещание<void>

    Хром 96+

    Промисы поддерживаются в Манифесте V3 и более поздних версиях, но обратные вызовы предусмотрены для обратной совместимости. Вы не можете использовать оба при одном вызове функции. Промис разрешается с тем же типом, который передается в обратный вызов.

getTargets()

Обещать
chrome.debugger.getTargets(
  callback?: function,
)

Возвращает список доступных целей отладки.

Параметры

  • перезвонить

    функция необязательна

    Параметр callback выглядит так:

    (result: TargetInfo[])=>void

    • результат

      Массив объектов TargetInfo, соответствующих доступным целям отладки.

Возврат

  • Обещание< TargetInfo []>

    Хром 96+

    Промисы поддерживаются в Манифесте V3 и более поздних версиях, но обратные вызовы предусмотрены для обратной совместимости. Вы не можете использовать оба при одном вызове функции. Промис разрешается с тем же типом, который передается в обратный вызов.

sendCommand()

Обещать
chrome.debugger.sendCommand(
  target: DebuggerSession,
  method: string,
  commandParams?: object,
  callback?: function,
)

Отправляет данную команду в цель отладки.

Параметры

  • Цель отладки, которой вы хотите отправить команду.

  • метод

    нить

    Имя метода. Должен быть одним из методов, определенных протоколом удаленной отладки .

  • командаПарамс

    объект необязательный

    Объект JSON с параметрами запроса. Этот объект должен соответствовать схеме параметров удаленной отладки для данного метода.

  • перезвонить

    функция необязательна

    Параметр callback выглядит так:

    (result?: object)=>void

    • результат

      объект необязательный

      Объект JSON с ответом. Структура ответа варьируется в зависимости от имени метода и определяется атрибутом return описания команды в протоколе удаленной отладки.

Возврат

  • Обещание<объект|не определено>

    Хром 96+

    Промисы поддерживаются в Манифесте V3 и более поздних версиях, но обратные вызовы предусмотрены для обратной совместимости. Вы не можете использовать оба при одном вызове функции. Промис разрешается с тем же типом, который передается в обратный вызов.

События

onDetach

chrome.debugger.onDetach.addListener(
  callback: function,
)

Вызывается, когда браузер завершает сеанс отладки для вкладки. Это происходит, когда вкладка закрывается или для прикрепленной вкладки вызывается Chrome DevTools.

Параметры

onEvent

chrome.debugger.onEvent.addListener(
  callback: function,
)

Вызывается всякий раз, когда цель отладки выдает событие инструментирования.

Параметры

  • перезвонить

    функция

    Параметр callback выглядит так:

    (source: DebuggerSession,method: string,params?: object)=>void