Beschrijving
De chrome.debugger API dient als alternatief transportmechanisme 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 wijzigen en meer. Gebruik de eigenschap tabId Debuggee om tabbladen te targeten met sendCommand en gebeurtenissen te routeren op basis van tabId vanuit onEvent -callbacks.
Toestemmingen
debuggerBeveiligingsnota
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
Om deze API te kunnen gebruiken, moet u de machtiging "debugger" in het manifest van uw extensie declareren.
{
"name": "My extension",
...
"permissions": [
"debugger",
],
...
}
Voorbeelden
Om deze API uit te proberen, installeer je het debugger-API-voorbeeld uit de chrome-extension-samples- repository.
Soorten
Debuggee
Identificatiecode van de te debuggen applicatie. TabId, extensionId of targetId moet worden opgegeven.
Eigenschappen
- extensie-ID
string optioneel
De ID van de extensie die u wilt debuggen. Het koppelen aan een achtergrondpagina van een extensie is alleen mogelijk wanneer de opdrachtregeloptie
--silent-debugger-extension-apiwordt gebruikt. - tabId
nummer optioneel
De ID van het tabblad dat u wilt debuggen.
- doel-ID
string optioneel
De ondoorzichtige ID van het debugdoel.
DebuggerSession
Identificatiecode van de debugsessie. Een van de volgende waarden moet worden opgegeven: tabId, extensionId of targetId. Daarnaast kan optioneel een sessionId worden opgegeven. Als sessionId wordt opgegeven voor argumenten die worden verzonden vanuit onEvent , betekent dit dat de gebeurtenis afkomstig is van een subprotocolsessie binnen de hoofddebugsessie. Als sessionId wordt opgegeven bij het doorgeven aan sendCommand , is de gebeurtenis gericht op een subprotocolsessie binnen de hoofddebugsessie.
Eigenschappen
- extensie-ID
string optioneel
De ID van de extensie die u wilt debuggen. Het koppelen aan een achtergrondpagina van een extensie is alleen mogelijk wanneer de opdrachtregeloptie
--silent-debugger-extension-apiwordt gebruikt. - sessie-ID
string optioneel
De ondoorzichtige ID van de Chrome DevTools Protocol-sessie. Identificeert een subsessie binnen de hoofdsessie die wordt geïdentificeerd door tabId, extensionId of targetId.
- tabId
nummer optioneel
De ID van het tabblad dat u wilt debuggen.
- doel-ID
string optioneel
De ondoorzichtige ID van het debugdoel.
DetachReason
Reden voor het verbreken van de verbinding.
Enum
"doel_gesloten" "geannuleerd_door_gebruiker"
TargetInfo
Foutopsporingsdoelinformatie
Eigenschappen
- bijgevoegd
booleaans
Retourneert true als de debugger al is gekoppeld.
- extensie-ID
string optioneel
De extensie-ID, gedefinieerd als type = 'background_page'.
- faviconUrl
string optioneel
Doel-URL voor het favicon.
- id
snaar
Doel-ID.
- tabId
nummer optioneel
De tab-ID, gedefinieerd als type == 'page'.
- titel
snaar
Doelpaginatitel.
- type
Doeltype.
- URL
snaar
Doel-URL.
TargetInfoType
Doeltype.
Enum
"pagina" "achtergrondpagina" "werknemer" "ander"
Methoden
attach()
chrome.debugger.attach(
target: Debuggee,
requiredVersion: string,
callback?: function,
): Promise<void>
Koppelt de debugger aan het opgegeven doel.
Parameters
- doel
Het debugdoel waaraan u zich wilt koppelen.
- vereiste versie
snaar
Vereiste debugprotocolversie ("0.1"). Men kan alleen verbinding maken met het te debuggen systeem met een overeenkomende hoofdversie en een subversie die groter of gelijk is aan die versie. Een lijst met protocolversies is hier te vinden.
- terugbelverzoek
functie optioneel
De
callbackparameter ziet er als volgt uit:() => void
Retourneert
Promise<void>
Chrome 96+De promise wordt opgelost zodra de koppelingsbewerking slaagt of mislukt. De promise wordt opgelost zonder waarde. Als de koppeling mislukt, wordt de promise afgewezen.
Promises worden alleen ondersteund voor Manifest V3 en later; voor andere platforms moeten callbacks worden gebruikt.
detach()
chrome.debugger.detach(
target: Debuggee,
callback?: function,
): Promise<void>
Ontkoppelt de debugger van het opgegeven doel.
Parameters
- doel
Het debugdoel waarvan u zich wilt loskoppelen.
- terugbelverzoek
functie optioneel
De
callbackparameter ziet er als volgt uit:() => void
Retourneert
Promise<void>
Chrome 96+De promise wordt opgelost zodra de ontkoppelingsbewerking slaagt of mislukt. De promise wordt opgelost zonder waarde. Als de ontkoppeling mislukt, wordt de promise afgewezen.
Promises worden alleen ondersteund voor Manifest V3 en later; voor andere platforms moeten callbacks worden gebruikt.
getTargets()
chrome.debugger.getTargets(
callback?: function,
): Promise<TargetInfo[]>
Geeft de lijst met beschikbare debugdoelen weer.
Parameters
- terugbelverzoek
functie optioneel
De
callbackparameter ziet er als volgt uit:(result: TargetInfo[]) => void
- resultaat
Doelinfo []
Een array van TargetInfo-objecten die overeenkomen met de beschikbare debugdoelen.
Retourneert
Promise< TargetInfo []>
Chrome 96+Promises worden alleen ondersteund voor Manifest V3 en later; voor andere platforms moeten callbacks worden gebruikt.
sendCommand()
chrome.debugger.sendCommand(
target: DebuggerSession,
method: string,
commandParams?: object,
callback?: function,
): Promise<object | undefined>
Verstuurt het opgegeven commando naar het debugdoel.
Parameters
- doel
Het debugdoel waarnaar u de opdracht wilt verzenden.
- methode
snaar
Methodenaam. Dit moet een van de methoden zijn die gedefinieerd zijn door het protocol voor debuggen op afstand .
- commandoParams
object optioneel
JSON-object met verzoekparameters. Dit object moet voldoen aan het parameterschema voor debuggen op afstand voor de betreffende methode.
- terugbelverzoek
functie optioneel
De
callbackparameter ziet er als volgt uit:(result?: object) => void
- resultaat
object optioneel
Een JSON-object met het antwoord. De structuur van het antwoord varieert afhankelijk van de methodenaam en wordt gedefinieerd door het 'returns'-attribuut van de opdrachtbeschrijving in het protocol voor debuggen op afstand.
Retourneert
Promise<object | undefined>
Chrome 96+De reactiebody. Als er een fout optreedt tijdens het verzenden van het bericht, wordt de promise afgewezen.
Promises worden alleen ondersteund voor Manifest V3 en later; voor andere platforms moeten callbacks worden gebruikt.
Evenementen
onDetach
chrome.debugger.onDetach.addListener(
callback: function,
)
Deze gebeurtenis wordt geactiveerd wanneer de browser de debugsessie voor het tabblad beëindigt. Dit gebeurt wanneer het tabblad wordt gesloten of wanneer Chrome DevTools wordt geopend voor het gekoppelde tabblad.
Parameters
- terugbelverzoek
functie
De
callbackparameter 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 genereert.
Parameters
- terugbelverzoek
functie
De
callbackparameter ziet er als volgt uit:(source: DebuggerSession, method: string, params?: object) => void
- bron
- methode
snaar
- parameters
object optioneel
Beschrijving
De chrome.debugger API dient als alternatief transportmechanisme 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 wijzigen en meer. Gebruik de eigenschap tabId Debuggee om tabbladen te targeten met sendCommand en gebeurtenissen te routeren op basis van tabId vanuit onEvent -callbacks.
Toestemmingen
debuggerBeveiligingsnota
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
Om deze API te kunnen gebruiken, moet u de machtiging "debugger" in het manifest van uw extensie declareren.
{
"name": "My extension",
...
"permissions": [
"debugger",
],
...
}
Voorbeelden
Om deze API uit te proberen, installeer je het debugger-API-voorbeeld uit de chrome-extension-samples- repository.
Soorten
Debuggee
Identificatiecode van de te debuggen applicatie. TabId, extensionId of targetId moet worden opgegeven.
Eigenschappen
- extensie-ID
string optioneel
De ID van de extensie die u wilt debuggen. Het koppelen aan een achtergrondpagina van een extensie is alleen mogelijk wanneer de opdrachtregeloptie
--silent-debugger-extension-apiwordt gebruikt. - tabId
nummer optioneel
De ID van het tabblad dat u wilt debuggen.
- doel-ID
string optioneel
De ondoorzichtige ID van het debugdoel.
DebuggerSession
Identificatiecode van de debugsessie. Een van de volgende waarden moet worden opgegeven: tabId, extensionId of targetId. Daarnaast kan optioneel een sessionId worden opgegeven. Als sessionId wordt opgegeven voor argumenten die worden verzonden vanuit onEvent , betekent dit dat de gebeurtenis afkomstig is van een subprotocolsessie binnen de hoofddebugsessie. Als sessionId wordt opgegeven bij het doorgeven aan sendCommand , is de gebeurtenis gericht op een subprotocolsessie binnen de hoofddebugsessie.
Eigenschappen
- extensie-ID
string optioneel
De ID van de extensie die u wilt debuggen. Het koppelen aan een achtergrondpagina van een extensie is alleen mogelijk wanneer de opdrachtregeloptie
--silent-debugger-extension-apiwordt gebruikt. - sessie-ID
string optioneel
De ondoorzichtige ID van de Chrome DevTools Protocol-sessie. Identificeert een subsessie binnen de hoofdsessie die wordt geïdentificeerd door tabId, extensionId of targetId.
- tabId
nummer optioneel
De ID van het tabblad dat u wilt debuggen.
- doel-ID
string optioneel
De ondoorzichtige ID van het debugdoel.
DetachReason
Reden voor het verbreken van de verbinding.
Enum
"doel_gesloten" "geannuleerd_door_gebruiker"
TargetInfo
Foutopsporingsdoelinformatie
Eigenschappen
- bijgevoegd
booleaans
Retourneert true als de debugger al is gekoppeld.
- extensie-ID
string optioneel
De extensie-ID, gedefinieerd als type = 'background_page'.
- faviconUrl
string optioneel
Doel-URL voor het favicon.
- id
snaar
Doel-ID.
- tabId
nummer optioneel
De tab-ID, gedefinieerd als type == 'page'.
- titel
snaar
Doelpaginatitel.
- type
Doeltype.
- URL
snaar
Doel-URL.
TargetInfoType
Doeltype.
Enum
"pagina" "achtergrondpagina" "werknemer" "ander"
Methoden
attach()
chrome.debugger.attach(
target: Debuggee,
requiredVersion: string,
callback?: function,
): Promise<void>
Koppelt de debugger aan het opgegeven doel.
Parameters
- doel
Het debugdoel waaraan u zich wilt koppelen.
- vereiste versie
snaar
Vereiste debugprotocolversie ("0.1"). Men kan alleen verbinding maken met het te debuggen systeem met een overeenkomende hoofdversie en een subversie die groter of gelijk is aan die versie. Een lijst met protocolversies is hier te vinden.
- terugbelverzoek
functie optioneel
De
callbackparameter ziet er als volgt uit:() => void
Retourneert
Promise<void>
Chrome 96+De promise wordt opgelost zodra de koppelingsbewerking slaagt of mislukt. De promise wordt opgelost zonder waarde. Als de koppeling mislukt, wordt de promise afgewezen.
Promises worden alleen ondersteund voor Manifest V3 en later; voor andere platforms moeten callbacks worden gebruikt.
detach()
chrome.debugger.detach(
target: Debuggee,
callback?: function,
): Promise<void>
Ontkoppelt de debugger van het opgegeven doel.
Parameters
- doel
Het debugdoel waarvan u zich wilt loskoppelen.
- terugbelverzoek
functie optioneel
De
callbackparameter ziet er als volgt uit:() => void
Retourneert
Promise<void>
Chrome 96+De promise wordt opgelost zodra de ontkoppelingsbewerking slaagt of mislukt. De promise wordt opgelost zonder waarde. Als de ontkoppeling mislukt, wordt de promise afgewezen.
Promises worden alleen ondersteund voor Manifest V3 en later; voor andere platforms moeten callbacks worden gebruikt.
getTargets()
chrome.debugger.getTargets(
callback?: function,
): Promise<TargetInfo[]>
Geeft de lijst met beschikbare debugdoelen weer.
Parameters
- terugbelverzoek
functie optioneel
De
callbackparameter ziet er als volgt uit:(result: TargetInfo[]) => void
- resultaat
Doelinfo []
Een array van TargetInfo-objecten die overeenkomen met de beschikbare debugdoelen.
Retourneert
Promise< TargetInfo []>
Chrome 96+Promises worden alleen ondersteund voor Manifest V3 en later; voor andere platforms moeten callbacks worden gebruikt.
sendCommand()
chrome.debugger.sendCommand(
target: DebuggerSession,
method: string,
commandParams?: object,
callback?: function,
): Promise<object | undefined>
Verstuurt het opgegeven commando naar het debugdoel.
Parameters
- doel
Het debugdoel waarnaar u de opdracht wilt verzenden.
- methode
snaar
Methodenaam. Dit moet een van de methoden zijn die gedefinieerd zijn door het protocol voor debuggen op afstand .
- commandoParams
object optioneel
JSON-object met verzoekparameters. Dit object moet voldoen aan het parameterschema voor debuggen op afstand voor de betreffende methode.
- terugbelverzoek
functie optioneel
De
callbackparameter ziet er als volgt uit:(result?: object) => void
- resultaat
object optioneel
Een JSON-object met het antwoord. De structuur van het antwoord varieert afhankelijk van de methodenaam en wordt gedefinieerd door het 'returns'-attribuut van de opdrachtbeschrijving in het protocol voor debuggen op afstand.
Retourneert
Promise<object | undefined>
Chrome 96+De reactiebody. Als er een fout optreedt tijdens het verzenden van het bericht, wordt de promise afgewezen.
Promises worden alleen ondersteund voor Manifest V3 en later; voor andere platforms moeten callbacks worden gebruikt.
Evenementen
onDetach
chrome.debugger.onDetach.addListener(
callback: function,
)
Deze gebeurtenis wordt geactiveerd wanneer de browser de debugsessie voor het tabblad beëindigt. Dit gebeurt wanneer het tabblad wordt gesloten of wanneer Chrome DevTools wordt geopend voor het gekoppelde tabblad.
Parameters
- terugbelverzoek
functie
De
callbackparameter 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 genereert.
Parameters
- terugbelverzoek
functie
De
callbackparameter ziet er als volgt uit:(source: DebuggerSession, method: string, params?: object) => void
- bron
- methode
snaar
- parameters
object optioneel