Описание
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
Идентификатор сессии отладчика. Необходимо указать один из параметров: tabId, extensionId или targetId. Дополнительно можно указать необязательный sessionId. Если sessionId указан для аргументов, отправляемых из onEvent , это означает, что событие поступает из дочерней сессии протокола внутри корневой сессии отладчика. Если sessionId указан при передаче в sendCommand , он указывает на дочернюю сессию протокола внутри корневой сессии отладчика.
Характеристики
- extensionId
строка необязательный
Идентификатор расширения, которое вы собираетесь отлаживать. Подключение к фоновой странице расширения возможно только при использовании параметра командной строки
--silent-debugger-extension-api. - sessionId
строка необязательный
Непрозрачный идентификатор сессии протокола Chrome DevTools. Идентифицирует дочернюю сессию внутри корневой сессии, определяемой параметрами tabId, extensionId или targetId.
- tabId
число необязательно
Идентификатор вкладки, которую вы собираетесь отлаживать.
- targetId
строка необязательный
Непрозрачный идентификатор отладочного объекта.
DetachReason
Причина разрыва соединения.
Перечисление
"target_closed" "отменено_пользователем"
TargetInfo
Информация о цели отладки
Характеристики
- прикрепил
логический
Возвращает true, если отладчик уже подключен.
- extensionId
строка необязательный
Идентификатор расширения, определяемый, если type = 'background_page'.
- faviconUrl
строка необязательный
Целевой URL значка сайта.
- идентификатор
нить
Идентификатор цели.
- tabId
число необязательно
Идентификатор вкладки определяется, если type == 'page'.
- заголовок
нить
Заголовок целевой страницы.
- тип
Тип цели.
- url
нить
Целевой URL.
TargetInfoType
Тип цели.
Перечисление
"страница" "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 []
Массив объектов 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
Идентификатор сессии отладчика. Необходимо указать один из параметров: tabId, extensionId или targetId. Дополнительно можно указать необязательный sessionId. Если sessionId указан для аргументов, отправляемых из onEvent , это означает, что событие поступает из дочерней сессии протокола внутри корневой сессии отладчика. Если sessionId указан при передаче в sendCommand , он указывает на дочернюю сессию протокола внутри корневой сессии отладчика.
Характеристики
- extensionId
строка необязательный
Идентификатор расширения, которое вы собираетесь отлаживать. Подключение к фоновой странице расширения возможно только при использовании параметра командной строки
--silent-debugger-extension-api. - sessionId
строка необязательный
Непрозрачный идентификатор сессии протокола Chrome DevTools. Идентифицирует дочернюю сессию внутри корневой сессии, определяемой параметрами tabId, extensionId или targetId.
- tabId
число необязательно
Идентификатор вкладки, которую вы собираетесь отлаживать.
- targetId
строка необязательный
Непрозрачный идентификатор отладочного объекта.
DetachReason
Причина разрыва соединения.
Перечисление
"target_closed" "отменено_пользователем"
TargetInfo
Информация о цели отладки
Характеристики
- прикрепил
логический
Возвращает true, если отладчик уже подключен.
- extensionId
строка необязательный
Идентификатор расширения, определяемый, если type = 'background_page'.
- faviconUrl
строка необязательный
Целевой URL значка сайта.
- идентификатор
нить
Идентификатор цели.
- tabId
число необязательно
Идентификатор вкладки определяется, если type == 'page'.
- заголовок
нить
Заголовок целевой страницы.
- тип
Тип цели.
- url
нить
Целевой URL.
TargetInfoType
Тип цели.
Перечисление
"страница" "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 []
Массив объектов 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
- источник
- метод
нить
- параметры
объект необязательный