refresh date: 2026-09-25 robots: noindex
Beschreibung
Die chrome.debugger API dient als alternativer Transport für das Remote-Debugging-Protokoll von Chrome. Mit chrome.debugger können Sie einen oder mehrere Tabs anhängen, um die Netzwerkinteraktion zu instrumentieren, JavaScript zu debuggen, das DOM und CSS zu mutieren und vieles mehr. Verwenden Sie das Debuggee-Attribut tabId, um Tabs mit sendCommand anzusprechen und Ereignisse nach tabId aus onEvent-Callbacks weiterzuleiten.
Berechtigungen
debuggerSicherheitshinweis
Aus Sicherheitsgründen bietet die chrome.debugger API keinen Zugriff auf alle Chrome-Entwicklertools-Protokoll-Domains. Die verfügbaren Domains sind: 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 und WebAuthn.
Manifest
Sie müssen die Berechtigung "debugger" im Manifest Ihrer Erweiterung deklarieren, um diese API verwenden zu können.
{
"name": "My extension",
...
"permissions": [
"debugger",
],
...
}
Beispiele
Wenn Sie diese API ausprobieren möchten, installieren Sie das Debugger API-Beispiel aus dem Repository chrome-extension-samples.
Typen
Debuggee
Debuggee-ID. Es muss entweder „tabId“, „extensionId“ oder „targetId“ angegeben werden.
Attribute
-
extensionId
String optional
Die ID der Erweiterung, die Sie debuggen möchten. Das Anhängen an eine Hintergrundseite einer Erweiterung ist nur möglich, wenn der Befehlszeilenschalter
--silent-debugger-extension-apiverwendet wird. -
tabId
number optional
Die ID des Tabs, den Sie debuggen möchten.
-
targetId
String optional
Die intransparente ID des Debug-Ziels.
DebuggerSession
Debugger-Sitzungs-ID. Es muss entweder „tabId“, „extensionId“ oder „targetId“ angegeben werden. Zusätzlich kann eine optionale sessionId angegeben werden. Wenn „sessionId“ für Argumente angegeben ist, die von onEvent gesendet werden, bedeutet das, dass das Ereignis von einer untergeordneten Protokollsitzung innerhalb der Stamm-Debuggee-Sitzung stammt. Wenn „sessionId“ bei der Übergabe an sendCommand angegeben wird, wird eine untergeordnete Protokollsitzung innerhalb der Stamm-Debuggee-Sitzung als Ziel verwendet.
Attribute
-
extensionId
String optional
Die ID der Erweiterung, die Sie debuggen möchten. Das Anhängen an eine Hintergrundseite einer Erweiterung ist nur möglich, wenn der Befehlszeilenschalter
--silent-debugger-extension-apiverwendet wird. -
sessionId
String optional
Die opake ID der Chrome-Entwicklertools-Protokoll-Sitzung. Identifiziert eine untergeordnete Sitzung innerhalb der Stammsitzung, die durch „tabId“, „extensionId“ oder „targetId“ identifiziert wird.
-
tabId
number optional
Die ID des Tabs, den Sie debuggen möchten.
-
targetId
String optional
Die intransparente ID des Debug-Ziels.
DetachReason
Grund für die Beendigung der Verbindung.
Enum
"target_closed"
"canceled_by_user"
TargetInfo
Informationen zum Debug-Ziel
Attribute
-
Hinzugefügt
boolean
„True“, wenn der Debugger bereits angehängt ist.
-
extensionId
String optional
Die Erweiterungs-ID, die definiert ist, wenn „type“ = „background_page“.
-
faviconUrl
String optional
Ziel-Favicon-URL.
-
id
String
Ziel-ID.
-
tabId
number optional
Die Tab-ID, definiert, wenn type == 'page'.
-
Titel
String
Seitentitel der Zielseite.
-
Typ
Zieltyp.
-
URL
String
Ziel-URL.
TargetInfoType
Zieltyp.
Enum
"page"
"background_page"
"worker"
"other"
Methoden
attach()
chrome.debugger.attach(
target: Debuggee,
requiredVersion: string,
callback?: function,
): Promise<void>
Hängt den Debugger an das angegebene Ziel an.
Parameter
-
Ziel
Debugging-Ziel, an das Sie anhängen möchten.
-
requiredVersion
String
Erforderliche Version des Debugging-Protokolls („0.1“). Sie können nur eine Verbindung zum Debuggee mit der übereinstimmenden Hauptversion und einer höheren oder gleichen Nebenversion herstellen. Eine Liste der Protokollversionen finden Sie hier.
-
callback
function optional
Der Parameter
callbacksieht so aus:() => void
Ausgabe
-
Promise<void>
Chrome 96 oder höherWird aufgelöst, sobald der Anhängevorgang erfolgreich ist oder fehlschlägt. Das Promise wird ohne Wert aufgelöst. Wenn das Anhängen fehlschlägt, wird das Promise abgelehnt.
Promises werden nur für Manifest V3 und höher unterstützt. Auf anderen Plattformen müssen Callbacks verwendet werden.
detach()
chrome.debugger.detach(
target: Debuggee,
callback?: function,
): Promise<void>
Trennt den Debugger vom angegebenen Ziel.
Parameter
-
Ziel
Debugging-Ziel, von dem Sie die Verbindung trennen möchten.
-
callback
function optional
Der Parameter
callbacksieht so aus:() => void
Ausgabe
-
Promise<void>
Chrome 96 oder höherWird aufgelöst, sobald der Trennvorgang erfolgreich ist oder fehlschlägt. Das Promise wird ohne Wert aufgelöst. Wenn das Trennen fehlschlägt, wird das Promise abgelehnt.
Promises werden nur für Manifest V3 und höher unterstützt. Auf anderen Plattformen müssen Callbacks verwendet werden.
getTargets()
chrome.debugger.getTargets(
callback?: function,
): Promise<TargetInfo[]>
Gibt die Liste der verfügbaren Debugging-Ziele zurück.
Parameter
-
callback
function optional
Der Parameter
callbacksieht so aus:(result: TargetInfo[]) => void
-
Ergebnis
Array von TargetInfo-Objekten, die den verfügbaren Debug-Zielen entsprechen.
-
Ausgabe
-
Promise<TargetInfo[]>
Chrome 96 oder höherPromises werden nur für Manifest V3 und höher unterstützt. Auf anderen Plattformen müssen Callbacks verwendet werden.
sendCommand()
chrome.debugger.sendCommand(
target: DebuggerSession,
method: string,
commandParams?: object,
callback?: function,
): Promise<object | undefined>
Sendet den angegebenen Befehl an das Debugging-Ziel.
Parameter
-
Ziel
Debugging-Ziel, an das Sie den Befehl senden möchten.
-
method
String
Methodenname. Sollte eine der Methoden sein, die im Remote-Debugging-Protokoll definiert sind.
-
commandParams
Objekt optional
JSON-Objekt mit Anfrageparametern. Dieses Objekt muss dem Remote-Debugging-Parameterschema für die angegebene Methode entsprechen.
-
callback
function optional
Der Parameter
callbacksieht so aus:(result?: object) => void
-
Ergebnis
Objekt optional
JSON-Objekt mit der Antwort. Die Struktur der Antwort variiert je nach Methodenname und wird durch das Attribut „returns“ der Befehlsbeschreibung im Remote-Debugging-Protokoll definiert.
-
Ausgabe
-
Promise<object | undefined>
Chrome 96 oder höherAntworttext. Wenn beim Posten der Nachricht ein Fehler auftritt, wird das Promise abgelehnt.
Promises werden nur für Manifest V3 und höher unterstützt. Auf anderen Plattformen müssen Callbacks verwendet werden.
Ereignisse
onDetach
chrome.debugger.onDetach.addListener(
callback: function,
)
Wird ausgelöst, wenn der Browser die Fehlerbehebungssitzung für den Tab beendet. Das passiert, wenn entweder der Tab geschlossen oder die Chrome-Entwicklertools für den angehängten Tab aufgerufen werden.
Parameter
-
callback
Funktion
Der Parameter
callbacksieht so aus:(source: Debuggee, reason: DetachReason) => void
-
Quelle
-
reason
-
onEvent
chrome.debugger.onEvent.addListener(
callback: function,
)
Wird ausgelöst, wenn das Debugging-Ziel ein Instrumentierungsereignis ausgibt.
Parameter
-
callback
Funktion
Der Parameter
callbacksieht so aus:(source: DebuggerSession, method: string, params?: object) => void
-
Quelle
-
method
String
-
params
Objekt optional
-