Descripción
La API de chrome.debugger
funciona como un transporte alternativo para el protocolo de depuración remota de Chrome. Usa chrome.debugger
para adjuntarlo a una o más pestañas a fin de instrumentar la interacción de red, depurar JavaScript, mutar el DOM y la CSS, y mucho más. Usa la propiedad tabId
de Debuggee
para segmentar las pestañas con sendCommand
y los eventos de ruta por tabId
a partir de devoluciones de llamada de onEvent
.
Permisos
debugger
Nota de seguridad
Por motivos de seguridad, la API de chrome.debugger
no proporciona acceso a todas las Herramientas para desarrolladores de Chrome
Dominios de protocolo. Los dominios disponibles son: accesibilidad,
Audits, CacheStorage, Console
CSS, Base de datos, Depurador, DOM,
DOMDebugger, DOMSnapshot:
Emulation, Fetch, IO, Entrada,
Inspector, Registro, Red, Superposición,
Página, Rendimiento, Generador de perfiles,
Entorno de ejecución, Almacenamiento, Destino, Seguimiento
WebAudio y WebAuthn.
Manifiesto
Para usar esta API, debes declarar el permiso "debugger"
en el manifiesto de tu extensión.
{
"name": "My extension",
...
"permissions": [
"debugger",
],
...
}
Ejemplos
Para probar esta API, instala el ejemplo de la API de depurador de chrome-extension-samples en un repositorio de confianza.
Tipos
Debuggee
Es el identificador del elemento depurado. Se debe especificar tabId, extensionId o targetId
Propiedades
-
extensionId
string opcional
El ID de la extensión que pretendes depurar. Solo se puede adjuntar a una página en segundo plano de una extensión cuando se usa el interruptor de línea de comandos
--silent-debugger-extension-api
. -
tabId
número opcional
Es el ID de la pestaña que deseas depurar.
-
targetId
string opcional
El ID opaco del objetivo de depuración.
DebuggerSession
Es el identificador de la sesión de Debugger. Se debe especificar tabId, extensionId o targetId. Además, se puede proporcionar un sessionId opcional. Si se especifica sessionId para los argumentos enviados desde onEvent
, significa que el evento proviene de una sesión de protocolo secundario dentro de la sesión raíz de depuración. Si se especifica sessionId cuando se pasa a sendCommand
, se orienta a una sesión de protocolo secundario dentro de la sesión raíz de depuración.
Propiedades
-
extensionId
string opcional
El ID de la extensión que pretendes depurar. Solo se puede adjuntar a una página en segundo plano de una extensión cuando se usa el interruptor de línea de comandos
--silent-debugger-extension-api
. -
sessionId
string opcional
Es el ID opaco de la sesión del protocolo de las Herramientas para desarrolladores de Chrome. Identifica una sesión secundaria dentro de la sesión raíz identificada por tabId, extensionId o targetId.
-
tabId
número opcional
Es el ID de la pestaña que deseas depurar.
-
targetId
string opcional
El ID opaco del objetivo de depuración.
DetachReason
Motivo de la finalización de la conexión.
Enum
"target_closed"
"canceled_by_user"
TargetInfo
Depura la información del destino
Propiedades
-
se conecte el disco
boolean
Es verdadero si ya se adjuntó el depurador.
-
extensionId
string opcional
El ID de la extensión, definido si el tipo = “background_page”.
-
faviconUrl
string opcional
URL del ícono de página de destino.
-
id
string
ID de destino.
-
tabId
número opcional
El ID de la pestaña, definido si el tipo == 'page'.
-
título
string
Título de la página de destino.
-
tipo
Tipo de objetivo.
-
url
string
URL de destino.
TargetInfoType
Tipo de objetivo.
Enum
“página”
"background_page"
"trabajador"
“otro”
Métodos
attach()
chrome.debugger.attach(
target: Debuggee,
requiredVersion: string,
callback?: function,
)
Adjunta el depurador al destino determinado.
Parámetros
-
objetivo
Destino de depuración al que quieres adjuntar datos.
-
requiredVersion
string
Versión requerida del protocolo de depuración ("0.1"). Solo se puede adjuntar al elemento depurado con una versión principal que coincida y una versión secundaria superior o igual. Aquí puedes obtener la lista de las versiones del protocolo.
-
callback
función opcional
El parámetro
callback
se ve de la siguiente manera:() => void
Muestra
-
Promesa<void>
Chrome 96 y versiones posterioresLas promesas solo son compatibles con Manifest V3 y versiones posteriores; otras plataformas deben usar devoluciones de llamada.
detach()
chrome.debugger.detach(
target: Debuggee,
callback?: function,
)
Desconecta el depurador del destino determinado.
Parámetros
-
objetivo
Destino de depuración del que quieres desconectarte.
-
callback
función opcional
El parámetro
callback
se ve de la siguiente manera:() => void
Muestra
-
Promesa<void>
Chrome 96 y versiones posterioresLas promesas solo son compatibles con Manifest V3 y versiones posteriores; otras plataformas deben usar devoluciones de llamada.
getTargets()
chrome.debugger.getTargets(
callback?: function,
)
Muestra la lista de objetivos de depuración disponibles.
Parámetros
-
callback
función opcional
El parámetro
callback
se ve de la siguiente manera:(result: TargetInfo[]) => void
-
resultado
Es el array de objetos TargetInfo que corresponden a los objetivos de depuración disponibles.
-
Muestra
-
Promise<TargetInfo[]>
Chrome 96 y versiones posterioresLas promesas solo son compatibles con Manifest V3 y versiones posteriores; otras plataformas deben usar devoluciones de llamada.
sendCommand()
chrome.debugger.sendCommand(
target: DebuggerSession,
method: string,
commandParams?: object,
callback?: function,
)
Envía un comando dado al destino de depuración.
Parámetros
-
objetivo
Destino de depuración al que deseas enviar el comando
-
method
string
Nombre del método. Debe ser uno de los métodos definidos por el protocolo de depuración remota.
-
commandParams
objeto opcional
Un objeto JSON con parámetros de solicitud. Este objeto debe cumplir con el esquema de parámetros de depuración remota para el método determinado.
-
callback
función opcional
El parámetro
callback
se ve de la siguiente manera:(result?: object) => void
-
resultado
objeto opcional
JSON con la respuesta. La estructura de la respuesta varía según el nombre del método y se define mediante los “retornos” de la descripción del comando en el protocolo de depuración remota.
-
Muestra
-
Promise<object | indefinido>
Chrome 96 y versiones posterioresLas promesas solo son compatibles con Manifest V3 y versiones posteriores; otras plataformas deben usar devoluciones de llamada.
Eventos
onDetach
chrome.debugger.onDetach.addListener(
callback: function,
)
Se activa cuando el navegador finaliza la sesión de depuración de la pestaña. Esto sucede cuando se cierra la pestaña o se invoca a las Herramientas para desarrolladores de Chrome para la pestaña adjunta.
Parámetros
-
callback
función
El parámetro
callback
se ve de la siguiente manera:(source: Debuggee, reason: DetachReason) => void
-
source
-
Reason
-
onEvent
chrome.debugger.onEvent.addListener(
callback: function,
)
Se activa cada vez que el objetivo de depuración genera un evento de instrumentación.
Parámetros
-
callback
función
El parámetro
callback
se ve de la siguiente manera:(source: DebuggerSession, method: string, params?: object) => void
-
source
-
method
string
-
params
objeto opcional
-