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
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
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
Tipo de segmentação.
-
url
string
URL de destino.
TargetInfoType
Tipo de segmentação.
Enumeração
"página"
"background_page"
"trabalhador"
"outro"
Métodos
attach()
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 recenteAs promessas só têm suporte no Manifesto V3 e versões mais recentes. Outras plataformas precisam usar callbacks.
detach()
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 recenteAs promessas só têm suporte no Manifesto V3 e versões mais recentes. Outras plataformas precisam usar callbacks.
getTargets()
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<TargetInfo[]>
Chrome 96 ou versão mais recenteAs promessas só têm suporte no Manifesto V3 e versões mais recentes. Outras plataformas precisam usar callbacks.
sendCommand()
chrome.debugger.sendCommand(
target: DebuggerSession,
method: string,
commandParams?: object,
callback?: function,
)
Envia o comando fornecido para o alvo da depuração.
Parâmetros
-
target
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<object | indefinido>
Chrome 96 ou versão mais recenteAs 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
-
callback
função
O parâmetro
callback
tem esta aparência:(source: Debuggee, reason: DetachReason) => void
-
source
-
reason
-
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
-
source
-
method
string
-
params
objeto opcional
-