Descripción
Usa la API de chrome.devtools.recorder
para personalizar el panel de la grabadora en Herramientas para desarrolladores.
Disponibilidad
Consulta el resumen de las APIs de Herramientas para desarrolladores para ver una introducción general al uso de las APIs de las Herramientas para desarrolladores.
Descripción general
La API de devtools.recorder
es una función de vista previa que te permite extender el panel Grabadora en las Herramientas para desarrolladores de Chrome.
A partir de Chrome M105, puedes extender la función de exportación. A partir de Chrome M112, puedes extender el botón de reproducción.
Personaliza 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, name
y mediaType
como parámetros. La instancia del complemento debe implementar dos métodos: stringify
y stringifyStep
.
El name
que proporciona la extensión se muestra en el menú Export del panel Grabadora.
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 Grabadora invoca una de las dos funciones:
stringify
que recibe un registro completo del flujo de usuariosstringifyStep
que recibe un solo paso registrado
El parámetro mediaType
permite que la extensión especifique el tipo de resultado que genera con el
funciones stringify
y stringifyStep
. Por ejemplo, application/javascript
si el resultado es un código JavaScript.
.
Ejemplo de complemento de exportación
En el siguiente código, se implementa un complemento de extensión que envía una grabación mediante 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'
);
Cómo personalizar el botón de reproducción
Para personalizar el botón de repetición en la Grabadora, usa la función registerRecorderExtensionPlugin
. El complemento debe implementar el método replay
para que se aplique la personalización.
Si se detecta el método, aparecerá un botón de reproducción en la Grabadora.
Cuando hagas clic en el botón, el objeto de grabación actual se pasará como primer argumento al método replay
.
En este punto, la extensión puede mostrar una RecorderView
para controlar la repetición o usar otras APIs de extensión para procesar la solicitud de repetición. Para crear un RecorderView
nuevo, invoca a chrome.devtools.recorder.createView
.
Ejemplo de complemento para volver a reproducir
El siguiente código implementa un complemento de extensión que crea una vista ficticia de Grabadora y la muestra ante una solicitud de repetició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 complemento que el panel de Grabadora invoca para personalizarlo.
Propiedades
-
volver a reproducir
void
Chrome 112 y versiones posterioresPermite que la extensión implemente la funcionalidad de reproducción personalizada.
La función
replay
se ve de la siguiente manera:(recording: object) => {...}
-
grabación
objeto
Un registro de la interacción del usuario con la página. Debería coincidir con el esquema de grabación de Puppeteer.
-
-
Convertir en string
void
Convierte una grabación del formato del panel de Grabadora en una cadena.
La función
stringify
se ve de la siguiente manera:(recording: object) => {...}
-
grabación
objeto
Un registro de la interacción del usuario con la página. Debería 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
stringifyStep
se ve de la siguiente manera:(step: object) => {...}
-
paso
objeto
Un paso de registro de una interacción del usuario con la página. Debería coincidir con el esquema de pasos de Puppeteer.
-
RecorderView
Representa una vista creada por una extensión para incorporarse en el panel de Grabadora.
Propiedades
-
onHidden
Evento<functionvoidvoid>
Se activa cuando la vista está oculta.
La función
onHidden.addListener
se ve de la siguiente manera:(callback: function) => {...}
-
callback
función
El parámetro
callback
se ve de la siguiente manera:() => void
-
-
onShown
Evento<functionvoidvoid>
Se activa cuando se muestra la vista.
La función
onShown.addListener
se ve de la siguiente manera:(callback: function) => {...}
-
callback
función
El parámetro
callback
se ve de la siguiente manera:() => void
-
-
mostrar
void
Indica que la extensión desea mostrar esta vista en el panel de Grabadora.
La función
show
se ve de la siguiente manera:() => {...}
Métodos
createView()
chrome.devtools.recorder.createView(
title: string,
pagePath: string,
)
Crea una vista que puede controlar la repetición. Esta vista se incorporará en el panel de la grabadora.
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 las Herramientas para desarrolladores.
-
pagePath
string
Es la ruta de acceso de la página HTML del panel en relación con el directorio de la extensión.
Muestra
registerRecorderExtensionPlugin()
chrome.devtools.recorder.registerRecorderExtensionPlugin(
plugin: RecorderExtensionPlugin,
name: string,
mediaType: string,
)
Registra un complemento de extensión de Grabadora.
Parámetros
-
plugin
Una instancia que implementa la interfaz de RecorderExtensionPlugin.
-
nombre
string
Es el nombre del complemento.
-
mediaType
string
Es el tipo de medio del contenido de cadenas que produce el complemento.