Descrizione
L'API chrome.debugger
funge da trasporto alternativo per il protocollo di debug remoto di Chrome. Usa chrome.debugger
per collegarti a una o più schede per analizzare l'interazione con la rete, eseguire il debug di JavaScript, modificare 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
dalle richiamate onEvent
.
Autorizzazioni
debugger
Nota sulla sicurezza
Per motivi di sicurezza, l'API chrome.debugger
non fornisce accesso a tutti i Chrome DevTools
Domini Protocolli. I domini disponibili sono: Accessibilità,
Controlli, CacheStorage, console,
CSS, Database, Debugger, DOM,
DOMDebugger, DOMSnapshot,
Emulazione, Recupero, IO, Input,
Ispezione, Log, Rete, Overlay,
Pagina, Rendimento, Profiler,
Runtime, archiviazione, destinazione, tracciamento,
WebAudio e WebAuthn.
Manifest
Per usare questa API, devi dichiarare l'autorizzazione "debugger"
nel file manifest dell'estensione.
{
"name": "My extension",
...
"permissions": [
"debugger",
],
...
}
Esempi
Per provare questa API, installa l'esempio dell'API debugger da chrome-extension-samples repository Git.
Tipi
Debuggee
Identificatore debuggee. È necessario specificare tabId, extensionId o targetId
Proprietà
-
extensionId
stringa facoltativo
L'ID dell'estensione di cui intendi eseguire il debug. È possibile eseguire il collegamento a una pagina in background con un'estensione solo quando si utilizza l'opzione della riga di comando
--silent-debugger-extension-api
. -
tabId
numero facoltativo
L'ID della scheda di cui vuoi eseguire il debug.
-
targetId
stringa facoltativo
L'ID opaco della destinazione di debug.
DebuggerSession
Identificatore sessione debugger. È necessario specificare uno tra tabId, extensionId o targetId. Inoltre, è possibile fornire un sessionId facoltativo. Se sessionId viene specificato per gli argomenti inviati da onEvent
, significa che l'evento proviene da una sessione di protocollo figlio all'interno della sessione di debuggee principale. Se sessionId viene specificato quando viene passato a sendCommand
, sceglie come target una sessione di protocollo figlio all'interno della sessione di debuggee principale.
Proprietà
-
extensionId
stringa facoltativo
L'ID dell'estensione di cui intendi eseguire il debug. È possibile eseguire il collegamento a una pagina in background con un'estensione solo quando si utilizza l'opzione della riga di comando
--silent-debugger-extension-api
. -
sessionId
stringa facoltativo
L'ID opaco della sessione del protocollo Chrome DevTools. Identifica una sessione secondaria all'interno della sessione principale identificata da tabId, extensionId o targetId.
-
tabId
numero facoltativo
L'ID della scheda di cui vuoi eseguire il debug.
-
targetId
stringa facoltativo
L'ID opaco della destinazione di debug.
DetachReason
Motivo dell'interruzione della connessione.
Enum
"target_closed"
"canceled_by_user"
TargetInfo
Informazioni sulla destinazione di debug
Proprietà
-
collegato
booleano
True se il debugger è già collegato.
-
extensionId
stringa facoltativo
L'ID dell'estensione, definito se il tipo = "background_page".
-
faviconUrl
stringa facoltativo
URL della favicon target.
-
id
stringa
ID target.
-
tabId
numero facoltativo
L'ID scheda, definito se il tipo == "pagina".
-
titolo
stringa
Titolo pagina di destinazione.
-
tipo
Tipo di target.
-
url
stringa
URL di destinazione.
TargetInfoType
Tipo di target.
Enum
"pagina"
"background_page"
"worker"
"altro"
Metodi
attach()
chrome.debugger.attach(
target: Debuggee,
requiredVersion: string,
callback?: function,
)
Collega il debugger alla destinazione specificata.
Parametri
-
target
Debug della destinazione a cui vuoi collegarti.
-
requiredVersion
stringa
Versione del protocollo di debug obbligatoria ("0.1"). Uno può collegarsi al debuggee solo con una versione principale corrispondente e una versione secondaria superiore o uguale. L'elenco delle versioni del protocollo è disponibile qui.
-
callback
funzione facoltativa
Il parametro
callback
ha il seguente aspetto:() => void
Resi
-
Promesso<void>
Chrome 96 e versioni successive .Le promesse sono supportate solo per Manifest V3 e versioni successive, mentre le altre piattaforme devono utilizzare i callback.
detach()
chrome.debugger.detach(
target: Debuggee,
callback?: function,
)
Stacca il debugger dalla destinazione specificata.
Parametri
-
target
Target di debug da cui vuoi scollegarti.
-
callback
funzione facoltativa
Il parametro
callback
ha il seguente aspetto:() => void
Resi
-
Promesso<void>
Chrome 96 e versioni successive .Le promesse sono supportate solo per Manifest V3 e versioni successive, mentre le altre piattaforme devono utilizzare i callback.
getTargets()
chrome.debugger.getTargets(
callback?: function,
)
Restituisce l'elenco dei target di debug disponibili.
Parametri
-
callback
funzione facoltativa
Il parametro
callback
ha il seguente aspetto:(result: TargetInfo[]) => void
-
risultato
Matrice di oggetti TargetInfo corrispondente alle destinazioni di debug disponibili.
-
Resi
-
Promise<TargetInfo[]>
Chrome 96 e versioni successive .Le promesse sono supportate solo per Manifest V3 e versioni successive, mentre le altre piattaforme devono utilizzare i callback.
sendCommand()
chrome.debugger.sendCommand(
target: DebuggerSession,
method: string,
commandParams?: object,
callback?: function,
)
Invia il comando specificato alla destinazione di debug.
Parametri
-
target
Target 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 parametri di richiesta. Questo oggetto deve essere conforme allo schema dei parametri di debug remoto per il metodo specificato.
-
callback
funzione facoltativa
Il parametro
callback
ha 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 dal parametro "returns" della descrizione del comando nel protocollo di debug remoto.
-
Resi
-
Promise<object | non definito>
Chrome 96 e versioni successive .Le promesse sono supportate solo per Manifest V3 e versioni successive, mentre 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. Questo accade quando la scheda viene chiusa o Chrome DevTools viene richiamato per la scheda collegata.
Parametri
-
callback
funzione
Il parametro
callback
ha il seguente aspetto:(source: Debuggee, reason: DetachReason) => void
-
origine
-
motivo
-
onEvent
chrome.debugger.onEvent.addListener(
callback: function,
)
Attivato ogni volta che il debug del target genera un evento di strumentazione.
Parametri
-
callback
funzione
Il parametro
callback
ha il seguente aspetto:(source: DebuggerSession, method: string, params?: object) => void
-
origine
-
method
stringa
-
parametri
oggetto facoltativo
-