Описание
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
Идентификатор сеанса отладчика. Необходимо указать один из tabId, ExtensionId или TargetId. Кроме того, можно указать необязательный sessionId. Если sessionId указан для аргументов, отправленных из onEvent
, это означает, что событие поступает из сеанса дочернего протокола в корневом сеансе отлаживаемой программы. Если sessionId указан при передаче sendCommand
, он нацелен на сеанс дочернего протокола в корневом сеансе отлаживаемого объекта.
Характеристики
- идентификатор расширения
строка необязательна
Идентификатор расширения, которое вы собираетесь отлаживать. Присоединение к фоновой странице расширения возможно только при использовании переключателя командной строки
--silent-debugger-extension-api
. - идентификатор сеанса
строка необязательна
Непрозрачный идентификатор сеанса протокола Chrome DevTools. Идентифицирует дочерний сеанс в корневом сеансе, указанном tabId, ExtensionId или TargetId.
- идентификатор табуляции
номер необязательно
Идентификатор вкладки, которую вы собираетесь отлаживать.
- идентификатор цели
строка необязательна
Непрозрачный идентификатор цели отладки.
DetachReason
Причина прекращения соединения.
Перечисление
"target_closed" "cancelled_by_user"
TargetInfo
Отладка целевой информации
Характеристики
- прикрепил
логическое значение
True, если отладчик уже подключен.
- идентификатор расширения
строка необязательна
Идентификатор расширения, определенный, если type = 'background_page'.
- faviconUrl
строка необязательна
Целевой URL-адрес значка.
- идентификатор
нить
Идентификатор цели.
- идентификатор табуляции
номер необязательно
Идентификатор вкладки, определенный, если type == 'page'.
- заголовок
нить
Заголовок целевой страницы.
- тип
Тип цели.
- URL
нить
Целевой URL.
TargetInfoType
Тип цели.
Перечисление
"страница" "фоновая_страница" "работник" "другой"
Методы
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.
Параметры
- перезвонить
функция
Параметр
callback
выглядит так:(source: Debuggee, reason: DetachReason) => void
- источник
- причина
onEvent
chrome.debugger.onEvent.addListener(
callback: function,
)
Вызывается всякий раз, когда цель отладки выдает событие инструментирования.
Параметры
- перезвонить
функция
Параметр
callback
выглядит так:(source: DebuggerSession, method: string, params?: object) => void
- источник
- метод
нить
- параметры
объект необязательный