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

Nota di sicurezza

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

Manifest

Per usare 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 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

Chrome 125 e versioni successive

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 solo per Manifest V3 e versioni successive; altre piattaforme devono utilizzare i 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 solo per Manifest V3 e versioni successive; altre piattaforme devono utilizzare i 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 solo per Manifest V3 e versioni successive; altre piattaforme devono utilizzare i 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 solo per Manifest V3 e versioni successive; 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

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