Description
L'API chrome.debugger sert de transport alternatif pour le protocole de débogage à distance de Chrome. Utilisez chrome.debugger pour vous attacher à un ou plusieurs onglets afin d'instrumenter l'interaction réseau, de déboguer JavaScript, de modifier le DOM et le CSS, et plus encore. Utilisez la propriété Debuggee tabId pour cibler les onglets avec sendCommand et acheminer les événements par tabId à partir des rappels onEvent.
Autorisations
debuggerRemarque concernant la sécurité
Pour des raisons de sécurité, l'API chrome.debugger ne donne pas accès à tous les domaines du protocole Chrome DevTools. Les domaines disponibles sont les suivants : Accessibility, Audits, CacheStorage, Console, CSS, Database, Debugger, DOM, DOMDebugger, DOMSnapshot, Emulation, Fetch, IO, Input, Inspector, Log, Network, Overlay, Page, Performance, Profiler, Runtime, Storage, Target, Tracing, WebAudio et WebAuthn.
Fichier manifeste
Pour utiliser cette API, vous devez déclarer l'autorisation "debugger" dans le fichier manifeste de votre extension.
{
  "name": "My extension",
  ...
  "permissions": [
    "debugger",
  ],
  ...
}
Exemples
Pour essayer cette API, installez l'exemple d'API du débogueur à partir du dépôt chrome-extension-samples.
Types
Debuggee
Identifiant de l'élément débogué. Vous devez spécifier tabId, extensionId ou targetId.
Propriétés
- 
    extensionIdchaîne facultative ID de l'extension que vous souhaitez déboguer. Il n'est possible de s'associer à une page d'arrière-plan d'extension que lorsque le commutateur de ligne de commande --silent-debugger-extension-apiest utilisé.
- 
    tabIdnumber facultatif ID de l'onglet que vous souhaitez déboguer. 
- 
    targetIdchaîne facultative ID opaque de la cible de débogage. 
DebuggerSession
Identifiant de session du débogueur. Vous devez spécifier tabId, extensionId ou targetId. Vous pouvez également fournir un sessionId 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 au sein de la session de débogage racine. Si sessionId est spécifié lorsqu'il est transmis à sendCommand, il cible une session de protocole enfant dans la session de débogage racine.
Propriétés
- 
    extensionIdchaîne facultative ID de l'extension que vous souhaitez déboguer. Il n'est possible de s'associer à une page d'arrière-plan d'extension que lorsque le commutateur de ligne de commande --silent-debugger-extension-apiest utilisé.
- 
    sessionIdchaîne facultative ID opaque de la session du protocole Chrome DevTools. Identifie une session enfant dans la session racine identifiée par tabId, extensionId ou targetId. 
- 
    tabIdnumber facultatif ID de l'onglet que vous souhaitez déboguer. 
- 
    targetIdchaîne facultative ID opaque de la cible de débogage. 
DetachReason
Motif de la terminaison de la connexion.
Énumération
"target_closed" 
 
"canceled_by_user" 
 
TargetInfo
Informations de débogage de la cible
Propriétés
- 
    associébooléen "True" si le débogueur est déjà associé. 
- 
    extensionIdchaîne facultative ID de l'extension, défini si le type est "background_page". 
- 
    faviconUrlchaîne facultative URL du favicon cible. 
- 
    idchaîne ID de la cible. 
- 
    tabIdnumber facultatif ID de l'onglet, défini si le type est "page". 
- 
    titrechaîne Titre de la page cible. 
- 
    typeType de cible. 
- 
    urlchaîne URL cible. 
TargetInfoType
Type de cible.
Énumération
"page" 
 
"background_page" 
 
"worker" 
 
"other" 
 
Méthodes
attach()
chrome.debugger.attach(
target: Debuggee,
requiredVersion: string,
callback?: function,
): Promise<void>
Associe le débogueur à la cible indiquée.
Paramètres
- 
    cibleCible de débogage à laquelle vous souhaitez associer le débogueur. 
- 
    requiredVersionchaîne Version requise du protocole de débogage ("0.1"). Vous ne pouvez vous associer au débogueur qu'avec une version majeure correspondante et une version mineure supérieure ou égale. Pour obtenir la liste des versions du protocole, cliquez ici. 
- 
    callbackfunction facultatif Le paramètre callbackse présente comme suit :() => void 
Renvoie
- 
            Promise<void> Chrome 96 et versions ultérieuresLes promesses ne sont compatibles qu'avec Manifest V3 et les versions ultérieures. Les autres plates-formes doivent utiliser des rappels. 
detach()
chrome.debugger.detach(
target: Debuggee,
callback?: function,
): Promise<void>
Détache le débogueur de la cible donnée.
Paramètres
- 
    cibleCible de débogage à partir de laquelle vous souhaitez dissocier. 
- 
    callbackfunction facultatif Le paramètre callbackse présente comme suit :() => void 
Renvoie
- 
            Promise<void> Chrome 96 et versions ultérieuresLes promesses ne sont compatibles qu'avec Manifest V3 et les versions ultérieures. Les autres plates-formes doivent utiliser des rappels. 
getTargets()
chrome.debugger.getTargets(
callback?: function,
): Promise<TargetInfo[]>
Renvoie la liste des cibles de débogage disponibles.
Paramètres
- 
    callbackfunction facultatif Le paramètre callbackse présente comme suit :(result: TargetInfo[]) => void - 
    résultatTableau d'objets TargetInfo correspondant aux cibles de débogage disponibles. 
 
- 
    
Renvoie
- 
            Promise<TargetInfo[]> Chrome 96 et versions ultérieuresLes promesses ne sont compatibles qu'avec Manifest V3 et les versions ultérieures. Les autres plates-formes doivent utiliser des rappels. 
sendCommand()
chrome.debugger.sendCommand(
target: DebuggerSession,
method: string,
commandParams?: object,
callback?: function,
): Promise<object | undefined>
Envoie la commande donnée à la cible de débogage.
Paramètres
- 
    cibleCible de débogage à laquelle vous souhaitez envoyer la commande. 
- 
    methodchaîne Nom de la méthode. Doit être l'une des méthodes définies par le protocole de débogage à distance. 
- 
    commandParamsobject facultatif Objet JSON contenant les paramètres de la requête. Cet objet doit être conforme au schéma des paramètres de débogage à distance pour la méthode donnée. 
- 
    callbackfunction facultatif Le paramètre callbackse présente comme suit :(result?: object) => void - 
    résultatobject facultatif Objet JSON contenant la réponse. La structure de la réponse varie en fonction du nom de la méthode et est définie par l'attribut "returns" de la description de la commande dans le protocole de débogage à distance. 
 
- 
    
Renvoie
- 
            Promise<object | undefined> Chrome 96 et versions ultérieuresLes promesses ne sont compatibles qu'avec Manifest V3 et les versions ultérieures. Les autres plates-formes doivent utiliser des rappels. 
Événements
onDetach
chrome.debugger.onDetach.addListener(
callback: function,
)
Événement 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 de développement Chrome sont appelés pour l'onglet associé.
Paramètres
- 
    callbackfonction Le paramètre callbackse présente comme suit :(source: Debuggee, reason: DetachReason) => void - 
    source
- 
    reason
 
- 
    
onEvent
chrome.debugger.onEvent.addListener(
callback: function,
)
Déclenché chaque fois qu'un événement d'instrumentation de problème de cible de débogage se produit.
Paramètres
- 
    callbackfonction Le paramètre callbackse présente comme suit :(source: DebuggerSession, method: string, params?: object) => void - 
    source
- 
    methodchaîne 
- 
    paramsobject facultatif 
 
-