chrome.debugger

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

Chrome 125 lub nowsza

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

Chrome 44 lub nowszy

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

  • URL

    ciąg znaków

    Docelowy adres URL.

TargetInfoType

Chrome 44 lub nowszy

Typ celu.

Typ wyliczeniowy

„page”

"background_page"

„worker”

„other”

Metody

attach()

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

Dołącza debuger do danego elementu docelowego.

Parametry

  • 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 nowszej

    Obietnice są obsługiwane tylko w przypadku platformy Manifest V3 i nowszych. Inne platformy muszą używać wywołań zwrotnych.

detach()

Obietnica
chrome.debugger.detach(
  target: Debuggee,
  callback?: function,
)
: Promise<void>

Odłącza debuger od danego miejsca docelowego.

Parametry

  • 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 nowszej

    Obietnice są obsługiwane tylko w przypadku platformy Manifest V3 i nowszych. Inne platformy muszą używać wywołań zwrotnych.

getTargets()

Obietnica
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 nowszej

    Obietnice są obsługiwane tylko w przypadku platformy 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,
)
: Promise<object | undefined>

Wysyła podane polecenie do celu debugowania.

Parametry

  • 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 nowszej

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

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

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