chrome.debugger

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

Chrome w wersji 125 lub nowszej .

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

Chrome w wersji 44 lub nowszej .

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 docelowy.

  • URL

    ciąg znaków

    Docelowy adres URL.

TargetInfoType

Chrome w wersji 44 lub nowszej .

Typ docelowy.

Typ wyliczeniowy

"strona"

"background_page"

"worker"

"inna"

Metody

attach()

Obietnica .
chrome.debugger.attach(
  target: Debuggee,
  requiredVersion: string,
  callback?: function,
)

Podłącza debuger do danego miejsca docelowego.

Parametry

  • 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()

Obietnica .
chrome.debugger.detach(
  target: Debuggee,
  callback?: function,
)

Odłącza debuger od podanego miejsca docelowego.

Parametry

  • 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()

Obietnica .
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&lt;TargetInfo[]&gt;

    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()

Obietnica .
chrome.debugger.sendCommand(
  target: DebuggerSession,
  method: string,
  commandParams?: object,
  callback?: function,
)

Wysyła podane polecenie do środowiska docelowego debugowania.

Parametry

  • 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&lt;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

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