chrome.debugger

refresh date: 2026-09-25 robots: noindex

Opis

Interfejs API chrome.debugger służy jako alternatywny transport dla protokołu zdalnego debugowania w Chrome. Użyj chrome.debugger, aby dołączyć do co najmniej jednej karty i instrumentować interakcje sieciowe, debugować JavaScript, mutować DOM i CSS oraz wykonywać inne czynności. Użyj właściwości Debuggee tabId, aby kierować karty za pomocą sendCommand i kierować zdarzenia według tabId z wywołań zwrotnych onEvent.

Uprawnienia

debugger

Uwaga dotycząca bezpieczeństwa

Ze względów bezpieczeństwa interfejs API chrome.debugger nie zapewnia dostępu do wszystkich domen protokołu Narzędzi deweloperskich w Chrome. Dostępne domeny: Accessibility, Audits, CacheStorage, Console, CSS, Database, Debugger, DOM, DOMDebugger, DOMSnapshot, Emulation, Fetch, IO, Input, Inspector, Log, Network, Overlay, Page, Performance, 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 debuggera z repozytorium chrome-extension-samples.

Typy

Debuggee

Identyfikator debugowanego elementu. Należy podać tabId, extensionId lub targetId

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 używany jest przełącznik wiersza poleceń --silent-debugger-extension-api.

  • tabId

    number optional

    Identyfikator karty, którą chcesz debugować.

  • targetId

    ciąg znaków opcjonalny

    Identyfikator celu debugowania.

DebuggerSession

Chrome 125 lub nowsza wersja

Identyfikator sesji debugera. Należy podać tabId, extensionId lub targetId. Dodatkowo można podać opcjonalny parametr sessionId. Jeśli sessionId jest określony dla argumentów wysyłanych z onEvent, oznacza to, że zdarzenie pochodzi z sesji protokołu podrzędnego w ramach sesji debugowania głównego. Jeśli identyfikator sessionId jest określony podczas przekazywania do sendCommand, jest on kierowany 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 używany jest przełącznik wiersza poleceń --silent-debugger-extension-api.

  • sessionId

    ciąg znaków opcjonalny

    Nieprzejrzysty identyfikator sesji protokołu narzędzi deweloperskich w Chrome. Identyfikuje sesję podrzędną w sesji głównej identyfikowanej przez tabId, extensionId lub targetId.

  • tabId

    number optional

    Identyfikator karty, którą chcesz debugować.

  • targetId

    ciąg znaków opcjonalny

    Identyfikator celu debugowania.

DetachReason

Chrome 44 lub nowsza wersja

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

    Prawda, jeśli debuger jest już dołączony.

  • extensionId

    ciąg znaków opcjonalny

    Identyfikator rozszerzenia, zdefiniowany, jeśli typ = „background_page”.

  • faviconUrl

    ciąg znaków opcjonalny

    Docelowy adres URL favikony.

  • id

    tekst

    Identyfikator elementu docelowego.

  • tabId

    number optional

    Identyfikator karty, zdefiniowany, jeśli type == 'page'.

  • tytuł

    tekst

    Tytuł strony docelowej.

  • Typ celu.

  • URL

    tekst

    Docelowy URL.

TargetInfoType

Chrome 44 lub nowsza wersja

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

Parametry

  • cel

    Cel debugowania, do którego chcesz dołączyć.

  • requiredVersion

    tekst

    Wymagana wersja protokołu debugowania („0.1”). Można dołączyć tylko do debugowanego programu z pasującą wersją główną i większą lub równą wersją podrzędną. Listę wersji protokołu znajdziesz tutaj.

  • callback

    function opcjonalne

    Parametr callback wygląda tak:

    () => void

Zwroty

  • thought Promise<void>

    Chrome 96 lub nowsza wersja

    Rozwiązuje problem po powodzeniu lub niepowodzeniu operacji dołączania. Obietnica jest rozwiązywana bez wartości. Jeśli dołączenie się nie powiedzie, obietnica zostanie odrzucona.

    Obiekty Promise są obsługiwane tylko w przypadku platformy Manifest V3 i nowszych. Na innych platformach należy używać wywołań zwrotnych.

detach()

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

Odłącza debuger od danego celu.

Parametry

  • cel

    Cel debugowania, od którego chcesz się odłączyć.

  • callback

    function opcjonalne

    Parametr callback wygląda tak:

    () => void

Zwroty

  • thought Promise<void>

    Chrome 96 lub nowsza wersja

    Rozwiązuje problem po powodzeniu lub niepowodzeniu operacji odłączenia. Obietnica jest rozwiązywana bez wartości. Jeśli odłączenie się nie powiedzie, obietnica zostanie odrzucona.

    Obiekty Promise są obsługiwane tylko w przypadku platformy Manifest V3 i nowszych. Na innych platformach należy używać wywołań zwrotnych.

getTargets()

Obietnica
chrome.debugger.getTargets(
  callback?: function,
)
: Promise<TargetInfo[]>

Zwraca listę dostępnych miejsc docelowych debugowania.

Parametry

  • callback

    function opcjonalne

    Parametr callback wygląda tak:

    (result: TargetInfo[]) => void

    • wynik

      Tablica obiektów TargetInfo odpowiadających dostępnym elementom docelowym debugowania.

Zwroty

  • Promise<TargetInfo[]>

    Chrome 96 lub nowsza wersja

    Obiekty Promise są obsługiwane tylko w przypadku platformy Manifest V3 i nowszych. Na innych platformach należy 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

    tekst

    Nazwa metody. Powinna to być jedna z metod zdefiniowanych przez protokół zdalnego debugowania.

  • commandParams

    object opcjonalny

    Obiekt JSON z parametrami żądania. Ten obiekt musi być zgodny ze schematem parametrów zdalnego debugowania dla danej metody.

  • callback

    function opcjonalne

    Parametr callback wygląda tak:

    (result?: object) => void

    • wynik

      object opcjonalny

      Obiekt JSON z odpowiedzią. Struktura odpowiedzi różni się w zależności od nazwy metody i jest określana przez atrybut „returns” opisu polecenia w protokole zdalnego debugowania.

Zwroty

  • Promise<object | undefined>

    Chrome 96 lub nowsza wersja

    Treść odpowiedzi. Jeśli podczas publikowania wiadomości wystąpi błąd, obietnica zostanie odrzucona.

    Obiekty Promise są obsługiwane tylko w przypadku platformy Manifest V3 i nowszych. Na innych platformach należy używać wywołań zwrotnych.

Wydarzenia

onDetach

chrome.debugger.onDetach.addListener(
  callback: function,
)

Uruchamiane, gdy przeglądarka kończy sesję debugowania karty. Dzieje się tak, gdy karta jest zamykana lub gdy narzędzia deweloperskie w Chrome są wywoływane na dołączonej karcie.

Parametry

onEvent

chrome.debugger.onEvent.addListener(
  callback: function,
)

Uruchamiane za każdym razem, gdy zdarzenie instrumentacji debuguje problemy z elementem docelowym.

Parametry

  • callback

    funkcja

    Parametr callback wygląda tak:

    (source: DebuggerSession, method: string, params?: object) => void