refresh date: 2026-09-25 robots: noindex
Описание
API chrome.debugger служит альтернативным транспортом для протокола удаленной отладки Chrome. Используйте chrome.debugger, чтобы подключиться к одной или нескольким вкладкам и отслеживать сетевое взаимодействие, отлаживать JavaScript, изменять DOM и CSS и выполнять другие действия. Используйте свойство tabId Debuggee, чтобы настроить таргетинг на вкладки с помощью 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
Строка (необязательно)
Идентификатор расширения, заданный, если type = '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"). Подключиться к отлаживаемому процессу можно только с соответствующей основной версией и промежуточной версией, которая не ниже, чем у отлаживаемого процесса. Список версий протокола можно найти здесь.
-
обратный вызов
function необязательно
Параметр
callbackвыглядит следующим образом:() => void
Возвраты
-
Promise<void>
Chrome 96 и более поздних версий;Разрешается, когда операция прикрепления завершается успешно или с ошибкой. Объект Promise распознается без значения. Если прикрепить не удастся, объект Promise будет отклонен.
Объекты Promise поддерживаются только в Manifest V3 и более поздних версиях. На других платформах нужно использовать обратные вызовы.
detach()
chrome.debugger.detach(
target: Debuggee,
callback?: function,
): Promise<void>
Отключает отладчик от указанной цели.
Параметры
-
target
Цель отладки, от которой нужно отсоединиться.
-
обратный вызов
function необязательно
Параметр
callbackвыглядит следующим образом:() => void
Возвраты
-
Promise<void>
Chrome 96 и более поздних версий;Разрешается, когда операция отсоединения завершается успешно или с ошибкой. Объект Promise распознается без значения. Если отсоединение не удается выполнить, объект возвращает отказ.
Объекты Promise поддерживаются только в Manifest V3 и более поздних версиях. На других платформах нужно использовать обратные вызовы.
getTargets()
chrome.debugger.getTargets(
callback?: function,
): Promise<TargetInfo[]>
Возвращает список доступных целей отладки.
Параметры
-
обратный вызов
function необязательно
Параметр
callbackвыглядит следующим образом:(result: TargetInfo[]) => void
-
Результат
Массив объектов TargetInfo, соответствующих доступным целям отладки.
-
Возвраты
-
Promise<TargetInfo[]>
Chrome 96 и более поздних версий;Объекты Promise поддерживаются только в Manifest V3 и более поздних версиях. На других платформах нужно использовать обратные вызовы.
sendCommand()
chrome.debugger.sendCommand(
target: DebuggerSession,
method: string,
commandParams?: object,
callback?: function,
): Promise<object | undefined>
Отправляет указанную команду в цель отладки.
Параметры
-
target
Цель отладки, которой нужно отправить команду.
-
method
string
Название метода. Должен быть одним из методов, определенных протоколом удаленной отладки.
-
commandParams
Объект (необязательно)
Объект JSON с параметрами запроса. Этот объект должен соответствовать схеме параметров удаленной отладки для заданного метода.
-
обратный вызов
function необязательно
Параметр
callbackвыглядит следующим образом:(result?: object) => void
-
Результат
Объект (необязательно)
Объект JSON с ответом. Структура ответа зависит от названия метода и определяется атрибутом returns в описании команды в протоколе удаленной отладки.
-
Возвраты
-
Promise<object | undefined>
Chrome 96 и более поздних версий;Тело ответа. Если при публикации сообщения произойдет ошибка, обещание будет отклонено.
Объекты Promise поддерживаются только в Manifest V3 и более поздних версиях. На других платформах нужно использовать обратные вызовы.
События
onDetach
chrome.debugger.onDetach.addListener(
callback: function,
)
Срабатывает, когда браузер завершает сеанс отладки для вкладки. Это происходит, когда вкладка закрывается или для нее вызываются инструменты разработчика Chrome.
Параметры
-
обратный вызов
function
Параметр
callbackвыглядит следующим образом:(source: Debuggee, reason: DetachReason) => void
-
source
-
reason
-
onEvent
chrome.debugger.onEvent.addListener(
callback: function,
)
Срабатывает, когда целевой объект отладки выдает событие инструментирования.
Параметры
-
обратный вызов
function
Параметр
callbackвыглядит следующим образом:(source: DebuggerSession, method: string, params?: object) => void
-
source
-
method
string
-
params
Объект (необязательно)
-