Beschreibung
Die chrome.debugger
API dient als alternativer Transport für das Remote-Debugging-Protokoll von Chrome. Verwenden Sie chrome.debugger
, um einen oder mehrere Tabs hinzuzufügen, um die Netzwerkinteraktion zu instrumentieren, JavaScript-Fehler zu beheben, das DOM und CSS zu ändern und vieles mehr. Verwende die Debuggee
-Eigenschaft 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 Chrome-Entwicklertools Zugriff
Protokolldomains. Folgende Domains sind verfügbar: Barrierefreiheit im Internet,
Audits, CacheStorage, Console,
CSS, Datenbank, Debugger, DOM
DOMDebugger, DOMSnapshot,
Emulation, Abrufen, E/A, Eingabe
Inspector, Protokoll, Netzwerk, Overlay,
Seite, Leistung, Profiler,
Laufzeit, Speicher, Ziel, Tracing
WebAudio und WebAuthn.
Manifest
Du musst die Berechtigung „"debugger"
“ im Manifest deiner 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 chrome-extension-samples. zu erstellen.
Typen
Debuggee
Die ID der zu debuggenden Komponente. 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 Erweiterungshintergrundseite ist nur bei Verwendung des
--silent-debugger-extension-api
-Befehlszeilenparameters möglich. -
tabId
Zahl 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 für Argumente, die von onEvent
gesendet werden, „sessionId“ angegeben ist, stammt das Ereignis aus einer Sitzung mit einem untergeordneten Protokoll in der Sitzung der zu debuggenden Root-Komponente. Wenn bei der Übergabe an sendCommand
die sessionId angegeben wird, wird eine untergeordnete Protokollsitzung innerhalb der Sitzung der zu debuggenden Root-Komponente verwendet.
Attribute
-
extensionId
String optional
Die ID der Erweiterung, die Sie debuggen möchten. Das Anhängen an eine Erweiterungshintergrundseite ist nur bei Verwendung des
--silent-debugger-extension-api
-Befehlszeilenparameters möglich. -
sessionId
String optional
Die intransparente ID der Sitzung mit dem Chrome-Entwicklertools-Protokoll. Kennzeichnet eine untergeordnete Sitzung innerhalb der Stammsitzung, die durch tabId, Erweiterungs-ID oder targetId identifiziert wird.
-
tabId
Zahl optional
Die ID des Tabs, auf dem Sie Fehler beheben möchten.
-
targetId
String optional
Die intransparente ID des Fehlerbehebungsziels.
DetachReason
Grund für Verbindungsabbruch.
Enum
"target_closed"
"canceled_by_user"
TargetInfo
Zielinformationen zur Fehlerbehebung
Attribute
-
Hinzugefügt
boolean
"True", wenn der Debugger bereits angehängt ist.
-
extensionId
String optional
Die Erweiterungs-ID, die definiert wird, wenn type = 'background_page'.
-
faviconUrl
String optional
Ziel-Favicon-URL.
-
id
String
Ziel-ID.
-
tabId
Zahl optional
Die TAB-ID, definiert, wenn type == 'page'.
-
Titel
String
Titel der Landingpage.
-
Typ
Zieltyp.
-
URL
String
Ziel-URL
TargetInfoType
Zieltyp.
Enum
„Seite“
"background_page"
"Mitarbeiter"
"Sonstiges"
Methoden
attach()
chrome.debugger.attach(
target: Debuggee,
requiredVersion: string,
callback?: function,
)
Hängt den Debugger an das angegebene Ziel an.
Parameter
-
Debugging-Ziel, an das Sie anhängen möchten.
-
requiredVersion
String
Erforderliche Version des Debugging-Protokolls ("0.1") Die zu debuggende Komponente kann nur mit einer übereinstimmenden Hauptversion und einer höheren oder gleichen Nebenversion an die zu debuggende Komponente angehängt werden. Eine Liste der Protokollversionen finden Sie hier.
-
callback
Funktion optional
Der Parameter
callback
sieht so aus: <ph type="x-smartling-placeholder"></ph>() => void
Gibt Folgendes zurück:
-
Versprechen<void>
Chrome 96 und höherPromise-Objekte 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,
)
Trennt den Debugger vom angegebenen Ziel.
Parameter
-
Debuggingziel, von dem Sie die Verbindung trennen möchten
-
callback
Funktion optional
Der Parameter
callback
sieht so aus: <ph type="x-smartling-placeholder"></ph>() => void
Gibt Folgendes zurück:
-
Versprechen<void>
Chrome 96 und höherPromise-Objekte 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,
)
Gibt die Liste der verfügbaren Fehlerbehebungsziele zurück
Parameter
-
callback
Funktion optional
Der Parameter
callback
sieht so aus: <ph type="x-smartling-placeholder"></ph>(result: TargetInfo[]) => void
-
Ergebnis
Array von TargetInfo-Objekten, die den verfügbaren Debug-Zielen entsprechen.
-
Gibt Folgendes zurück:
-
Promise<TargetInfo[]>
Chrome 96 und höherPromise-Objekte 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,
)
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 durch das Remote-Debugging-Protokoll definierten Methoden sein.
-
commandParams
Objekt optional
JSON-Objekt mit Anfrageparametern. Dieses Objekt muss dem Remote-Debugging-Parameter-Schema für die jeweilige Methode entsprechen.
-
callback
Funktion optional
Der Parameter
callback
sieht so aus: <ph type="x-smartling-placeholder"></ph>(result?: object) => void
-
Ergebnis
Objekt optional
JSON-Objekt mit der Antwort. Die Struktur der Antwort variiert je nach Methodenname und wird durch die "returns"- Attribut der Befehlsbeschreibung im Remote-Debugging-Protokoll.
-
Gibt Folgendes zurück:
-
Promise<object | nicht definiert>
Chrome 96 und höherPromise-Objekte 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 Debugging-Sitzung für den Tab beendet Dies geschieht, wenn entweder der Tab geschlossen oder die Chrome-Entwicklertools für den angehängten Tab aufgerufen werden.
Parameter
-
callback
Funktion
Der Parameter
callback
sieht so aus: <ph type="x-smartling-placeholder"></ph>(source: Debuggee, reason: DetachReason) => void
-
source
-
reason
-
onEvent
chrome.debugger.onEvent.addListener(
callback: function,
)
Wird ausgelöst, wenn beim Debugging des Ziels Probleme mit dem Instrumentierungsereignis auftreten.
Parameter
-
callback
Funktion
Der Parameter
callback
sieht so aus: <ph type="x-smartling-placeholder"></ph>(source: DebuggerSession, method: string, params?: object) => void
-
source
-
method
String
-
params
Objekt optional
-