chrome.debugger

Beschrijving

De chrome.debugger API fungeert als alternatief transport voor het externe debugprotocol van Chrome. Gebruik chrome.debugger om verbinding te maken met een of meer tabbladen om netwerkinteractie te instrumenteren, JavaScript te debuggen, de DOM en CSS te muteren, en meer. Gebruik de eigenschap tabId Debuggee om tabbladen te targeten met sendCommand en gebeurtenissen te routeren via tabId vanuit onEvent callbacks.

Machtigingen

debugger

Beveiligingsnotitie

Om veiligheidsredenen biedt de chrome.debugger API geen toegang tot alle Chrome DevTools Protocol-domeinen. De beschikbare domeinen zijn: 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 en WebAuthn .

Manifest

U moet de machtiging "debugger" in het manifest van uw extensie declareren om deze API te gebruiken.

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

Voorbeelden

Om deze API uit te proberen, installeert u het debugger API-voorbeeld uit de chrome-extension-samples repository.

Typen

Debuggee

Debuggee-ID. TabId, extensionId of targetId moet worden opgegeven.

Eigenschappen

  • extensie-ID

    string optioneel

    De id van de extensie die u wilt debuggen. Koppelen aan een extensie-achtergrondpagina is alleen mogelijk met de opdrachtregeloptie --silent-debugger-extension-api .

  • tabbladId

    nummer optioneel

    De id van het tabblad dat u wilt debuggen.

  • doel-ID

    string optioneel

    De ondoorzichtige id van het debugdoel.

DebuggerSession

Chroom 125+

Sessie-ID voor debugger. TabId, extensionId of targetId moet worden opgegeven. Daarnaast kan optioneel een sessionId worden opgegeven. Als sessionId wordt opgegeven voor argumenten die vanuit onEvent worden verzonden, betekent dit dat de gebeurtenis afkomstig is van een onderliggende protocolsessie binnen de root debuggee-sessie. Als sessionId wordt opgegeven bij het doorgeven aan sendCommand , wordt een onderliggende protocolsessie binnen de root debuggee-sessie als doel gebruikt.

Eigenschappen

  • extensie-ID

    string optioneel

    De id van de extensie die u wilt debuggen. Koppelen aan een extensie-achtergrondpagina is alleen mogelijk met de opdrachtregeloptie --silent-debugger-extension-api .

  • sessie-ID

    string optioneel

    De ondoorzichtige id van de Chrome DevTools Protocol-sessie. Identificeert een onderliggende sessie binnen de rootsessie, geïdentificeerd door tabId, extensionId of targetId.

  • tabbladId

    nummer optioneel

    De id van het tabblad dat u wilt debuggen.

  • doel-ID

    string optioneel

    De ondoorzichtige id van het debugdoel.

DetachReason

Chroom 44+

Reden voor beëindiging van de verbinding.

Enum

"doel_gesloten"

"geannuleerd_door_gebruiker"

TargetInfo

Debugdoelinformatie

Eigenschappen

  • bijgevoegd

    Booleaanse

    True als de debugger al is gekoppeld.

  • extensie-ID

    string optioneel

    De extensie-id, gedefinieerd als type = 'background_page'.

  • faviconUrl

    string optioneel

    Doel favicon-URL.

  • id

    snaar

    Doel-id.

  • tabbladId

    nummer optioneel

    Het tabblad-id, gedefinieerd als type == 'pagina'.

  • titel

    snaar

    Doelpaginatitel.

  • Doeltype.

  • url

    snaar

    Doel-URL.

TargetInfoType

Chroom 44+

Doeltype.

Enum

"pagina"

"achtergrondpagina"

"werker"

"ander"

Methoden

attach()

Belofte
chrome.debugger.attach(
  target: Debuggee,
  requiredVersion: string,
  callback?: function,
)
: Promise<void>

Koppelt de debugger aan het opgegeven doel.

Parameters

  • doel

    Foutopsporingsdoel waaraan u wilt koppelen.

  • vereiste versie

    snaar

    Vereiste debugprotocolversie ("0.1"). Alleen een koppeling met de debuggee is mogelijk met een overeenkomende hoofdversie en een hogere of gelijke subversie. Een lijst met protocolversies is hier te vinden.

  • terugbellen

    functie optioneel

    De callback ziet er als volgt uit:

    () => void

Retourneren

  • Belofte<leegte>

    Chroom 96+

    Promises worden alleen ondersteund voor Manifest V3 en hoger. Andere platforms moeten callbacks gebruiken.

detach()

Belofte
chrome.debugger.detach(
  target: Debuggee,
  callback?: function,
)
: Promise<void>

Koppelt de debugger los van het opgegeven doel.

Parameters

  • doel

    Debugdoel waarvan u wilt loskoppelen.

  • terugbellen

    functie optioneel

    De callback ziet er als volgt uit:

    () => void

Retourneren

  • Belofte<leegte>

    Chroom 96+

    Promises worden alleen ondersteund voor Manifest V3 en hoger. Andere platforms moeten callbacks gebruiken.

getTargets()

Belofte
chrome.debugger.getTargets(
  callback?: function,
)
: Promise<TargetInfo[]>

Retourneert de lijst met beschikbare foutopsporingsdoelen.

Parameters

  • terugbellen

    functie optioneel

    De callback ziet er als volgt uit:

    (result: TargetInfo[]) => void

    • resultaat

      Array met TargetInfo-objecten die overeenkomen met de beschikbare debugdoelen.

Retourneren

  • Belofte< TargetInfo []>

    Chroom 96+

    Promises worden alleen ondersteund voor Manifest V3 en hoger. Andere platforms moeten callbacks gebruiken.

sendCommand()

Belofte
chrome.debugger.sendCommand(
  target: DebuggerSession,
  method: string,
  commandParams?: object,
  callback?: function,
)
: Promise<object | undefined>

Stuurt de opgegeven opdracht naar het foutopsporingsdoel.

Parameters

  • Het foutopsporingsdoel waarnaar u de opdracht wilt verzenden.

  • methode

    snaar

    Methodenaam. Moet een van de methoden zijn die gedefinieerd zijn door het protocol voor externe foutopsporing .

  • commandParams

    object optioneel

    JSON-object met aanvraagparameters. Dit object moet voldoen aan het parameterschema voor externe foutopsporing voor de opgegeven methode.

  • terugbellen

    functie optioneel

    De callback ziet er als volgt uit:

    (result?: object) => void

    • resultaat

      object optioneel

      JSON-object met de respons. De structuur van de respons varieert afhankelijk van de methodenaam en wordt gedefinieerd door het 'returns'-kenmerk van de opdrachtbeschrijving in het protocol voor externe foutopsporing.

Retourneren

  • Belofte<object | undefined>

    Chroom 96+

    Promises worden alleen ondersteund voor Manifest V3 en hoger. Andere platforms moeten callbacks gebruiken.

Evenementen

onDetach

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

Wordt geactiveerd wanneer de browser de foutopsporingssessie voor het tabblad beëindigt. Dit gebeurt wanneer het tabblad wordt gesloten of Chrome DevTools wordt aangeroepen voor het gekoppelde tabblad.

Parameters

onEvent

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

Wordt geactiveerd wanneer het debugdoel een instrumentatiegebeurtenis veroorzaakt.

Parameters

  • terugbellen

    functie

    De callback ziet er als volgt uit:

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