refresh date: 2026-09-25 robots: noindex
Описание
API chrome.debugger служит альтернативным транспортом для протокола удаленной отладки Chrome. Используйте chrome.debugger, чтобы подключиться к одной или нескольким вкладкам и отслеживать сетевое взаимодействие, отлаживать JavaScript, изменять DOM и CSS и т. д. Используйте свойство Debuggee tabId, чтобы настраивать таргетинг на вкладки с помощью sendCommand и перенаправлять события по tabId из обратных вызовов onEvent.
Разрешения
debuggerПримечание о безопасности
Из соображений безопасности API chrome.debugger не предоставляет доступ ко всем доменам протокола инструментов разработчика Chrome. Доступны следующие домены: Accessibility, Audits, CacheStorage, Console, CSS, Database, Debugger, DOM, DOMDebugger, DOMSnapshot, Emulation, Fetch, IO, Input, Inspector, Log, Network, Overlay, Page, Performance, 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
number необязательный
Идентификатор вкладки, которую вы хотите отладить.
-
targetId
строка необязательно
Непрозрачный идентификатор целевого объекта отладки.
DebuggerSession
Идентификатор сеанса отладчика. Необходимо указать tabId, extensionId или targetId. Также можно указать необязательный параметр sessionId. Если для аргументов, отправленных из onEvent, указан sessionId, это означает, что событие происходит из сеанса дочернего протокола в рамках корневого сеанса отлаживаемого приложения. Если при передаче в sendCommand указан sessionId, то он будет относиться к дочернему сеансу протокола в рамках корневого сеанса отладки.
Свойства
-
extensionId
строка необязательно
Идентификатор расширения, которое вы хотите отладить. Прикрепить отладчик к фоновой странице расширения можно только при использовании параметра командной строки
--silent-debugger-extension-api. -
sessionId
строка необязательно
Непрозрачный идентификатор сеанса Chrome DevTools Protocol. Идентифицирует дочерний сеанс в корневом сеансе, который определяется с помощью tabId, extensionId или targetId.
-
tabId
number необязательный
Идентификатор вкладки, которую вы хотите отладить.
-
targetId
строка необязательно
Непрозрачный идентификатор целевого объекта отладки.
DetachReason
Причина прекращения подключения.
Перечисление
"target_closed"
"canceled_by_user"
TargetInfo
Информация о целевом объекте отладки
Свойства
-
подключен
Логическое значение
Значение True, если отладчик уже подключен.
-
extensionId
строка необязательно
Идентификатор расширения, если тип равен background_page.
-
faviconUrl
строка необязательно
Целевой URL значка сайта.
-
id
string
Идентификатор цели.
-
tabId
number необязательный
Идентификатор вкладки, определенный, если type == "page".
-
название
string
Заголовок целевой страницы.
-
тип
Тип таргетинга.
-
url
string
Целевой URL.
TargetInfoType
Тип таргетинга.
Перечисление
"page"
"background_page"
"worker"
"other"
Методы
attach()
chrome.debugger.attach(
target: Debuggee,
requiredVersion: string,
callback?: function,
): Promise<void>
Подключает отладчик к указанной цели.
Параметры
-
target
Целевой объект отладки, к которому вы хотите подключиться.
-
requiredVersion
string
Требуемая версия протокола отладки ("0.1"). Подключиться к отладчику можно только в том случае, если основная версия совпадает, а промежуточная версия больше или равна. Список версий протокола можно найти здесь.
-
обратный вызов
функция optional
Параметр
callbackвыглядит следующим образом:() => void
Возвраты
-
Promise<void>
Chrome 96 и более поздние версииРазрешается, когда операция прикрепления выполнена успешно или завершилась с ошибкой. Объект Promise распознается без значения. Если прикрепить файл не удастся, объект возвращает отказ.
Обещания поддерживаются только в Manifest V3 и более поздних версиях. На других платформах необходимо использовать обратные вызовы.
detach()
chrome.debugger.detach(
target: Debuggee,
callback?: function,
): Promise<void>
Отсоединяет отладчик от указанной цели.
Параметры
-
target
Цель отладки, от которой нужно отсоединиться.
-
обратный вызов
функция optional
Параметр
callbackвыглядит следующим образом:() => void
Возвраты
-
Promise<void>
Chrome 96 и более поздние версииРазрешается, когда операция отсоединения выполнена успешно или произошла ошибка. Объект Promise распознается без значения. Если отсоединить устройство не удастся, объект возвращает отказ.
Обещания поддерживаются только в Manifest V3 и более поздних версиях. На других платформах необходимо использовать обратные вызовы.
getTargets()
chrome.debugger.getTargets(
callback?: function,
): Promise<TargetInfo[]>
Возвращает список доступных целей отладки.
Параметры
-
обратный вызов
функция optional
Параметр
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>
Отправляет указанную команду целевому объекту отладки.
Параметры
-
target
Целевое устройство для отладки, на которое нужно отправить команду.
-
method
string
Название метода. Должен быть одним из методов, определенных протоколом удаленной отладки.
-
commandParams
объект необязательный
Объект JSON с параметрами запроса. Этот объект должен соответствовать схеме параметров удаленной отладки для заданного метода.
-
обратный вызов
функция optional
Параметр
callbackвыглядит следующим образом:(result?: object) => void
-
Результат
объект необязательный
Объект JSON с ответом. Структура ответа зависит от названия метода и определяется атрибутом returns описания команды в протоколе удаленной отладки.
-
Возвраты
-
Promise<object | undefined>
Chrome 96 и более поздние версииТело ответа. Если при отправке сообщения произойдет ошибка, обещание будет отклонено.
Обещания поддерживаются только в Manifest V3 и более поздних версиях. На других платформах необходимо использовать обратные вызовы.
События
onDetach
chrome.debugger.onDetach.addListener(
callback: function,
)
Активируется, когда браузер завершает сеанс отладки для вкладки. Это происходит, когда закрывается вкладка или для прикрепленной вкладки вызываются инструменты разработчика Chrome.
Параметры
-
обратный вызов
function
Параметр
callbackвыглядит следующим образом:(source: Debuggee, reason: DetachReason) => void
-
source
-
причина;
-
onEvent
chrome.debugger.onEvent.addListener(
callback: function,
)
Активируется при каждом событии инструментации, связанном с проблемами целевого объекта отладки.
Параметры
-
обратный вызов
function
Параметр
callbackвыглядит следующим образом:(source: DebuggerSession, method: string, params?: object) => void
-
source
-
method
string
-
params
объект необязательный
-