chrome.debugger

Описание

API chrome.debugger служит альтернативным средством передачи данных для протокола удаленной отладки Chrome. Используйте chrome.debugger для подключения к одной или нескольким вкладкам, чтобы отслеживать сетевое взаимодействие, отлаживать JavaScript, изменять DOM и CSS и многое другое. Используйте свойство Debuggee tabId для выбора вкладок с помощью 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.

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

  • extensionId

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

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

  • tabId

    число необязательно

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

  • targetId

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

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

DebuggerSession

Chrome 125+

Идентификатор сессии отладчика. Необходимо указать один из параметров: tabId, extensionId или targetId. Дополнительно можно указать необязательный sessionId. Если sessionId указан для аргументов, отправляемых из onEvent , это означает, что событие поступает из дочерней сессии протокола внутри корневой сессии отладчика. Если sessionId указан при передаче в sendCommand , он указывает на дочернюю сессию протокола внутри корневой сессии отладчика.

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

  • extensionId

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

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

  • sessionId

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

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

  • tabId

    число необязательно

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

  • targetId

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

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

DetachReason

Chrome 44+

Причина разрыва соединения.

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

"target_closed"

"отменено_пользователем"

TargetInfo

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

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

  • прикрепил

    логический

    Возвращает true, если отладчик уже подключен.

  • extensionId

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

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

  • faviconUrl

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

    Целевой URL значка сайта.

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

    нить

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

  • tabId

    число необязательно

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

  • заголовок

    нить

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

  • Тип цели.

  • url

    нить

    Целевой URL.

TargetInfoType

Chrome 44+

Тип цели.

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

"страница"

"background_page"

«рабочий»

"другой"

Методы

attach()

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

Подключает отладчик к указанному целевому объекту.

Параметры

  • цель

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

  • requiredVersion

    нить

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

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

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

    Параметр callback выглядит следующим образом:

    () => void

Возвраты

  • Обещание<пустота>

    Chrome 96+

    Промис разрешается после успешного или неудачного завершения операции прикрепления. Промис разрешается без значения. Если прикрепление не удается, промис будет отклонен.

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

detach()

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

Отключает отладчик от заданного целевого объекта.

Параметры

  • цель

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

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

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

    Параметр callback выглядит следующим образом:

    () => void

Возвраты

  • Обещание<пустота>

    Chrome 96+

    Решается после успешного или неудачного завершения операции отсоединения. Промис завершается без значения. Если отсоединение не удается, промис будет отклонен.

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

getTargets()

Обещать
chrome.debugger.getTargets(
  callback?: function,
)
: Promise<TargetInfo[]>

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

Параметры

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

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

    Параметр callback выглядит следующим образом:

    (result: TargetInfo[]) => void

    • результат

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

Возвраты

  • Promise< TargetInfo []>

    Chrome 96+

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

sendCommand()

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

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

Параметры

  • цель

    Укажите целевой объект отладки, которому вы хотите отправить команду.

  • метод

    нить

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

  • commandParams

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

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

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

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

    Параметр callback выглядит следующим образом:

    (result?: object) => void

    • результат

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

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

Возвраты

  • Promise<object | undefined>

    Chrome 96+

    Тело ответа. Если при отправке сообщения произойдет ошибка, промис будет отклонен.

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

События

onDetach

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

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

Параметры

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

    функция

    Параметр callback выглядит следующим образом:

    (source: Debuggee, reason: DetachReason) => void

onEvent

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

Событие срабатывает всякий раз, когда отладочная система выдает ошибку при выполнении инструментальных действий.

Параметры

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

    функция

    Параметр callback выглядит следующим образом:

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

    • источник
    • метод

      нить

    • параметры

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

,

Описание

API chrome.debugger служит альтернативным средством передачи данных для протокола удаленной отладки Chrome. Используйте chrome.debugger для подключения к одной или нескольким вкладкам, чтобы отслеживать сетевое взаимодействие, отлаживать JavaScript, изменять DOM и CSS и многое другое. Используйте свойство Debuggee tabId для выбора вкладок с помощью 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.

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

  • extensionId

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

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

  • tabId

    число необязательно

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

  • targetId

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

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

DebuggerSession

Chrome 125+

Идентификатор сессии отладчика. Необходимо указать один из параметров: tabId, extensionId или targetId. Дополнительно можно указать необязательный sessionId. Если sessionId указан для аргументов, отправляемых из onEvent , это означает, что событие поступает из дочерней сессии протокола внутри корневой сессии отладчика. Если sessionId указан при передаче в sendCommand , он указывает на дочернюю сессию протокола внутри корневой сессии отладчика.

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

  • extensionId

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

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

  • sessionId

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

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

  • tabId

    число необязательно

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

  • targetId

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

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

DetachReason

Chrome 44+

Причина разрыва соединения.

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

"target_closed"

"отменено_пользователем"

TargetInfo

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

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

  • прикрепил

    логический

    Возвращает true, если отладчик уже подключен.

  • extensionId

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

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

  • faviconUrl

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

    Целевой URL значка сайта.

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

    нить

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

  • tabId

    число необязательно

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

  • заголовок

    нить

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

  • Тип цели.

  • url

    нить

    Целевой URL.

TargetInfoType

Chrome 44+

Тип цели.

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

"страница"

"background_page"

«рабочий»

"другой"

Методы

attach()

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

Подключает отладчик к указанному целевому объекту.

Параметры

  • цель

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

  • requiredVersion

    нить

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

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

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

    Параметр callback выглядит следующим образом:

    () => void

Возвраты

  • Обещание<пустота>

    Chrome 96+

    Промис разрешается после успешного или неудачного завершения операции прикрепления. Промис разрешается без значения. Если прикрепление не удается, промис будет отклонен.

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

detach()

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

Отключает отладчик от заданного целевого объекта.

Параметры

  • цель

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

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

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

    Параметр callback выглядит следующим образом:

    () => void

Возвраты

  • Обещание<пустота>

    Chrome 96+

    Решается после успешного или неудачного завершения операции отсоединения. Промис завершается без значения. Если отсоединение не удается, промис будет отклонен.

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

getTargets()

Обещать
chrome.debugger.getTargets(
  callback?: function,
)
: Promise<TargetInfo[]>

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

Параметры

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

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

    Параметр callback выглядит следующим образом:

    (result: TargetInfo[]) => void

    • результат

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

Возвраты

  • Promise< TargetInfo []>

    Chrome 96+

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

sendCommand()

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

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

Параметры

  • цель

    Укажите целевой объект отладки, которому вы хотите отправить команду.

  • метод

    нить

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

  • commandParams

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

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

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

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

    Параметр callback выглядит следующим образом:

    (result?: object) => void

    • результат

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

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

Возвраты

  • Promise<object | undefined>

    Chrome 96+

    Тело ответа. Если при отправке сообщения произойдет ошибка, промис будет отклонен.

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

События

onDetach

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

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

Параметры

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

    функция

    Параметр callback выглядит следующим образом:

    (source: Debuggee, reason: DetachReason) => void

onEvent

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

Событие срабатывает всякий раз, когда отладочная система выдает ошибку при выполнении инструментальных действий.

Параметры

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

    функция

    Параметр callback выглядит следующим образом:

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

    • источник
    • метод

      нить

    • параметры

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