chrome.debugger

Beschreibung

Die chrome.debugger API dient als alternativer Transport für das Remote-Debugging-Protokoll von Chrome. Verwenden Sie chrome.debugger, um einen Tab an einen oder mehrere Tabs anzuhängen, um Netzwerkinteraktionen zu instrumentieren, JavaScript-Fehler zu beheben, das DOM und CSS zu ändern usw. Verwenden Sie die zu debuggende Komponente tabId, um Tabs mit "sendCommand" auszurichten und Ereignisse nach tabId aus onEvent-Callbacks weiterzuleiten.

Berechtigungen

debugger

Du musst die Berechtigung „"debugger"“ im Manifest deiner Erweiterung deklarieren, um diese API nutzen zu können.

{
  "name": "My extension",
  ...
  "permissions": [
    "debugger",
  ],
  ...
}

Hinweise

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, DOM,{/30,,{/30,,{/30,WebAudioWebAuthn

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

Ausstehend

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

Chrome 44 und höher

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.

  • Zieltyp.

  • url

    String

    Ziel-URL

TargetInfoType

Chrome 44 und höher

Zieltyp.

Enum

"background_page"

Methoden

attach()

Versprechen
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

Returns

  • Promise<void>

    Chrome 96 und höher

    Promise-Objekte werden in Manifest V3 und höher unterstützt, Callbacks werden jedoch aus Gründen der Abwärtskompatibilität bereitgestellt. Sie können nicht beide in einem Funktionsaufruf verwenden. Das Promise wird mit demselben Typ aufgelöst, der an den Callback übergeben wird.

detach()

Versprechen
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

Returns

  • Promise<void>

    Chrome 96 und höher

    Promise-Objekte werden in Manifest V3 und höher unterstützt, Callbacks werden jedoch aus Gründen der Abwärtskompatibilität bereitgestellt. Sie können nicht beide in einem Funktionsaufruf verwenden. Das Promise wird mit demselben Typ aufgelöst, der an den Callback übergeben wird.

getTargets()

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

Returns

  • Promise<TargetInfo[]>

    Chrome 96 und höher

    Promise-Objekte werden in Manifest V3 und höher unterstützt, Callbacks werden jedoch aus Gründen der Abwärtskompatibilität bereitgestellt. Sie können nicht beide in einem Funktionsaufruf verwenden. Das Promise wird mit demselben Typ aufgelöst, der an den Callback übergeben wird.

sendCommand()

Versprechen
chrome.debugger.sendCommand(
  target: DebuggerSession,
  method: string,
  commandParams?: object,
  callback?: function,
)

Sendet den angegebenen Befehl an das Debugging-Ziel.

Parameter

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

Returns

  • Promise<object|undefined>

    Chrome 96 und höher

    Promise-Objekte werden in Manifest V3 und höher unterstützt, Callbacks werden jedoch aus Gründen der Abwärtskompatibilität bereitgestellt. Sie können nicht beide in einem Funktionsaufruf verwenden. Das Promise wird mit demselben Typ aufgelöst, der an den Callback übergeben wird.

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

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