chrome.debugger

refresh date: 2026-09-25 robots: noindex

Opis

Interfejs chrome.debugger API służy jako alternatywny transport dla protokołu zdalnego debugowania w Chrome. Użyj chrome.debugger, aby dołączyć do co najmniej 1 karty i instrumentować interakcje sieciowe, debugować JavaScript, zmieniać DOM i CSS oraz wykonywać inne czynności. Użyj właściwości Debuggee tabId, aby kierować zdarzenia na karty z 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 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 procesu. Musisz podać tabId, extensionId lub targetId.

Właściwości

  • extensionId

    ciąg znaków 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

    ciąg znaków opcjonalny

    Nieprzezroczysty identyfikator celu debugowania.

DebuggerSession

Chrome 125 lub nowsza

Identyfikator sesji debugera. Musisz podać 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 funkcji sendCommand określono identyfikator sessionId, funkcja ta będzie kierowana do sesji 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łączanie do strony tła rozszerzenia 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 zidentyfikowanej przez tabId, extensionId lub targetId.

  • tabId

    number opcjonalny

    Identyfikator karty, którą chcesz debugować.

  • targetId

    ciąg znaków opcjonalny

    Nieprzezroczysty identyfikator celu debugowania.

DetachReason

Chrome 44 lub nowsza

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ść „true”, jeśli debuger jest już dołączony.

  • extensionId

    ciąg znaków opcjonalny

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

  • faviconUrl

    ciąg znaków opcjonalny

    Docelowy adres URL favikony.

  • id

    tekst

    Identyfikator miejsca docelowego.

  • tabId

    number opcjonalny

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

  • tytuł

    tekst

    Tytuł strony docelowej.

  • Typ celu.

  • URL

    tekst

    Docelowy adres URL.

TargetInfoType

Chrome 44 lub nowsza

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 debugowania, do którego chcesz się dołączyć.

  • requiredVersion

    tekst

    Wymagana wersja protokołu debugowania („0.1”). Do debugowanego programu można dołączyć tylko wtedy, gdy jego wersja główna jest zgodna z wersją główną debugera, a wersja podrzędna jest od niej większa lub równa. Listę wersji protokołu znajdziesz tutaj.

  • callback

    funkcja opcjonalna

    Parametr callback wygląda tak:

    () => void

Zwroty

  • Promise<void>

    Chrome 96 lub nowsza

    Zwraca obietnicę po zakończeniu operacji dołączania (powodzeniem lub niepowodzeniem). Obietnica jest spełniona bez wartości. Jeśli dołączenie się nie powiedzie, obietnica zostanie odrzucona.

    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

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

  • callback

    funkcja opcjonalna

    Parametr callback wygląda tak:

    () => void

Zwroty

  • Promise<void>

    Chrome 96 lub nowsza

    Zwraca obietnicę po zakończeniu operacji odłączania (z powodzeniem lub nie). Obietnica jest spełniona bez wartości. Jeśli odłączenie się nie powiedzie, obietnica zostanie odrzucona.

    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 96 lub nowsza

    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

    tekst

    Nazwa metody. Musi to być jedna z metod zdefiniowanych w protokole 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ślana przez atrybut „returns” w opisie polecenia w protokole zdalnego debugowania.

Zwroty

  • Promise<object | undefined>

    Chrome 96 lub nowsza

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

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

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

Parametry

onEvent

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

Wywoływane za każdym razem, gdy występuje zdarzenie instrumentacji problemów z elementem docelowym debugowania.

Parametry

  • callback

    funkcja

    Parametr callback wygląda tak:

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