Beschreibung
Die chrome.debugger
API dient als alternativer Transport für das Remote-Debugging-Protokoll von Chrome. Verwenden Sie chrome.debugger
, um Elemente an einen oder mehrere Tabs anzuhängen, um Netzwerkinteraktionen zu instrumentieren, JavaScript-Fehler zu beheben, DOM und CSS zu ändern und vieles mehr. Verwende die Debuggee
-Property tabId
, um ein Targeting auf Tabs mit sendCommand
vorzunehmen und Ereignisse nach tabId
aus onEvent
-Callbacks weiterzuleiten.
Berechtigungen
debugger
Sicherheitshinweis
Aus Sicherheitsgründen bietet die chrome.debugger
API nicht auf alle Protokolldomains für Chrome-Entwicklertools Zugriff. Folgende Domains stehen zur Verfügung: Accessibility,
Audits, CacheStorage,
Console,
CSS, Database, Debugger,
DOMDebugger, DOMSnapshot,
DOMSnapshot,
DOM,{/30,{/3,WebAudioWebAuthn
Manifest
Du musst die Berechtigung „"debugger"
“ im Manifest deiner Erweiterung deklarieren, um diese API nutzen zu können.
{
"name": "My extension",
...
"permissions": [
"debugger",
],
...
}
Beispiele
Wenn Sie diese API testen möchten, installieren Sie das Debugger-API-Beispiel aus dem Repository chrome-extension-sample.
Typen
Debuggee
Kennung der zu debuggenden Komponente. Es muss entweder eine tabId, eine Erweiterungs-ID oder eine Ziel-ID angegeben werden
Attribute
-
extensionId
String optional
Die ID der Erweiterung, für die Sie ein Debugging ausführen möchten. Anhängen an eine Hintergrundseite einer Erweiterung sind nur möglich, wenn die
--silent-debugger-extension-api
-Befehlszeile verwendet wird. -
tabId
Nummer optional
Die ID des Tabs, auf dem Sie Fehler beheben möchten.
-
targetId
String optional
Die intransparente ID des Fehlerbehebungsziels.
DebuggerSession
Debugger-Sitzungs-ID. Es muss entweder „tabId“, „extensionId“ oder „targetId“ angegeben werden. Außerdem kann eine optionale sessionId angegeben werden. Wenn „sessionId“ für Argumente angegeben ist, die von onEvent
gesendet werden, bedeutet dies, dass das Ereignis aus einer untergeordneten Protokollsitzung in der Root-Sitzung der zu debuggenden Komponente stammt. Wenn bei der Übergabe an sendCommand
„sessionId“ angegeben ist, wird eine untergeordnete Protokollsitzung innerhalb der Stammsitzung der zu debuggenden Komponente angesprochen.
Attribute
-
extensionId
String optional
Die ID der Erweiterung, für die Sie ein Debugging ausführen möchten. Anhängen an eine Hintergrundseite einer Erweiterung sind nur möglich, wenn die
--silent-debugger-extension-api
-Befehlszeile verwendet wird. -
sessionId
String optional
Die intransparente ID der Sitzung im Chrome-Entwicklertools-Protokoll. Kennzeichnet eine untergeordnete Sitzung innerhalb der Stammsitzung, die durch tabId, ExtensionsId oder targetId identifiziert wird.
-
tabId
Nummer optional
Die ID des Tabs, auf dem Sie Fehler beheben möchten.
-
targetId
String optional
Die intransparente ID des Fehlerbehebungsziels.
DetachReason
Grund für Beendigung der Verbindung.
Enum
"target_closed"
"canceled_by_user"
TargetInfo
Informationen zum Fehlerbehebungsziel
Attribute
-
Hinzugefügt
boolean
True, wenn Debugger bereits angehängt ist.
-
extensionId
String optional
Die Erweiterungs-ID, definiert, wenn type = 'background_page'.
-
faviconUrl
String optional
Favicon-URL des Ziels.
-
id
String
Ziel-ID.
-
tabId
Nummer optional
Die Tab-ID, definiert bei Typ == 'page'.
-
Titel
String
Titel der Zielseite.
-
Typ
Zieltyp.
-
url
String
Ziel-URL
TargetInfoType
Zieltyp.
Enum
"background_page"
Methoden
attach()
chrome.debugger.attach(
target: Debuggee,
requiredVersion: string,
callback?: function,
)
Fügt Debugger an das angegebene Ziel an.
Parameter
-
Debugging-Ziel, das Sie anhängen möchten.
-
requiredVersion
String
Erforderliche Version des Debugging-Protokolls („0.1“). Einer kann nur an die zu debuggende Komponente mit übereinstimmender Hauptversion und größerer oder gleicher Nebenversion angehängt werden. Eine Liste der Protokollversionen finden Sie hier.
-
callback
Funktion optional
Der Parameter
callback
sieht so aus:() => void
Rückgabe
-
Promise<void>
Chrome 96 und höherPromise-Objekte werden nur für Manifest V3 und höher unterstützt. Andere Plattformen müssen Callbacks verwenden.
detach()
chrome.debugger.detach(
target: Debuggee,
callback?: function,
)
Trennt den Debugger vom angegebenen Ziel.
Parameter
-
Debugging-Ziel, von dem Sie die Verbindung trennen möchten.
-
callback
Funktion optional
Der Parameter
callback
sieht so aus:() => void
Rückgabe
-
Promise<void>
Chrome 96 und höherPromise-Objekte werden nur für Manifest V3 und höher unterstützt. Andere Plattformen müssen Callbacks verwenden.
getTargets()
chrome.debugger.getTargets(
callback?: function,
)
Gibt die Liste der verfügbaren Fehlerbehebungsziele zurück.
Parameter
-
callback
Funktion optional
Der Parameter
callback
sieht so aus:(result: TargetInfo[]) => void
-
Ergebnis
Array von TargetInfo-Objekten, die den verfügbaren Fehlerbehebungszielen entsprechen.
-
Rückgabe
-
Promise<TargetInfo[]>
Chrome 96 und höherPromise-Objekte werden nur für Manifest V3 und höher unterstützt. Andere Plattformen müssen Callbacks verwenden.
sendCommand()
chrome.debugger.sendCommand(
target: DebuggerSession,
method: string,
commandParams?: object,
callback?: function,
)
Sendet den angegebenen Befehl an das Debugging-Ziel.
Parameter
-
Ziel
Das Debugging-Ziel, an das Sie den Befehl senden möchten.
-
method
String
Name der Methode. Dies sollte eine der im Remote-Debugging-Protokoll definierten Methoden sein.
-
commandParams
Objekt optional
JSON-Objekt mit Anfrageparametern Dieses Objekt muss dem Remote-Debugging-Parameterschema für die angegebene Methode entsprechen.
-
callback
Funktion optional
Der Parameter
callback
sieht so aus:(result?: object) => void
-
Ergebnis
Objekt optional
JSON-Objekt mit der Antwort. Die Struktur der Antwort hängt vom Methodennamen ab und wird durch das "returns"-Attribut der Befehlsbeschreibung im Remote-Debugging-Protokoll definiert.
-
Rückgabe
-
Promise<object | undefined>
Chrome 96 und höherPromise-Objekte werden nur für Manifest V3 und höher unterstützt. Andere Plattformen müssen Callbacks verwenden.
Veranstaltungen
onDetach
chrome.debugger.onDetach.addListener(
callback: function,
)
Wird ausgelöst, wenn der Browser die Debugging-Sitzung für den Tab beendet Das passiert, wenn der Tab entweder geschlossen oder die Chrome-Entwicklertools für den angehängten Tab aufgerufen werden.
Parameter
-
callback
Funktion
Der Parameter
callback
sieht so aus:(source: Debuggee, reason: DetachReason) => void
-
source
-
reason
-
onEvent
chrome.debugger.onEvent.addListener(
callback: function,
)
Wird ausgelöst, wenn das Instrumentierungsereignis mit dem Zielfehler behoben wird.
Parameter
-
callback
Funktion
Der Parameter
callback
sieht so aus:(source: DebuggerSession, method: string, params?: object) => void
-
source
-
method
String
-
params
Objekt optional
-