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
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
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.
- type
Doeltype.
- url
snaar
Doel-URL.
TargetInfoType
Doeltype.
Enum
"pagina" "achtergrondpagina" "werker" "ander"
Methoden
attach()
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()
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()
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
DoelInfo []
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()
chrome.debugger.sendCommand(
target: DebuggerSession,
method: string,
commandParams?: object,
callback?: function,
): Promise<object | undefined>
Stuurt de opgegeven opdracht naar het foutopsporingsdoel.
Parameters
- doel
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
- terugbellen
functie
De
callback
ziet er als volgt uit:(source: Debuggee, reason: DetachReason) => void
- bron
- reden
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
- bron
- methode
snaar
- parameters
object optioneel