chrome.debugger

Описание

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

Разрешения

debugger

Примечание по безопасности

По соображениям безопасности API chrome.debugger не предоставляет доступ ко всем доменам протокола Chrome DevTools. Доступные домены: Accessibility , Audits , CacheStorage , Console , CSS , Database , Debugger , DOM , DOMDebugger , DOMSnapshot , Emulation , Fetch , IO , Input , Inspector , Log , Network , Overlay , Page , Performance , Profiler , Runtime , Storage. , Target , Tracing , WebAudio и WebAuthn .

Манифест

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

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

Примеры

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

Типы

Debuggee

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

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

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

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

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

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

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

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

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

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

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

DebuggerSession

Хром 125+

Идентификатор сеанса отладчика. Необходимо указать один из tabId, ExtensionId или TargetId. Кроме того, можно указать необязательный sessionId. Если 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+

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

detach()

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

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

Параметры

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

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

    функция опциональная

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

    () => void

Возврат

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

    Хром 96+

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

getTargets()

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

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

Параметры

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

    функция опциональная

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

    (result: TargetInfo[]) => void

    • результат

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

Возврат

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

    Хром 96+

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

sendCommand()

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

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

Параметры

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

  • метод

    нить

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

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

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

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

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

    функция опциональная

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

    (result?: object) => void

    • результат

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

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

Возврат

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

    Хром 96+

    Промисы поддерживаются только для Manifest 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