refresh date: 2026-09-25 robots: noindex
Opis
Interfejs API chrome.debugger służy jako alternatywny transport dla protokołu zdalnego debugowania w Chrome. Użyj chrome.debugger, aby dołączyć do co najmniej jednej karty i instrumentować interakcje sieciowe, debugować JavaScript, mutować DOM i CSS oraz wykonywać inne czynności. Użyj właściwości Debuggee tabId, aby kierować karty za pomocą sendCommand i kierować zdarzenia według tabId z wywołań zwrotnych onEvent.
Uprawnienia
debuggerUwaga dotycząca bezpieczeństwa
Ze względów bezpieczeństwa interfejs API chrome.debugger nie zapewnia dostępu do wszystkich domen protokołu Narzędzi deweloperskich w Chrome. Dostępne domeny: 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 i WebAuthn.
Plik manifestu
Aby korzystać z tego interfejsu API, musisz zadeklarować uprawnienie "debugger" w pliku manifestu rozszerzenia.
{
"name": "My extension",
...
"permissions": [
"debugger",
],
...
}
Przykłady
Aby wypróbować ten interfejs API, zainstaluj przykład interfejsu API debuggera z repozytorium chrome-extension-samples.
Typy
Debuggee
Identyfikator debugowanego elementu. Należy podać tabId, extensionId lub targetId
Właściwości
-
extensionId
ciąg znaków opcjonalny
Identyfikator rozszerzenia, które chcesz debugować. Dołączenie do strony rozszerzenia w tle jest możliwe tylko wtedy, gdy używany jest przełącznik wiersza poleceń
--silent-debugger-extension-api. -
tabId
number optional
Identyfikator karty, którą chcesz debugować.
-
targetId
ciąg znaków opcjonalny
Identyfikator celu debugowania.
DebuggerSession
Identyfikator sesji debugera. Należy podać tabId, extensionId lub targetId. Dodatkowo można podać opcjonalny parametr sessionId. Jeśli sessionId jest określony dla argumentów wysyłanych z onEvent, oznacza to, że zdarzenie pochodzi z sesji protokołu podrzędnego w ramach sesji debugowania głównego. Jeśli identyfikator sessionId jest określony podczas przekazywania do sendCommand, jest on kierowany na sesję protokołu podrzędnego w ramach sesji debugowania głównego.
Właściwości
-
extensionId
ciąg znaków opcjonalny
Identyfikator rozszerzenia, które chcesz debugować. Dołączenie do strony rozszerzenia w tle jest możliwe tylko wtedy, gdy używany jest przełącznik wiersza poleceń
--silent-debugger-extension-api. -
sessionId
ciąg znaków opcjonalny
Nieprzejrzysty identyfikator sesji protokołu narzędzi deweloperskich w Chrome. Identyfikuje sesję podrzędną w sesji głównej identyfikowanej przez tabId, extensionId lub targetId.
-
tabId
number optional
Identyfikator karty, którą chcesz debugować.
-
targetId
ciąg znaków opcjonalny
Identyfikator celu debugowania.
DetachReason
Przyczyna zakończenia połączenia.
Typ wyliczeniowy
"target_closed"
"canceled_by_user"
TargetInfo
Informacje o celu debugowania
Właściwości
-
podłączony
wartość logiczna
Prawda, jeśli debuger jest już dołączony.
-
extensionId
ciąg znaków opcjonalny
Identyfikator rozszerzenia, zdefiniowany, jeśli typ = „background_page”.
-
faviconUrl
ciąg znaków opcjonalny
Docelowy adres URL favikony.
-
id
tekst
Identyfikator elementu docelowego.
-
tabId
number optional
Identyfikator karty, zdefiniowany, jeśli type == 'page'.
-
tytuł
tekst
Tytuł strony docelowej.
-
typ
Typ celu.
-
URL
tekst
Docelowy URL.
TargetInfoType
Typ celu.
Typ wyliczeniowy
"page"
"background_page"
"worker"
"other"
Metody
attach()
chrome.debugger.attach(
target: Debuggee,
requiredVersion: string,
callback?: function,
): Promise<void>
Dołącza debuger do danego celu.
Parametry
-
cel
Cel debugowania, do którego chcesz dołączyć.
-
requiredVersion
tekst
Wymagana wersja protokołu debugowania („0.1”). Można dołączyć tylko do debugowanego programu z pasującą wersją główną i większą lub równą wersją podrzędną. Listę wersji protokołu znajdziesz tutaj.
-
callback
function opcjonalne
Parametr
callbackwygląda tak:() => void
Zwroty
-
thought Promise<void>
Chrome 96 lub nowsza wersjaRozwiązuje problem po powodzeniu lub niepowodzeniu operacji dołączania. Obietnica jest rozwiązywana bez wartości. Jeśli dołączenie się nie powiedzie, obietnica zostanie odrzucona.
Obiekty Promise są obsługiwane tylko w przypadku platformy Manifest V3 i nowszych. Na innych platformach należy używać wywołań zwrotnych.
detach()
chrome.debugger.detach(
target: Debuggee,
callback?: function,
): Promise<void>
Odłącza debuger od danego celu.
Parametry
-
cel
Cel debugowania, od którego chcesz się odłączyć.
-
callback
function opcjonalne
Parametr
callbackwygląda tak:() => void
Zwroty
-
thought Promise<void>
Chrome 96 lub nowsza wersjaRozwiązuje problem po powodzeniu lub niepowodzeniu operacji odłączenia. Obietnica jest rozwiązywana bez wartości. Jeśli odłączenie się nie powiedzie, obietnica zostanie odrzucona.
Obiekty Promise są obsługiwane tylko w przypadku platformy Manifest V3 i nowszych. Na innych platformach należy używać wywołań zwrotnych.
getTargets()
chrome.debugger.getTargets(
callback?: function,
): Promise<TargetInfo[]>
Zwraca listę dostępnych miejsc docelowych debugowania.
Parametry
-
callback
function opcjonalne
Parametr
callbackwygląda tak:(result: TargetInfo[]) => void
-
wynik
Tablica obiektów TargetInfo odpowiadających dostępnym elementom docelowym debugowania.
-
Zwroty
-
Promise<TargetInfo[]>
Chrome 96 lub nowsza wersjaObiekty Promise są obsługiwane tylko w przypadku platformy Manifest V3 i nowszych. Na innych platformach należy używać wywołań zwrotnych.
sendCommand()
chrome.debugger.sendCommand(
target: DebuggerSession,
method: string,
commandParams?: object,
callback?: function,
): Promise<object | undefined>
Wysyła podane polecenie do celu debugowania.
Parametry
-
cel
Cel debugowania, do którego chcesz wysłać polecenie.
-
method
tekst
Nazwa metody. Powinna to być jedna z metod zdefiniowanych przez protokół zdalnego debugowania.
-
commandParams
object opcjonalny
Obiekt JSON z parametrami żądania. Ten obiekt musi być zgodny ze schematem parametrów zdalnego debugowania dla danej metody.
-
callback
function opcjonalne
Parametr
callbackwygląda tak:(result?: object) => void
-
wynik
object opcjonalny
Obiekt JSON z odpowiedzią. Struktura odpowiedzi różni się w zależności od nazwy metody i jest określana przez atrybut „returns” opisu polecenia w protokole zdalnego debugowania.
-
Zwroty
-
Promise<object | undefined>
Chrome 96 lub nowsza wersjaTreść odpowiedzi. Jeśli podczas publikowania wiadomości wystąpi błąd, obietnica zostanie odrzucona.
Obiekty Promise są obsługiwane tylko w przypadku platformy Manifest V3 i nowszych. Na innych platformach należy używać wywołań zwrotnych.
Wydarzenia
onDetach
chrome.debugger.onDetach.addListener(
callback: function,
)
Uruchamiane, gdy przeglądarka kończy sesję debugowania karty. Dzieje się tak, gdy karta jest zamykana lub gdy narzędzia deweloperskie w Chrome są wywoływane na dołączonej karcie.
Parametry
-
callback
funkcja
Parametr
callbackwygląda tak:(source: Debuggee, reason: DetachReason) => void
-
źródło
-
reason
-
onEvent
chrome.debugger.onEvent.addListener(
callback: function,
)
Uruchamiane za każdym razem, gdy zdarzenie instrumentacji debuguje problemy z elementem docelowym.
Parametry
-
callback
funkcja
Parametr
callbackwygląda tak:(source: DebuggerSession, method: string, params?: object) => void
-
źródło
-
method
tekst
-
params
object opcjonalny
-