chrome.devtools.recorder

Description

Utilisez l'API chrome.devtools.recorder pour personnaliser le panneau "Enregistreur" dans les outils de développement.

devtools.recorder L'API est une fonctionnalité en preview qui vous permet d'étendre le panneau Enregistreur dans les Outils pour les développeurs Chrome.

Pour une introduction générale à l'utilisation des API des outils de développement, consultez le résumé des API des outils de développement.

Disponibilité

Chrome 105+

Concepts et utilisation

Personnaliser la fonctionnalité d'exportation

Pour enregistrer un plug-in d'extension, utilisez la fonction registerRecorderExtensionPlugin. Cette fonction nécessite une instance de plug-in, un name et un mediaType comme paramètres. L'instance de plug-in doit implémenter deux méthodes : stringify et stringifyStep.

Le name fourni par l'extension s'affiche dans le menu Exporter du panneau Enregistreur.

En fonction du contexte d'exportation, lorsque l'utilisateur clique sur l'option d'exportation fournie par l'extension, le panneau Enregistreur appelle l'une des deux fonctions suivantes :

Le paramètre mediaType permet à l'extension de spécifier le type de sortie qu'elle génère avec les stringify et stringifyStep fonctions. Par exemple, application/javascript si le résultat est un programme JavaScript.

Personnaliser le bouton "Revoir"

Pour personnaliser le bouton "Revoir" dans l'Enregistreur, utilisez la fonction registerRecorderExtensionPlugin. Le plug-in doit implémenter la méthode replay pour que la personnalisation prenne effet. Si la méthode est détectée, un bouton "Revoir" s'affiche dans l'Enregistreur. Lorsque vous cliquez sur le bouton, l'objet d'enregistrement actuel est transmis en tant que premier argument à la méthode replay.

À ce stade, l'extension peut afficher un RecorderView pour gérer la relecture ou utiliser d'autres API d'extension pour traiter la requête de relecture. Pour créer un RecorderView, appelez chrome.devtools.recorder.createView.

Exemples

Plug-in d'exportation

Le code suivant implémente un plug-in d'extension qui transforme un enregistrement en chaîne à l'aide de JSON.stringify :

class MyPlugin {
  stringify(recording) {
    return Promise.resolve(JSON.stringify(recording));
  }
  stringifyStep(step) {
    return Promise.resolve(JSON.stringify(step));
  }
}

chrome.devtools.recorder.registerRecorderExtensionPlugin(
  new MyPlugin(),
  /*name=*/'MyPlugin',
  /*mediaType=*/'application/json'
);

Plug-in de relecture

Le code suivant implémente un plug-in d'extension qui crée une vue d'enregistreur factice et l'affiche lors d'une requête de relecture :

const view = await chrome.devtools.recorder.createView(
  /* name= */ 'ExtensionName',
  /* pagePath= */ 'Replay.html'
);

let latestRecording;

view.onShown.addListener(() => {
  // Recorder has shown the view. Send additional data to the view if needed.
  chrome.runtime.sendMessage(JSON.stringify(latestRecording));
});

view.onHidden.addListener(() => {
  // Recorder has hidden the view.
});

export class RecorderPlugin {
  replay(recording) {
    // Share the data with the view.
    latestRecording = recording;
    // Request to show the view.
    view.show();
  }
}

chrome.devtools.recorder.registerRecorderExtensionPlugin(
  new RecorderPlugin(),
  /* name=*/ 'CoffeeTest'
);

Vous trouverez un exemple d'extension complet sur GitHub.

Types

RecorderExtensionPlugin

Interface de plug-in que le panneau "Enregistreur" appelle pour personnaliser le panneau "Enregistreur".

Propriétés

  • revoir

    vide

    Chrome 112+

    Permet à l'extension d'implémenter une fonctionnalité de relecture personnalisée.

    La fonction replay se présente comme suit :

    (recording: object) => {...}

  • transformer en chaîne

    vide

    Convertit un enregistrement du format du panneau "Enregistreur" en chaîne.

    La fonction stringify se présente comme suit :

    (recording: object) => {...}

  • stringifyStep

    vide

    Convertit une étape de l'enregistrement du format du panneau "Enregistreur" en chaîne.

    La fonction stringifyStep se présente comme suit :

    (step: object) => {...}

    • étape

      objet

      Étape de l'enregistrement d'une interaction de l'utilisateur avec la page. Il doit correspondre au schéma d'étape de Puppeteer.

RecorderView

Chrome 112+

Représente une vue créée par l'extension à intégrer dans le panneau "Enregistreur".

Propriétés

  • onHidden

    Événement<fonctionvidevide>

    Déclenché lorsque la vue est masquée.

    La fonction onHidden.addListener se présente comme suit :

    (callback: function) => {...}

    • callback

      fonction

      Le paramètre callback se présente comme suit :

      () => void

  • onShown

    Événement<fonctionvidevide>

    Déclenché lorsque la vue est affichée.

    La fonction onShown.addListener se présente comme suit :

    (callback: function) => {...}

    • callback

      fonction

      Le paramètre callback se présente comme suit :

      () => void

  • afficher

    vide

    Indique que l'extension souhaite afficher cette vue dans le panneau "Enregistreur".

    La fonction show se présente comme suit :

    () => {...}

Méthodes

createView()

Chrome 112+
chrome.devtools.recorder.createView(
  title: string,
  pagePath: string,
)
: RecorderView

Crée une vue qui peut gérer la relecture. Cette vue sera intégrée dans le panneau "Enregistreur".

Paramètres

  • title

    chaîne

    Titre affiché à côté de l'icône d'extension dans la barre d'outils des outils de développement.

  • pagePath

    chaîne

    Chemin d'accès à la page HTML du panneau par rapport au répertoire de l'extension.

Renvoie

registerRecorderExtensionPlugin()

chrome.devtools.recorder.registerRecorderExtensionPlugin(
  plugin: RecorderExtensionPlugin,
  name: string,
  mediaType: string,
)
: void

Enregistre un plug-in d'extension d'enregistreur.

Paramètres

  • Instance implémentant l'interface RecorderExtensionPlugin.

  • nom

    chaîne

    Nom du plug-in

  • mediaType

    chaîne

    Type de média du contenu de chaîne produit par le plug-in.