chrome.debugger

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 allo strumento dell'interazione con la rete, eseguire il debug del codice JavaScript, modificare il DOM e il CSS e così via. Utilizza il comando tabId di debug per scegliere come target le schede con sendCommand e indirizza gli eventi tramite tabId dai callback onEvent.

Autorizzazioni

debugger

Per usare questa API, devi dichiarare l'autorizzazione "debugger" nel manifest dell'estensione.

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

Nota

Per motivi di sicurezza, l'API chrome.debugger non fornisce l'accesso a tutti i domini del protocollo di Chrome DevTools. I domini disponibili sono: Accessibility, Audits, CacheStorage, Console, CSS, Database, Debugger, DOM, DOMDebugger, DOMSnapshot, Emulation{/21{/3,{/4{/4,DOM, DOMDebugger, DOMSnapshot, EmulationWebAudioWebAuthn

Esempi

Per provare questa API, installa l'esempio di API di debug dal repository chrome-extension-samples.

Tipi

Debuggee

Identificatore debuggee. È necessario specificare tabId, ExtensionsId o targetId

Proprietà

  • extensionId

    stringa facoltativo

    L'ID dell'estensione di cui vuoi eseguire il debug. Il collegamento a una pagina in background di un'estensione è possibile solo quando viene utilizzata 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

In attesa

Identificatore di sessione debugger. È necessario specificare tabId, ExtensionsId 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 figlio all'interno della sessione principale del debuggee. Se sessionId viene specificato quando viene trasmesso a sendCommand, scegli come target una sessione di protocollo figlio all'interno della sessione principale del debuggee.

Proprietà

  • extensionId

    stringa facoltativo

    L'ID dell'estensione di cui vuoi eseguire il debug. Il collegamento a una pagina in background di un'estensione è possibile solo quando viene utilizzata 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, ExtensionsId 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

Chrome 44 e versioni successive

Motivo dell'interruzione della connessione.

Enum

"target_closed"

"canceled_by_user"

TargetInfo

Informazioni sulla destinazione di debug

Proprietà

  • collegato

    boolean

    True se il debugger è già collegato.

  • extensionId

    stringa facoltativo

    L'ID dell'estensione, definito se type = "background_page".

  • faviconUrl

    stringa facoltativo

    Scegli come target l'URL della favicon.

  • id

    stringa

    ID target.

  • tabId

    numero facoltativo

    L'ID scheda, definito se type == 'page'.

  • title

    stringa

    Titolo della pagina di destinazione.

  • Tipo di target.

  • url

    stringa

    URL di destinazione.

TargetInfoType

Chrome 44 e versioni successive

Tipo di target.

Enum

"background_page"

Metodi

attach()

Promessa
chrome.debugger.attach(
  target: Debuggee,
  requiredVersion: string,
  callback?: function,
)

Collega il debugger alla destinazione specificato.

Parametri

  • target

    Destinazione di debug a cui vuoi eseguire il collegamento.

  • requiredVersion

    stringa

    Versione del protocollo di debug obbligatoria ("0.1"). È possibile eseguire il collegamento all'oggetto del debug solo con la versione principale corrispondente e la versione secondaria uguale o superiore. Un elenco delle versioni di protocollo è disponibile qui.

  • callback

    funzione facoltativa

    Il parametro callback ha il seguente aspetto:

    ()=>void

Ritorni

  • Promise<void>

    Chrome 96 e versioni successive

    Le promesse sono supportate in Manifest V3 e versioni successive, ma vengono forniti callback per garantire la compatibilità con le versioni precedenti. Non puoi utilizzarli entrambi nella stessa chiamata di funzione. La promessa viene risolta con lo stesso tipo trasmesso al callback.

detach()

Promessa
chrome.debugger.detach(
  target: Debuggee,
  callback?: function,
)

Stacca il debugger dal target specificato.

Parametri

  • target

    Destinazione di debug da cui eseguire lo scollegamento.

  • callback

    funzione facoltativa

    Il parametro callback ha il seguente aspetto:

    ()=>void

Ritorni

  • Promise<void>

    Chrome 96 e versioni successive

    Le promesse sono supportate in Manifest V3 e versioni successive, ma vengono forniti callback per garantire la compatibilità con le versioni precedenti. Non puoi utilizzarli entrambi nella stessa chiamata di funzione. La promessa viene risolta con lo stesso tipo trasmesso al callback.

getTargets()

Promessa
chrome.debugger.getTargets(
  callback?: function,
)

Restituisce l'elenco delle destinazioni di debug disponibili.

Parametri

  • callback

    funzione facoltativa

    Il parametro callback ha il seguente aspetto:

    (result: TargetInfo[])=>void

    • risultato

      Array di oggetti TargetInfo corrispondenti alle destinazioni di debug disponibili.

Ritorni

  • Promise<TargetInfo[]>

    Chrome 96 e versioni successive

    Le promesse sono supportate in Manifest V3 e versioni successive, ma vengono forniti callback per garantire la compatibilità con le versioni precedenti. Non puoi utilizzarli entrambi nella stessa chiamata di funzione. La promessa viene risolta con lo stesso tipo trasmesso al callback.

sendCommand()

Promessa
chrome.debugger.sendCommand(
  target: DebuggerSession,
  method: string,
  commandParams?: object,
  callback?: function,
)

Invia il comando specificato alla destinazione di debug.

Parametri

  • 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 parametri di richiesta. Questo oggetto deve essere conforme allo schema dei parametri di debug remoto per un determinato metodo.

  • callback

    funzione facoltativa

    Il parametro callback ha il seguente aspetto:

    (result?: object)=>void

    • risultato

      oggetto facoltativo

      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.

Ritorni

  • Promise<object|undefined>

    Chrome 96 e versioni successive

    Le promesse sono supportate in Manifest V3 e versioni successive, ma vengono forniti callback per garantire la compatibilità con le versioni precedenti. Non puoi utilizzarli entrambi nella stessa chiamata di funzione. La promessa viene risolta con lo stesso tipo trasmesso al 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

onEvent

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

Attivato quando viene eseguito il debug dell'evento di strumentazione relativo ai problemi della destinazione.

Parametri

  • callback

    funzione

    Il parametro callback ha il seguente aspetto:

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