Opis
Interfejs chrome.debugger API służy jako alternatywny transport dla protokołu zdalnego debugowania Chrome. Użyj chrome.debugger, aby dołączyć do co najmniej 1 karty i instrumentować interakcje sieciowe, debugować JavaScript, modyfikować DOM i CSS oraz wykonywać inne czynności. Użyj właściwości Debuggee tabId, aby kierować zdarzenia na karty z właściwością sendCommand i kierować zdarzenia według właściwości 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 obiektu. Należy określić tabId, extensionId lub targetId
Właściwości
- 
    extensionIdstring 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.
- 
    tabIdnumber opcjonalny Identyfikator karty, którą chcesz debugować. 
- 
    targetIdstring opcjonalny Nieprzezroczysty identyfikator debugowanego celu. 
DebuggerSession
Identyfikator sesji debugera. Musisz określić 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 sendCommand określono sessionId, jest ono kierowane do sesji protokołu podrzędnego w sesji debugowania głównego.
Właściwości
- 
    extensionIdstring 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.
- 
    sessionIdstring opcjonalny Nieprzejrzysty identyfikator sesji protokołu narzędzi deweloperskich w Chrome. Wskazuje sesję podrzędną w sesji głównej zidentyfikowanej przez tabId, extensionId lub targetId. 
- 
    tabIdnumber opcjonalny Identyfikator karty, którą chcesz debugować. 
- 
    targetIdstring opcjonalny Nieprzezroczysty identyfikator debugowanego celu. 
DetachReason
Przyczyna zakończenia połączenia.
Typ wyliczeniowy
„target_closed” 
 
„canceled_by_user” 
 
TargetInfo
Informacje o obiekcie debugowania
Właściwości
- 
    podłączonyWartość logiczna Wartość true, jeśli debuger jest już podłączony. 
- 
    extensionIdstring opcjonalny Identyfikator rozszerzenia, zdefiniowany, jeśli typ = „background_page”. 
- 
    faviconUrlstring opcjonalny Docelowy adres URL favikony. 
- 
    idciąg znaków Identyfikator miejsca docelowego. 
- 
    tabIdnumber opcjonalny Identyfikator karty, zdefiniowany, jeśli type == „page”. 
- 
    tytułciąg znaków Tytuł strony docelowej. 
- 
    typTyp celu. 
- 
    URLciąg znaków 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 elementu docelowego.
Parametry
- 
    celCel debugowania, do którego chcesz dołączyć. 
- 
    requiredVersionciąg znaków Wymagana wersja protokołu debugowania („0.1”). Do debugowanego programu można dołączyć tylko debuger o pasującej wersji głównej i wersji podrzędnej równej lub nowszej. Listę wersji protokołu znajdziesz tutaj. 
- 
    callbackfunkcja opcjonalna Parametr callbackwygląda tak:() => void 
Zwroty
- 
            Promise<void> Chrome w wersji 96 lub nowszejObietnice 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
- 
    celObiekt docelowy debugowania, od którego chcesz się odłączyć. 
- 
    callbackfunkcja opcjonalna Parametr callbackwygląda tak:() => void 
Zwroty
- 
            Promise<void> Chrome w wersji 96 lub nowszejObietnice 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
- 
    callbackfunkcja opcjonalna Parametr callbackwygląda tak:(result: TargetInfo[]) => void - 
    wynikTablica obiektów TargetInfo odpowiadających dostępnym celom debugowania. 
 
- 
    
Zwroty
- 
            Promise<TargetInfo[]> Chrome w wersji 96 lub nowszejObietnice 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
- 
    celCel debugowania, do którego chcesz wysłać polecenie. 
- 
    methodciąg znaków Nazwa metody. Powinna to być jedna z metod zdefiniowanych przez protokół zdalnego debugowania. 
- 
    commandParamsobiekt opcjonalny Obiekt JSON z parametrami żądania. Ten obiekt musi być zgodny ze schematem parametrów debugowania zdalnego dla danej metody. 
- 
    callbackfunkcja opcjonalna Parametr callbackwygląda tak:(result?: object) => void - 
    wynikobiekt opcjonalny Obiekt JSON z odpowiedzią. Struktura odpowiedzi różni się w zależności od nazwy metody i jest określona przez atrybut „returns” w opisie polecenia w protokole zdalnego debugowania. 
 
- 
    
Zwroty
- 
            Promise<object | undefined> Chrome w wersji 96 lub nowszejObietnice 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,
)
Uruchamiane, gdy przeglądarka zakończy sesję debugowania karty. Dzieje się tak, gdy zamykana jest karta lub gdy w przypadku dołączonej karty wywoływane są Narzędzia deweloperskie w Chrome.
Parametry
- 
    callbackfunkcja Parametr callbackwygląda tak:(source: Debuggee, reason: DetachReason) => void - 
    źródło
- 
    powód,
 
- 
    
onEvent
chrome.debugger.onEvent.addListener(
callback: function,
)
Uruchamiane za każdym razem, gdy wystąpi zdarzenie instrumentacji związane z problemami z elementem docelowym debugowania.
Parametry
- 
    callbackfunkcja Parametr callbackwygląda tak:(source: DebuggerSession, method: string, params?: object) => void - 
    źródło
- 
    methodciąg znaków 
- 
    parametry,obiekt opcjonalny 
 
-