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
debugger
Uwaga 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
-
extensionId
string 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
string 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
-
extensionId
string 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
string 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.
-
tabId
number opcjonalny
Identyfikator karty, którą chcesz debugować.
-
targetId
string 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łączony
Wartość logiczna
Wartość true, jeśli debuger jest już podłączony.
-
extensionId
string opcjonalny
Identyfikator rozszerzenia, zdefiniowany, jeśli typ = „background_page”.
-
faviconUrl
string opcjonalny
Docelowy adres URL favikony.
-
id
ciąg znaków
Identyfikator miejsca docelowego.
-
tabId
number opcjonalny
Identyfikator karty, zdefiniowany, jeśli type == „page”.
-
tytuł
ciąg znaków
Tytuł strony docelowej.
-
typ
Typ celu.
-
URL
cią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
-
cel
Cel debugowania, do którego chcesz dołączyć.
-
requiredVersion
cią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.
-
callback
funkcja opcjonalna
Parametr
callback
wyglą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
-
cel
Obiekt docelowy debugowania, od którego chcesz się odłączyć.
-
callback
funkcja opcjonalna
Parametr
callback
wyglą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
-
callback
funkcja opcjonalna
Parametr
callback
wygląda tak:(result: TargetInfo[]) => void
-
wynik
Tablica 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
-
cel
Cel debugowania, do którego chcesz wysłać polecenie.
-
method
ciąg znaków
Nazwa metody. Powinna to być jedna z metod zdefiniowanych przez protokół 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
callback
wyglą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ś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
-
callback
funkcja
Parametr
callback
wyglą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
-
callback
funkcja
Parametr
callback
wygląda tak:(source: DebuggerSession, method: string, params?: object) => void
-
źródło
-
method
ciąg znaków
-
parametry,
obiekt opcjonalny
-