Descrizione
L'API chrome.debugger funge da trasporto alternativo per il protocollo di debug remoto di Chrome. Utilizza chrome.debugger per collegarti a una o più schede per instrumentare l'interazione di rete, eseguire il debug di JavaScript, modificare il DOM e CSS e altro ancora. Utilizza la proprietà Debuggee tabId per scegliere come target le schede con sendCommand e indirizzare gli eventi in base a tabId dai callback onEvent.
Autorizzazioni
debuggerNota sulla sicurezza
Per motivi di sicurezza, l'API chrome.debugger non fornisce l'accesso a tutti i domini del protocollo Chrome DevTools. I domini disponibili sono: Accessibilità, Audit, CacheStorage, Console, CSS, Database, Debugger, DOM, DOMDebugger, DOMSnapshot, Emulazione, Recupero, I/O, Input, Inspector, Log, Network, Overlay, Pagina, Rendimento, Profiler, Runtime, Storage, Target, Tracing, WebAudio e WebAuthn.
Manifest
Per utilizzare questa API, devi dichiarare l'autorizzazione "debugger" nel manifest dell'estensione.
{ "name": "My extension", ... "permissions": [ "debugger", ], ... } Esempi
Per provare questa API, installa l'esempio di API di debug dal repository chrome-extension-samples.
Tipi
Debuggee
Identificatore del debuggee. È necessario specificare tabId, extensionId o targetId
Proprietà
- extensionId
stringa facoltativa
L'ID dell'estensione che intendi eseguire il debug. L'associazione a una pagina di sfondo dell'estensione è possibile solo quando viene utilizzato l'opzione a riga di comando
--silent-debugger-extension-api. - tabId
number (facoltativo)
L'ID della scheda che intendi eseguire il debug.
- targetId
stringa facoltativa
L'ID opaco della destinazione di debug.
DebuggerSession
Identificatore della sessione del debugger. È necessario specificare tabId, extensionId o targetId. Inoltre, è possibile fornire un sessionId facoltativo. Se sessionId è specificato per gli argomenti inviati da onEvent, significa che l'evento proviene da una sessione del protocollo secondario all'interno della sessione di debuggee principale. Se sessionId viene specificato quando viene passato a sendCommand, ha come target una sessione del protocollo secondario all'interno della sessione di debuggee radice.
Proprietà
- extensionId
stringa facoltativa
L'ID dell'estensione che intendi eseguire il debug. L'associazione a una pagina di sfondo dell'estensione è possibile solo quando viene utilizzato l'opzione a riga di comando
--silent-debugger-extension-api. - sessionId
stringa facoltativa
L'ID opaco della sessione Chrome DevTools Protocol. Identifica una sessione secondaria all'interno della sessione principale identificata da tabId, extensionId o targetId.
- tabId
number (facoltativo)
L'ID della scheda che intendi eseguire il debug.
- targetId
stringa facoltativa
L'ID opaco della destinazione di debug.
DetachReason
Motivo della chiusura della connessione.
Enum
"target_closed"
"canceled_by_user"
TargetInfo
Informazioni sul target di debug
Proprietà
- collegato
booleano
True se il debugger è già collegato.
- extensionId
stringa facoltativa
L'ID estensione, definito se type = "background_page".
- faviconUrl
stringa facoltativa
URL della favicon di destinazione.
- id
stringa
ID target.
- tabId
number (facoltativo)
L'ID scheda, definito se type == 'page'.
- titolo
stringa
Titolo della pagina target.
- tipo
Tipo di target.
- url
stringa
URL di destinazione.
TargetInfoType
Tipo di target.
Enum
"page"
"background_page"
"worker"
"other"
Metodi
attach()
chrome.debugger.attach(
target: Debuggee,
requiredVersion: string,
callback?: function,
): Promise<void>
Collega il debugger al target specificato.
Parametri
- target
Target di debug a cui vuoi collegarti.
- requiredVersion
stringa
Versione del protocollo di debug richiesta ("0.1"). È possibile collegarsi al debuggee solo con una versione principale corrispondente e una versione secondaria maggiore o uguale. L'elenco delle versioni del protocollo è disponibile qui.
- callback
funzione facoltativa
Il parametro
callbackha il seguente aspetto:() => void
Resi
-
Promise<void>
Chrome 96+Le promesse sono supportate solo per Manifest V3 e versioni successive, le altre piattaforme devono utilizzare i callback.
detach()
chrome.debugger.detach(
target: Debuggee,
callback?: function,
): Promise<void>
Scollega il debugger dalla destinazione specificata.
Parametri
- target
Target di debug da cui vuoi scollegarti.
- callback
funzione facoltativa
Il parametro
callbackha il seguente aspetto:() => void
Resi
-
Promise<void>
Chrome 96+Le promesse sono supportate solo per Manifest V3 e versioni successive, le altre piattaforme devono utilizzare i callback.
getTargets()
chrome.debugger.getTargets(
callback?: function,
): Promise<TargetInfo[]>
Restituisce l'elenco delle destinazioni di debug disponibili.
Parametri
- callback
funzione facoltativa
Il parametro
callbackha il seguente aspetto:(result: TargetInfo[]) => void
- risultato
Array di oggetti TargetInfo corrispondenti alle destinazioni di debug disponibili.
-
Resi
-
Promise<TargetInfo[]>
Chrome 96+Le promesse sono supportate solo per Manifest V3 e versioni successive, le altre piattaforme devono utilizzare i callback.
sendCommand()
chrome.debugger.sendCommand(
target: DebuggerSession,
method: string,
commandParams?: object,
callback?: function,
): Promise<object | undefined>
Invia il comando specificato al target di debug.
Parametri
- target
Destinazione di debug a cui vuoi inviare il comando.
- method
stringa
Nome del metodo. Deve essere uno dei metodi definiti dal protocollo di debug remoto.
- commandParams
oggetto facoltativo
Oggetto JSON con i parametri della richiesta. Questo oggetto deve essere conforme allo schema dei parametri di debug remoto per il metodo specificato.
- callback
funzione facoltativa
Il parametro
callbackha il seguente aspetto:(result?: object) => void
- risultato
oggetto facoltativo
Oggetto JSON con la risposta. La struttura della risposta varia a seconda del nome del metodo ed è definita dall'attributo "returns" della descrizione del comando nel protocollo di debug remoto.
-
Resi
-
Promise<object | undefined>
Chrome 96+Le promesse sono supportate solo per Manifest V3 e versioni successive, le altre piattaforme devono utilizzare i callback.
Eventi
onDetach
chrome.debugger.onDetach.addListener(
callback: function,
)
Attivato quando il browser termina la sessione di debug per la scheda. Ciò si verifica quando la scheda viene chiusa o quando vengono richiamati gli strumenti di sviluppo di Chrome per la scheda collegata.
Parametri
- callback
funzione
Il parametro
callbackha il seguente aspetto:(source: Debuggee, reason: DetachReason) => void
- origine
- motivo
-
onEvent
chrome.debugger.onEvent.addListener(
callback: function,
)
Attivato ogni volta che viene generato l'evento di strumentazione dei problemi relativi alla destinazione di debug.
Parametri
- callback
funzione
Il parametro
callbackha il seguente aspetto:(source: DebuggerSession, method: string, params?: object) => void
- origine
- method
stringa
- parametri
oggetto facoltativo
-