Description
Utilisez l'API chrome.devtools.recorder pour personnaliser le panneau "Enregistreur" dans les outils de développement.
L'API devtools.recorder est une fonctionnalité en preview qui vous permet d'étendre le panneau Enregistreur dans les outils pour les développeurs Chrome.
Consultez le récapitulatif des API d'outils de développement pour obtenir une présentation générale de l'utilisation des API des outils de développement.
Disponibilité
Concepts et utilisation
Personnalisation de la fonctionnalité d'exportation
Pour enregistrer un plug-in d'extension, utilisez la fonction registerRecorderExtensionPlugin. Cette fonction nécessite une instance de plug-in, ainsi que name et mediaType comme paramètres. L'instance de plug-in doit implémenter deux méthodes: stringify et stringifyStep.
Le fichier name fourni par l'extension s'affiche dans le menu Export (Exporter) du panneau Enregistreur.
Selon le 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:
stringifyqui reçoit un enregistrement de l'intégralité du parcours utilisateurstringifyStepqui reçoit un seul pas enregistré
Le paramètre mediaType permet à l'extension de spécifier le type de sortie qu'elle génère avec le
Fonctions stringify et stringifyStep. Par exemple, application/javascript si le résultat est un code JavaScript
programme.
Personnaliser le bouton de relecture
Pour personnaliser le bouton de relecture dans l'Enregistreur, utilisez la fonction registerRecorderExtensionPlugin. Le plug-in doit implémenter la méthode replay pour que la personnalisation prenne effet.
Si cette méthode est détectée, un bouton de nouvelle lecture 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 chaîne un enregistrement à 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'
);
Relancer le plug-in
Le code suivant implémente un plug-in d'extension qui crée une vue factice de l'Enregistreur 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'
);
Recherchez un exemple d'extension complet sur GitHub.
Types
RecorderExtensionPlugin
Interface de plug-in appelée par le panneau "Enregistreur" pour personnaliser ce panneau.
Propriétés
-
revoir
vide
Chrome 112 et versions ultérieuresPermet à l'extension d'implémenter une fonctionnalité de relecture personnalisée.
La fonction
replayse présente comme suit:(recording: object) => {...}
-
enregistrement
objet
Enregistrement de l'interaction de l'utilisateur avec la page Il doit correspondre au schéma d'enregistrement de Puppeteer.
-
-
chaîner
vide
Convertit un enregistrement au format du panneau "Enregistreur" en chaîne.
La fonction
stringifyse présente comme suit:(recording: object) => {...}
-
enregistrement
objet
Enregistrement de l'interaction de l'utilisateur avec la page Il doit correspondre au schéma d'enregistrement de Puppeteer.
-
-
stringifyStep
vide
Convertit une étape de l'enregistrement au format du panneau "Enregistreur" en chaîne.
La fonction
stringifyStepse 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 de pas de Puppeteer.
-
RecorderView
Représente une vue créée par une extension à intégrer dans le panneau "Enregistreur".
Propriétés
-
onHidden
Événement<functionvoid>
Déclenché lorsque la vue est masquée
La fonction
onHidden.addListenerse présente comme suit:(callback: function) => {...}
-
rappel
fonction
Le paramètre
callbackse présente comme suit:() => void
-
-
onShown
Événement<functionvoid>
Déclenché lorsque la vue est affichée.
La fonction
onShown.addListenerse présente comme suit:(callback: function) => {...}
-
rappel
fonction
Le paramètre
callbackse présente comme suit:() => void
-
-
afficher
vide
Indique que l'extension souhaite afficher cette vue dans le panneau "Enregistreur".
La fonction
showse présente comme suit:() => {...}
Méthodes
createView()
chrome.devtools.recorder.createView(
title: string,
pagePath: string,
): RecorderView
Crée une vue capable de gérer la relecture. Cette vue sera intégrée dans le panneau "Enregistreur".
Paramètres
-
titre
chaîne
Titre affiché à côté de l'icône de l'extension dans la barre d'outils des outils pour les développeurs.
-
pagePath
chaîne
Chemin de la page HTML du panneau relative 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 Enregistreur.
Paramètres
-
plug-in
Instance qui implémente l'interface RecorderExtensionPlugin.
-
nom
chaîne
Nom du plug-in.
-
mediaType
chaîne
Type de contenu du contenu de chaîne généré par le plug-in.