chrome.debugger

Descrição

A API chrome.debugger serve como um transporte alternativo para o protocolo de depuração remota do Google Chrome. Use chrome.debugger para anexar a uma ou mais guias e instrumentar a interação de rede, depurar o JavaScript, modificar o DOM e o CSS e muito mais. Use a propriedade Debuggee tabId para segmentar guias com sendCommand e rotear eventos por tabId a partir de callbacks onEvent.

Permissões

debugger

Observação de segurança

Por motivos de segurança, a API chrome.debugger não fornece acesso a todas as Chrome DevTools de protocolo. Os domínios disponíveis são: Acessibilidade, Auditorias, CacheStorage, Console, CSS, Banco de dados, Debugger, DOM, DOMDebugger e DOMSnapshot, Emulação, Buscar, E/S, Entrada, Inspetor, Registro, Rede, Sobreposição, Página, Performance, Profiler, Ambiente de execução, Armazenamento, Destino, Rastreamento, WebAudio e WebAuthn.

Manifesto

Declare a permissão "debugger" no manifesto da extensão para usar essa API.

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

Exemplos

Para testar essa API, instale o exemplo da API do depurador disponível em chrome-extension-samples repositório de dados.

Tipos

Debuggee

Identificador do depurado. É preciso especificar tabId, extensionId ou targetId

Propriedades

  • extensionId

    string opcional

    O ID da extensão que você pretende depurar. Só é possível anexar a uma página de plano de fundo de extensão quando a chave de linha de comando --silent-debugger-extension-api é usada.

  • tabId

    número opcional

    O ID da guia que você pretende depurar.

  • targetId

    string opcional

    O ID opaco do destino de depuração.

DebuggerSession

Chrome 125 ou versões mais recentes

Identificador de sessão do depurador. É necessário especificar um tabId, extensionId ou targetId. Além disso, um sessionId opcional pode ser fornecido. Se sessionId for especificado para argumentos enviados de onEvent, isso significa que o evento vem de uma sessão de protocolo filho na sessão do depurado raiz. Se sessionId for especificado quando transmitido para sendCommand, ele será direcionado a uma sessão de protocolo filho na sessão do depurado raiz.

Propriedades

  • extensionId

    string opcional

    O ID da extensão que você pretende depurar. Só é possível anexar a uma página de plano de fundo de extensão quando a chave de linha de comando --silent-debugger-extension-api é usada.

  • sessionId

    string opcional

    O ID opaco da sessão do protocolo do Chrome DevTools. Identifica uma sessão filha na sessão raiz identificada por tabId, extensionId ou targetId.

  • tabId

    número opcional

    O ID da guia que você pretende depurar.

  • targetId

    string opcional

    O ID opaco do destino de depuração.

DetachReason

Chrome 44 ou superior

Motivo do encerramento da conexão.

Enumeração

"target_closed"

"canceled_by_user"

TargetInfo

Depurar as informações do destino

Propriedades

  • sempre que o disco for anexado

    booleano

    Verdadeiro se o depurador já estiver anexado.

  • extensionId

    string opcional

    O ID da extensão, definido se type = 'background_page'.

  • faviconUrl

    string opcional

    URL do favicon de destino.

  • id

    string

    ID de destino.

  • tabId

    número opcional

    O ID da guia, definido se type == 'page'.

  • título

    string

    Título da página de destino.

  • Tipo de segmentação.

  • url

    string

    URL de destino.

TargetInfoType

Chrome 44 ou superior

Tipo de segmentação.

Enumeração

"página"

"background_page"

"trabalhador"

"outro"

Métodos

attach()

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

Anexa o depurador ao destino especificado.

Parâmetros

  • target

    Destino de depuração ao qual você quer anexar.

  • requiredVersion

    string

    Versão necessária do protocolo de depuração ("0.1"). Só é possível anexar ao depurado com a versão principal correspondente e a versão secundária maior ou igual. A lista das versões do protocolo pode ser acessada aqui.

  • callback

    função opcional

    O parâmetro callback tem esta aparência:

    () => void

Retorna

  • Promessa<void>

    Chrome 96 ou versão mais recente

    As promessas só têm suporte no Manifesto V3 e versões mais recentes. Outras plataformas precisam usar callbacks.

detach()

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

Separa o depurador do destino especificado.

Parâmetros

  • target

    Destino de depuração do qual você quer remover.

  • callback

    função opcional

    O parâmetro callback tem esta aparência:

    () => void

Retorna

  • Promessa<void>

    Chrome 96 ou versão mais recente

    As promessas só têm suporte no Manifesto V3 e versões mais recentes. Outras plataformas precisam usar callbacks.

getTargets()

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

Retorna a lista de destinos de depuração disponíveis.

Parâmetros

  • callback

    função opcional

    O parâmetro callback tem esta aparência:

    (result: TargetInfo[]) => void

    • resultado

      Matriz de objetos TargetInfo correspondentes aos destinos de depuração disponíveis.

Retorna

  • Promise&lt;TargetInfo[]&gt;

    Chrome 96 ou versão mais recente

    As promessas só têm suporte no Manifesto V3 e versões mais recentes. Outras plataformas precisam usar callbacks.

sendCommand()

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

Envia o comando fornecido para o alvo da depuração.

Parâmetros

  • Destino de depuração para enviar o comando.

  • method

    string

    Nome do método. Precisa ser um dos métodos definidos pelo protocolo de depuração remota.

  • commandParams

    objeto opcional

    Objeto JSON com parâmetros de solicitação. Esse objeto precisa estar em conformidade com o esquema de parâmetros da depuração remota para o método especificado.

  • callback

    função opcional

    O parâmetro callback tem esta aparência:

    (result?: object) => void

    • resultado

      objeto opcional

      Objeto JSON com a resposta. A estrutura da resposta varia de acordo com o nome do método e é definida pelos "returns" da descrição do comando no protocolo de depuração remota.

Retorna

  • Promise&lt;object | indefinido>

    Chrome 96 ou versão mais recente

    As promessas só têm suporte no Manifesto V3 e versões mais recentes. Outras plataformas precisam usar callbacks.

Eventos

onDetach

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

Disparado quando o navegador encerra a sessão de depuração da guia. Isso acontece quando a guia está sendo fechada ou o Chrome DevTools está sendo invocado para a guia anexada.

Parâmetros

onEvent

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

Disparado sempre que o destino de depuração emite um evento de instrumentação.

Parâmetros

  • callback

    função

    O parâmetro callback tem esta aparência:

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