refresh date: 2026-09-25 robots: noindex
Descripción
La API de chrome.debugger sirve como un transporte alternativo para el protocolo de depuración remota de Chrome. Usa chrome.debugger para adjuntar a una o más pestañas para instrumentar la interacción de red, depurar JavaScript, mutar el DOM y CSS, y mucho más. Usa la propiedad tabId de Debuggee para segmentar las pestañas con sendCommand y enrutar los eventos por tabId desde las devoluciones de llamada de onEvent.
Permisos
debuggerNota de seguridad
Por motivos de seguridad, la API de chrome.debugger no proporciona acceso a todos los dominios del protocolo de las Herramientas para desarrolladores de Chrome. Los dominios disponibles son los siguientes: Accesibilidad,
Auditorías, CacheStorage, Consola,
CSS, Base de datos, Depurador, DOM,
DOMDebugger, DOMSnapshot,
Emulación, Recuperación, E/S, Entrada,
Inspector, Registro, Red, Superposición,
Página, Rendimiento,
Entorno de ejecución, Almacenamiento, Destino, Seguimiento,
WebAudio y WebAuthn.
Manifiesto
Debes declarar el permiso "debugger" en el manifiesto de tu extensión para usar esta API.
{
"name": "My extension",
...
"permissions": [
"debugger",
],
...
}
Ejemplos
Para probar esta API, instala el ejemplo de la API de depurador del repositorio chrome-extension-samples.
Tipos
Debuggee
Es el identificador del depurado. Se debe especificar tabId, extensionId o targetId
Propiedades
-
extensionId
string opcional
Es el ID de la extensión que quieres depurar. Solo se puede adjuntar a una página en segundo plano de la extensión cuando se usa el interruptor de línea de comandos
--silent-debugger-extension-api. -
tabId
number opcional
Es el ID de la pestaña que quieres depurar.
-
targetId
string opcional
Es el ID opaco del destino de depuración.
DebuggerSession
Es el identificador de la sesión del depurador. 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 secundaria dentro de la sesión raíz del depurado. Si se especifica sessionId cuando se pasa a sendCommand, se orienta a una sesión de protocolo secundaria dentro de la sesión de depuración raíz.
Propiedades
-
extensionId
string opcional
Es el ID de la extensión que quieres depurar. Solo se puede adjuntar a una página en segundo plano de la 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 Herramientas para desarrolladores de Chrome. Identifica una sesión secundaria dentro de la sesión raíz identificada por tabId, extensionId o targetId.
-
tabId
number opcional
Es el ID de la pestaña que quieres depurar.
-
targetId
string opcional
Es el ID opaco del destino de depuración.
DetachReason
Es el motivo de la finalización de la conexión.
Enum
"target_closed"
"canceled_by_user"
TargetInfo
Información del destino de depuración
Propiedades
-
se conecte el disco
booleano
Es verdadero si el depurador ya está adjunto.
-
extensionId
string opcional
Es el ID de la extensión, que se define si type = 'background_page'.
-
faviconUrl
string opcional
Es la URL del ícono de página de destino.
-
id
string
ID de destino.
-
tabId
number opcional
Es el ID de la pestaña, que se define si el tipo es "page".
-
título
string
Es el título de la página de destino.
-
tipo
Es el tipo de destino.
-
url
string
URL de destino.
TargetInfoType
Es el tipo de destino.
Enum
"page"
"background_page"
"worker"
"other"
Métodos
attach()
chrome.debugger.attach(
target: Debuggee,
requiredVersion: string,
callback?: function,
): Promise<void>
Adjunta el depurador al destino determinado.
Parámetros
-
objetivo
Es el destino de depuración al que deseas conectarte.
-
requiredVersion
string
Es la versión del protocolo de depuración requerida ("0.1"). Solo se puede conectar al depurado con la versión principal coincidente y la versión secundaria mayor o igual. La lista de las versiones del protocolo se puede obtener aquí.
-
callback
función opcional
El parámetro
callbackse ve de la siguiente manera:() => void
Muestra
-
Promise<void>
Chrome 96 y versiones posterioresSe resuelve una vez que la operación de conexión se completa correctamente o falla. La promesa se resuelve sin valor. Si la conexión falla, se rechazará la promesa.
Las promesas solo se admiten en Manifest V3 y versiones posteriores. Otras plataformas deben usar devoluciones de llamada.
detach()
chrome.debugger.detach(
target: Debuggee,
callback?: function,
): Promise<void>
Desconecta el depurador del destino determinado.
Parámetros
-
objetivo
Es el destino de depuración del que deseas desconectarte.
-
callback
función opcional
El parámetro
callbackse ve de la siguiente manera:() => void
Muestra
-
Promise<void>
Chrome 96 y versiones posterioresSe resuelve una vez que la operación de desconexión se completa correctamente o falla. La promesa se resuelve sin valor. Si la desconexión falla, se rechazará la promesa.
Las promesas solo se admiten en Manifest V3 y versiones posteriores. Otras plataformas deben usar devoluciones de llamada.
getTargets()
chrome.debugger.getTargets(
callback?: function,
): Promise<TargetInfo[]>
Devuelve la lista de destinos de depuración disponibles.
Parámetros
-
callback
función opcional
El parámetro
callbackse ve de la siguiente manera:(result: TargetInfo[]) => void
-
resultado
Es un array de objetos TargetInfo que corresponden a los destinos de depuración disponibles.
-
Muestra
-
Promise<TargetInfo[]>
Chrome 96 y versiones posterioresLas promesas solo se admiten en Manifest V3 y versiones posteriores. Otras plataformas deben usar devoluciones de llamada.
sendCommand()
chrome.debugger.sendCommand(
target: DebuggerSession,
method: string,
commandParams?: object,
callback?: function,
): Promise<object | undefined>
Envía el comando determinado al destino de depuración.
Parámetros
-
objetivo
Es el destino de depuración al que deseas enviar el comando.
-
método
string
Nombre del método. Debe ser uno de los métodos definidos por el protocolo de depuración remota.
-
commandParams
objeto opcional
Es 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
callbackse ve de la siguiente manera:(result?: object) => void
-
resultado
objeto opcional
Es el objeto JSON con la respuesta. La estructura de la respuesta varía según el nombre del método y se define con el atributo "returns" de la descripción del comando en el protocolo de depuración remota.
-
Muestra
-
Promise<object | undefined>
Chrome 96 y versiones posterioresEs el cuerpo de la respuesta. Si se produce un error mientras se publica el mensaje, se rechazará la promesa.
Las promesas solo se admiten en 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 invocan las Herramientas para desarrolladores de Chrome para la pestaña adjunta.
Parámetros
-
callback
función
El parámetro
callbackse 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 destino de depuración emite un evento de instrumentación.
Parámetros
-
callback
función
El parámetro
callbackse ve de la siguiente manera:(source: DebuggerSession, method: string, params?: object) => void
-
source
-
método
string
-
params
objeto opcional
-