Opis
Interfejs API chrome.debugger
służy jako alternatywny środek transportu dla protokołu zdalnego debugowania w Chrome. Przy użyciu elementu chrome.debugger
możesz dołączyć do co najmniej 1 karty w celu instrumentowania interakcji w sieci, debugowania JavaScriptu, zmieniania DOM i CSS oraz wykonywania innych działań. Użyj właściwości tabId
Debuggee
, aby kierować na karty z parametrem sendCommand
i kierować zdarzenia według parametru tabId
z onEvent
wywołań zwrotnych.
Uprawnienia
debugger
Uwagi dotyczące bezpieczeństwa
Ze względów bezpieczeństwa interfejs API chrome.debugger
nie zapewnia dostępu do wszystkich Narzędzi deweloperskich w Chrome
Protocol Domains (Domeny protokołu). Dostępne domeny: Ułatwienia dostępu,
Kontrole, CacheStorage, Konsola,
CSS, baza danych, debuger, DOM,
DOMDebugger, DOMSnapshot
Emulacja, pobieranie, IO, dane wejściowe,
Inspektor, dziennik, sieć, nakładka,
Strona, Wydajność, Profiler,
Środowisko wykonawcze, Miejsce na dane, Miejsce docelowe, Śledzenie,
WebAudio i WebAuthn.
Plik manifestu
Aby używać 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ładowy interfejs API debugowania ze strony chrome-extension-samples. z repozytorium.
Typy
Debuggee
Identyfikator debugowania. Musisz określić identyfikator tabId, identyfikator rozszerzenia lub identyfikator docelowy
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 jest używany przełącznik wiersza poleceń
--silent-debugger-extension-api
. -
tabId
liczba opcjonalnie
Identyfikator karty, którą chcesz debugować.
-
targetId
ciąg znaków opcjonalny
Nieczytelny identyfikator celu debugowania.
DebuggerSession
Identyfikator sesji debugera. Należy określić identyfikator tabId, identyfikator rozszerzenia lub identyfikator docelowy. Możesz też podać opcjonalny identyfikator sesji. Jeśli parametr sessionId jest określony w przypadku argumentów wysyłanych z metody onEvent
, oznacza to, że zdarzenie pochodzi z sesji protokołu podrzędnego w ramach sesji debugowania głównego. Jeśli parametr sessionId jest określony podczas przekazywania do sendCommand
, to kierowanie odbywa się 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 jest używany przełącznik wiersza poleceń
--silent-debugger-extension-api
. -
sessionId
ciąg znaków opcjonalny
Nieprzezroczysty identyfikator sesji protokołu deweloperskiego w Chrome. Identyfikuje sesję podrzędną w ramach sesji głównej identyfikowanej za pomocą identyfikatora tabId, identyfikatora rozszerzenia lub identyfikatora docelowego.
-
tabId
liczba opcjonalnie
Identyfikator karty, którą chcesz debugować.
-
targetId
ciąg znaków opcjonalny
Nieczytelny 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ść prawda, jeśli debuger jest już podłączony.
-
extensionId
ciąg znaków opcjonalny
Identyfikator rozszerzenia określony, jeśli typ = „background_page”.
-
faviconUrl
ciąg znaków opcjonalny
Docelowy adres URL favikony.
-
id
ciąg znaków
Identyfikator elementu docelowego.
-
tabId
liczba opcjonalnie
Identyfikator karty określony, jeśli typ == „strona”.
-
tytuł
ciąg znaków
Tytuł strony docelowej.
-
typ
Typ docelowy.
-
URL
ciąg znaków
Docelowy adres URL.
TargetInfoType
Typ docelowy.
Typ wyliczeniowy
"strona"
"background_page"
"worker"
"inna"
Metody
attach()
chrome.debugger.attach(
target: Debuggee,
requiredVersion: string,
callback?: function,
)
Podłącza debuger do danego miejsca docelowego.
Parametry
-
cel
Cel debugowania, do którego chcesz dołączyć.
-
requiredVersion
ciąg znaków
Wymagana wersja protokołu debugowania („0.1”). Do debugera można dołączyć tylko z pasującą wersją główną i wersją podrzędną większą lub równą. Listę wersji protokołów można znaleźć tutaj.
-
wywołanie zwrotne
funkcja optional
Parametr
callback
wygląda tak:() => void
Zwroty
-
Obietnica<void>
Chrome w wersji 96 lub nowszej, .Obietnice są obsługiwane tylko na platformie Manifest V3 i nowszych, inne platformy muszą używać wywołań zwrotnych.
detach()
chrome.debugger.detach(
target: Debuggee,
callback?: function,
)
Odłącza debuger od podanego miejsca docelowego.
Parametry
-
cel
Cel debugowania, od którego chcesz się odłączyć.
-
wywołanie zwrotne
funkcja optional
Parametr
callback
wygląda tak:() => void
Zwroty
-
Obietnica<void>
Chrome w wersji 96 lub nowszej, .Obietnice są obsługiwane tylko na platformie Manifest V3 i nowszych, inne platformy muszą używać wywołań zwrotnych.
getTargets()
chrome.debugger.getTargets(
callback?: function,
)
Zwraca listę dostępnych celów debugowania.
Parametry
-
wywołanie zwrotne
funkcja optional
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 nowszej, .Obietnice są obsługiwane tylko na platformie Manifest V3 i nowszych, inne platformy muszą używać wywołań zwrotnych.
sendCommand()
chrome.debugger.sendCommand(
target: DebuggerSession,
method: string,
commandParams?: object,
callback?: function,
)
Wysyła podane polecenie do środowiska docelowego debugowania.
Parametry
-
cel
Cel debugowania, do którego chcesz wysłać polecenie.
-
method
ciąg znaków
Nazwa metody. Powinna być jedną z metod zdefiniowanych przez protokół zdalnego debugowania.
-
commandParams
obiekt opcjonalny
Obiekt JSON z parametrami żądania. Ten obiekt musi być zgodny ze schematem parametrów zdalnego debugowania dla danej metody.
-
wywołanie zwrotne
funkcja optional
Parametr
callback
wygląda tak:(result?: object) => void
-
wynik
obiekt opcjonalny
Obiekt JSON z odpowiedzią. Struktura odpowiedzi zależy od nazwy metody i jest zdefiniowana przez argumenty „returns” w polu opisu polecenia w protokole zdalnego debugowania.
-
Zwroty
-
Promise<object | niezdefiniowane>
Chrome w wersji 96 lub nowszej, .Obietnice są obsługiwane tylko na platformie 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 na karcie. Dzieje się tak, gdy zamykasz kartę lub wywołujesz Narzędzia deweloperskie w Chrome dla dołączonej karty.
Parametry
-
wywołanie zwrotne
funkcja
Parametr
callback
wygląda tak:(source: Debuggee, reason: DetachReason) => void
-
źródło
-
powód
-
onEvent
chrome.debugger.onEvent.addListener(
callback: function,
)
Uruchamiany za każdym razem, gdy debugowanie problemów docelowych jest zdarzeniem instrumentacji.
Parametry
-
wywołanie zwrotne
funkcja
Parametr
callback
wygląda tak:(source: DebuggerSession, method: string, params?: object) => void
-
źródło
-
method
ciąg znaków
-
parametry
obiekt opcjonalny
-