refresh date: 2026-09-25 robots: noindex
Opis
Interfejs chrome.debugger API służy jako alternatywny transport dla protokołu zdalnego debugowania w Chrome. Użyj chrome.debugger, aby dołączyć do co najmniej 1 karty i instrumentować interakcje sieciowe, debugować JavaScript, zmieniać DOM i CSS oraz wykonywać inne czynności. Użyj właściwości Debuggee tabId, aby kierować zdarzenia na karty z 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 chrome.debugger API nie zapewnia dostępu do wszystkich domen protokołu Narzędzi deweloperskich w Chrome. Dostępne domeny to: 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 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 debugera z repozytorium chrome-extension-samples.
Typy
Debuggee
Identyfikator debugowanego procesu. Musisz podać tabId, extensionId lub targetId.
Właściwości
-
extensionId
ciąg znaków opcjonalny
Identyfikator rozszerzenia, które chcesz debugować. Dołączanie do strony tła rozszerzenia jest możliwe tylko wtedy, gdy używany jest przełącznik wiersza poleceń
--silent-debugger-extension-api. -
tabId
number opcjonalny
Identyfikator karty, którą chcesz debugować.
-
targetId
ciąg znaków opcjonalny
Nieprzezroczysty identyfikator celu debugowania.
DebuggerSession
Identyfikator sesji debugera. Musisz podać jeden z tych identyfikatorów: tabId, extensionId lub targetId. Dodatkowo można podać opcjonalny identyfikator sesji. Jeśli w przypadku argumentów wysyłanych z onEvent określono sessionId, oznacza to, że zdarzenie pochodzi z sesji protokołu podrzędnego w ramach sesji głównej debugowanego procesu. Jeśli podczas przekazywania do funkcji sendCommand określono identyfikator sessionId, funkcja ta będzie kierowana do sesji 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łączanie do strony tła rozszerzenia 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 zidentyfikowanej przez tabId, extensionId lub targetId.
-
tabId
number opcjonalny
Identyfikator karty, którą chcesz debugować.
-
targetId
ciąg znaków opcjonalny
Nieprzezroczysty 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
Wartość „true”, jeśli debuger jest już dołączony.
-
extensionId
ciąg znaków opcjonalny
Identyfikator rozszerzenia zdefiniowany, jeśli typ to „background_page”.
-
faviconUrl
ciąg znaków opcjonalny
Docelowy adres URL favikony.
-
id
tekst
Identyfikator miejsca docelowego.
-
tabId
number opcjonalny
Identyfikator karty, zdefiniowany, jeśli type == 'page'.
-
tytuł
tekst
Tytuł strony docelowej.
-
typ
Typ celu.
-
URL
tekst
Docelowy adres 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 się dołączyć.
-
requiredVersion
tekst
Wymagana wersja protokołu debugowania („0.1”). Do debugowanego programu można dołączyć tylko wtedy, gdy jego wersja główna jest zgodna z wersją główną debugera, a wersja podrzędna jest od niej większa lub równa. Listę wersji protokołu znajdziesz tutaj.
-
callback
funkcja opcjonalna
Parametr
callbackwygląda tak:() => void
Zwroty
-
Promise<void>
Chrome 96 lub nowszaZwraca obietnicę po zakończeniu operacji dołączania (powodzeniem lub niepowodzeniem). Obietnica jest spełniona bez wartości. Jeśli dołączenie się nie powiedzie, obietnica zostanie odrzucona.
Obietnice są obsługiwane tylko w przypadku platformy Manifest V3 i nowszych. Inne platformy muszą używać wywołań zwrotnych.
detach()
chrome.debugger.detach(
target: Debuggee,
callback?: function,
): Promise<void>
Odłącza debuger od danego miejsca docelowego.
Parametry
-
cel
Cel debugowania, od którego chcesz się odłączyć.
-
callback
funkcja opcjonalna
Parametr
callbackwygląda tak:() => void
Zwroty
-
Promise<void>
Chrome 96 lub nowszaZwraca obietnicę po zakończeniu operacji odłączania (z powodzeniem lub nie). Obietnica jest spełniona bez wartości. Jeśli odłączenie się nie powiedzie, obietnica zostanie odrzucona.
Obietnice są obsługiwane tylko w przypadku platformy Manifest V3 i nowszych. Inne platformy muszą używać wywołań zwrotnych.
getTargets()
chrome.debugger.getTargets(
callback?: function,
): Promise<TargetInfo[]>
Zwraca listę dostępnych celów debugowania.
Parametry
-
callback
funkcja opcjonalna
Parametr
callbackwygląda tak:(result: TargetInfo[]) => void
-
wynik
Tablica obiektów TargetInfo odpowiadających dostępnym celom debugowania.
-
Zwroty
-
Promise<TargetInfo[]>
Chrome 96 lub nowszaObietnice są obsługiwane tylko w przypadku platformy Manifest V3 i nowszych. Inne platformy muszą 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. Musi to być jedna z metod zdefiniowanych w protokole zdalnego debugowania.
-
commandParams
obiekt opcjonalny
Obiekt JSON z parametrami żądania. Ten obiekt musi być zgodny ze schematem parametrów debugowania zdalnego dla danej metody.
-
callback
funkcja opcjonalna
Parametr
callbackwygląda tak:(result?: object) => void
-
wynik
obiekt opcjonalny
Obiekt JSON z odpowiedzią. Struktura odpowiedzi różni się w zależności od nazwy metody i jest określana przez atrybut „returns” w opisie polecenia w protokole zdalnego debugowania.
-
Zwroty
-
Promise<object | undefined>
Chrome 96 lub nowszaTreść odpowiedzi. Jeśli podczas publikowania wiadomości wystąpi błąd, obietnica zostanie odrzucona.
Obietnice są obsługiwane tylko w przypadku platformy Manifest V3 i nowszych. Inne platformy muszą używać wywołań zwrotnych.
Wydarzenia
onDetach
chrome.debugger.onDetach.addListener(
callback: function,
)
Wywoływane, gdy przeglądarka kończy sesję debugowania karty. Dzieje się tak, gdy karta jest zamykana lub gdy dla dołączonej karty wywoływane są Narzędzia deweloperskie w Chrome.
Parametry
-
callback
funkcja
Parametr
callbackwygląda tak:(source: Debuggee, reason: DetachReason) => void
-
źródło
-
powód,
-
onEvent
chrome.debugger.onEvent.addListener(
callback: function,
)
Wywoływane za każdym razem, gdy występuje zdarzenie instrumentacji problemów z elementem docelowym debugowania.
Parametry
-
callback
funkcja
Parametr
callbackwygląda tak:(source: DebuggerSession, method: string, params?: object) => void
-
źródło
-
method
tekst
-
params
obiekt opcjonalny
-