Description
L'API chrome.debugger
sert de moyen de transport alternatif pour le protocole de débogage à distance de Chrome. Utilisez chrome.debugger
pour associer un ou plusieurs onglets afin d'instrumenter l'interaction réseau, de déboguer JavaScript, de modifier le DOM et le CSS, etc. Utilisez la propriété tabId
de Debuggee
pour cibler les onglets avec sendCommand
et acheminer les événements par tabId
à partir de rappels onEvent
.
Autorisations
debugger
Remarque concernant la sécurité
Pour des raisons de sécurité, l'API chrome.debugger
ne permet pas d'accéder à tous les outils pour les développeurs Chrome
Domaines de protocole. Les domaines disponibles sont les suivants: Accessibilité,
Audits, CacheStorage, Console
CSS, base de données, Debugger, DOM,
DOMDebugger, DOMSnapshot,
Émulation, Récupération, E/S, Entrée.
Inspecteur, journal, réseau, superposition,
Page, Performance, Profiler,
Exécution, Stockage, Cible, Traçage.
WebAudio et WebAuthn.
Fichier manifeste
Vous devez déclarer l'autorisation "debugger"
dans le fichier manifeste de votre extension pour utiliser cette API.
{
"name": "My extension",
...
"permissions": [
"debugger",
],
...
}
Exemples
Pour essayer cette API, installez l'exemple d'API de débogage à partir de chrome-extension-samples. un dépôt de clés.
Types
Debuggee
Identifiant de l'élément débogué. Vous devez indiquer tabId, extensionId ou targetId
Propriétés
-
extensionId
chaîne facultatif
Identifiant de l'extension que vous souhaitez déboguer. L'association à une page d'arrière-plan d'extension n'est possible que lorsque le commutateur de ligne de commande
--silent-debugger-extension-api
est utilisé. -
tabId
numéro facultatif
Identifiant de l'onglet que vous souhaitez déboguer.
-
targetId
chaîne facultatif
ID opaque de la cible de débogage.
DebuggerSession
Identifiant de session du débogueur. Vous devez indiquer tabId, extensionId ou targetId. Vous pouvez également fournir un ID de session facultatif. Si sessionId est spécifié pour les arguments envoyés depuis onEvent
, cela signifie que l'événement provient d'une session de protocole enfant dans la session racine à déboguer. Si sessionId est spécifié lors de sa transmission à sendCommand
, il cible une session de protocole enfant dans la session racine à déboguer.
Propriétés
-
extensionId
chaîne facultatif
Identifiant de l'extension que vous souhaitez déboguer. L'association à une page d'arrière-plan d'extension n'est possible que lorsque le commutateur de ligne de commande
--silent-debugger-extension-api
est utilisé. -
sessionId
chaîne facultatif
ID opaque de la session du protocole des outils pour les développeurs Chrome. Identifie une session enfant dans la session racine identifiée par tabId, extensionId ou targetId.
-
tabId
numéro facultatif
Identifiant de l'onglet que vous souhaitez déboguer.
-
targetId
chaîne facultatif
ID opaque de la cible de débogage.
DetachReason
Motif de l'interruption de la connexion.
Énumération
"target_closed"
"canceled_by_user"
TargetInfo
Informations sur la cible de débogage
Propriétés
-
associé
booléen
"True" si le débogueur est déjà associé.
-
extensionId
chaîne facultatif
ID de l'extension, défini si le type est "background_page".
-
faviconUrl
chaîne facultatif
URL du favicon cible.
-
id
chaîne
ID cible.
-
tabId
numéro facultatif
ID de l'onglet, défini si type == "page".
-
titre
chaîne
Titre de la page cible.
-
type
Type de cible.
-
url
chaîne
URL cible.
TargetInfoType
Type de cible.
Énumération
"page"
"background_page"
"worker"
"autre"
Méthodes
attach()
chrome.debugger.attach(
target: Debuggee,
requiredVersion: string,
callback?: function,
)
Attache le débogueur à la cible donnée.
Paramètres
-
cible
Cible de débogage à laquelle vous souhaitez l'associer.
-
requiredVersion
chaîne
Version du protocole de débogage requise ("0.1"). Vous ne pouvez joindre l'élément à déboguer qu'à la version majeure correspondante et à la version mineure supérieure ou égale. Pour obtenir la liste des versions du protocole, cliquez ici.
-
rappel
function facultatif
Le paramètre
callback
se présente comme suit:() => void
Renvoie
-
Promesse<void>
Chrome 96 ou version ultérieureLes promesses ne sont compatibles qu'avec Manifest V3 et versions ultérieures. Les autres plates-formes doivent utiliser des rappels.
detach()
chrome.debugger.detach(
target: Debuggee,
callback?: function,
)
Dissocie le débogueur de la cible donnée.
Paramètres
-
cible
Cible de débogage dont vous souhaitez la dissocier.
-
rappel
function facultatif
Le paramètre
callback
se présente comme suit:() => void
Renvoie
-
Promesse<void>
Chrome 96 ou version ultérieureLes promesses ne sont compatibles qu'avec Manifest V3 et versions ultérieures. Les autres plates-formes doivent utiliser des rappels.
getTargets()
chrome.debugger.getTargets(
callback?: function,
)
Affiche la liste des cibles de débogage disponibles.
Paramètres
-
rappel
function facultatif
Le paramètre
callback
se présente comme suit:(result: TargetInfo[]) => void
-
résultat
Tableau d'objets TargetInfo correspondant aux cibles de débogage disponibles.
-
Renvoie
-
Promise<TargetInfo[]>
Chrome 96 ou version ultérieureLes promesses ne sont compatibles qu'avec Manifest V3 et versions ultérieures. Les autres plates-formes doivent utiliser des rappels.
sendCommand()
chrome.debugger.sendCommand(
target: DebuggerSession,
method: string,
commandParams?: object,
callback?: function,
)
Envoie la commande donnée à la cible de débogage.
Paramètres
-
cible
Cible de débogage à laquelle vous souhaitez envoyer la commande.
-
method
chaîne
Nom de la méthode. Doit correspondre à l'une des méthodes définies par le protocole de débogage à distance.
-
commandParams
objet facultatif
Objet JSON avec des paramètres de requête. Cet objet doit être conforme au schéma des paramètres de débogage distant pour la méthode donnée.
-
rappel
function facultatif
Le paramètre
callback
se présente comme suit:(result?: object) => void
-
résultat
objet facultatif
JSON avec la réponse. La structure de la réponse varie en fonction du nom de la méthode et est définie par les valeurs de la description de la commande dans le protocole de débogage à distance.
-
Renvoie
-
Promise<object | indéfini>
Chrome 96 ou version ultérieureLes promesses ne sont compatibles qu'avec Manifest V3 et versions ultérieures. Les autres plates-formes doivent utiliser des rappels.
Événements
onDetach
chrome.debugger.onDetach.addListener(
callback: function,
)
Déclenché lorsque le navigateur met fin à la session de débogage de l'onglet. Cela se produit lorsque l'onglet est fermé ou que les outils pour les développeurs Chrome sont appelés pour l'onglet joint.
Paramètres
-
rappel
fonction
Le paramètre
callback
se présente comme suit:(source: Debuggee, reason: DetachReason) => void
-
source
-
reason
-
onEvent
chrome.debugger.onEvent.addListener(
callback: function,
)
Déclenché chaque fois que le débogage de la cible rencontre un problème d'événement d'instrumentation.
Paramètres
-
rappel
fonction
Le paramètre
callback
se présente comme suit:(source: DebuggerSession, method: string, params?: object) => void
-
source
-
method
chaîne
-
params
objet facultatif
-