Descripción
Usa la API de chrome.devtools.recorder para personalizar el panel de Recorder en DevTools.
La API de devtools.recorder es una función de vista previa que te permite extender el panel del Recorder en las Herramientas para desarrolladores de Chrome.
Consulta el resumen de las APIs de DevTools para obtener una introducción general al uso de las APIs de Herramientas para desarrolladores.
Disponibilidad
Conceptos y uso
Cómo personalizar la función de exportación
Para registrar un complemento de extensión, usa la función registerRecorderExtensionPlugin. Esta función requiere una instancia de complemento, un name y un mediaType como parámetros. La instancia del complemento debe implementar dos métodos: stringify y stringifyStep.
El name que proporciona la extensión aparece en el menú Export del panel Recorder.
Según el contexto de exportación, cuando el usuario hace clic en la opción de exportación que proporciona la extensión, el panel Recorder invoca una de las dos funciones:
stringifyque recibe una grabación completa del flujo de usuariosstringifyStepque recibe un solo paso registrado
El parámetro mediaType permite que la extensión especifique el tipo de resultado que genera con las funciones stringify y stringifyStep. Por ejemplo, application/javascript si el resultado es un programa de JavaScript.
Cómo personalizar el botón de repetición
Para personalizar el botón de reproducción en la grabadora, usa la función registerRecorderExtensionPlugin. El complemento debe implementar el método replay para que la personalización surta efecto.
Si se detecta el método, aparecerá un botón de reproducción en la Grabadora.
Cuando se haga clic en el botón, el objeto de grabación actual se pasará como el primer argumento al método replay.
En este punto, la extensión puede mostrar un RecorderView para controlar la reproducción o usar otras APIs de extensión para procesar la solicitud de reproducción. Para crear un objeto RecorderView nuevo, invoca chrome.devtools.recorder.createView.
Ejemplos
Complemento de exportación
El siguiente código implementa un complemento de extensión que convierte una grabación en una cadena con 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'
);
Complemento de repetición
El siguiente código implementa un complemento de extensión que crea una vista de Recorder ficticia y la muestra cuando se realiza una solicitud de reproducción:
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'
);
Encuentra un ejemplo completo de extensión en GitHub.
Tipos
RecorderExtensionPlugin
Es una interfaz de complementos que invoca el panel de Grabadora para personalizarlo.
Propiedades
-
volver a reproducir
void
Chrome 112 y versiones posterioresPermite que la extensión implemente una funcionalidad de reproducción personalizada.
La función
replayse ve de la siguiente manera:(recording: object) => {...}
-
grabación
objeto
Es una grabación de la interacción del usuario con la página. Debe coincidir con el esquema de grabación de Puppeteer.
-
-
stringify
void
Convierte una grabación del formato del panel de Recorder en una cadena.
La función
stringifyse ve de la siguiente manera:(recording: object) => {...}
-
grabación
objeto
Es una grabación de la interacción del usuario con la página. Debe coincidir con el esquema de grabación de Puppeteer.
-
-
stringifyStep
void
Convierte un paso de la grabación del formato del panel de Grabadora en una cadena.
La función
stringifyStepse ve de la siguiente manera:(step: object) => {...}
-
paso
objeto
Es un paso de la grabación de una interacción del usuario con la página. Debe coincidir con el esquema de pasos de Puppeteer.
-
RecorderView
Representa una vista creada por extensión para incorporarse dentro del panel del Recorder.
Propiedades
-
onHidden
Event<functionvoidvoid>
Se activa cuando se oculta la vista.
La función
onHidden.addListenerse ve de la siguiente manera:(callback: function) => {...}
-
callback
función
El parámetro
callbackse ve de la siguiente manera:() => void
-
-
onShown
Event<functionvoidvoid>
Se activa cuando se muestra la vista.
La función
onShown.addListenerse ve de la siguiente manera:(callback: function) => {...}
-
callback
función
El parámetro
callbackse ve de la siguiente manera:() => void
-
-
mostrar
void
Indica que la extensión quiere mostrar esta vista en el panel de Grabadora.
La función
showse ve de la siguiente manera:() => {...}
Métodos
createView()
chrome.devtools.recorder.createView(
title: string,
pagePath: string,
): RecorderView
Crea una vista que pueda controlar la reproducción. Esta vista se incorporará en el panel del grabador.
Parámetros
-
título
string
Es el título que se muestra junto al ícono de la extensión en la barra de herramientas de Herramientas para desarrolladores.
-
pagePath
string
Ruta de acceso de la página HTML del panel relativa al directorio de la extensión.
Muestra
registerRecorderExtensionPlugin()
chrome.devtools.recorder.registerRecorderExtensionPlugin(
plugin: RecorderExtensionPlugin,
name: string,
mediaType: string,
): void
Registra un complemento de extensión de Recorder.
Parámetros
-
complemento
Es una instancia que implementa la interfaz RecorderExtensionPlugin.
-
nombre
string
Es el nombre del complemento.
-
mediaType
string
Es el tipo de medio del contenido de cadena que produce el complemento.