Описание
Используйте API chrome.devtools.recorder
для настройки панели «Рекордер» в DevTools.
Доступность
Общие сведения об использовании API инструментов инструментов разработчика см. в обзоре API-интерфейсов DevTools .
Обзор
devtools.recorder
API — это функция предварительной версии, которая позволяет расширить панель «Рекордер» в Chrome DevTools. Начиная с Chrome M105, вы можете расширить функциональность экспорта. Начиная с Chrome M112, вы можете расширить кнопку повтора.
Настройка функции экспорта
Чтобы зарегистрировать плагин расширения, используйте функцию registerRecorderExtensionPlugin
. Эта функция требует экземпляр плагина, name
и mediaType
в качестве параметров. Экземпляр плагина должен реализовать два метода: stringify
и stringifyStep
.
name
, предоставленное расширением, отображается в меню «Экспорт» на панели «Рекордер» .
В зависимости от контекста экспорта, когда пользователь щелкает опцию экспорта, предоставляемую расширением, панель «Рекордер» вызывает одну из двух функций:
-
stringify
, который получает всю запись пользовательского потока -
stringifyStep
, который получает один записанный шаг
Параметр mediaType
позволяет расширению указать тип вывода, который оно генерирует с помощью функций stringify
и stringifyStep
. Например, application/javascript
, если результатом является программа JavaScript.
Пример плагина экспорта
Следующий код реализует плагин расширения, который преобразует запись в строку с помощью 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'
);
Настройка кнопки повтора
Чтобы настроить кнопку воспроизведения в Recorder , используйте функцию registerRecorderExtensionPlugin
. Плагин должен реализовать метод replay
, чтобы настройка вступила в силу. Если метод обнаружен, в Регистраторе появится кнопка повтора. При нажатии кнопки текущий объект записи будет передан в качестве первого аргумента методу replay
.
На этом этапе расширение может отображать RecorderView
для обработки воспроизведения или использовать другие API расширения для обработки запроса на воспроизведение. Чтобы создать новый RecorderView
, вызовите chrome.devtools.recorder.createView
.
Пример плагина воспроизведения
Следующий код реализует плагин расширения, который создает фиктивное представление Recorder и отображает его по запросу воспроизведения:
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'
);
Полный пример расширения можно найти на GitHub.
Типы
RecorderExtensionPlugin
Интерфейс плагина, который вызывает панель «Рекордер» для настройки панели «Рекордер».
Характеристики
- переиграть
пустота
Хром 112+Позволяет расширению реализовывать пользовательские функции воспроизведения.
Функция
replay
выглядит так:(recording: object) => {...}
- запись
объект
Запись взаимодействия пользователя со страницей. Это должно соответствовать схеме записи Puppeteer .
- строкировать
пустота
Преобразует запись из формата панели «Запись» в строку.
Функция
stringify
выглядит так:(recording: object) => {...}
- запись
объект
Запись взаимодействия пользователя со страницей. Это должно соответствовать схеме записи Puppeteer .
- stringifyStep
пустота
Преобразует шаг записи из формата панели «Рекордер» в строку.
Функция
stringifyStep
выглядит так:(step: object) => {...}
- шаг
объект
Шаг записи взаимодействия пользователя со страницей. Это должно соответствовать схеме шагов Puppeteer .
RecorderView
Представляет представление, созданное расширением для внедрения в панель «Рекордер».
Характеристики
- onHidden
Событие<functionvoidvoid>
Вызывается, когда представление скрыто.
Функция
onHidden.addListener
выглядит так:(callback: function) => {...}
- перезвонить
функция
Параметр
callback
выглядит так:() => void
- onShown
Событие<functionvoidvoid>
Вызывается, когда отображается представление.
Функция
onShown.addListener
выглядит так:(callback: function) => {...}
- перезвонить
функция
Параметр
callback
выглядит так:() => void
- показывать
пустота
Указывает, что расширение хочет отобразить это представление на панели «Рекордер».
Функция
show
выглядит так:() => {...}
Методы
createView()
chrome.devtools.recorder.createView(
title: string,
pagePath: string,
)
Создает представление, которое может обрабатывать воспроизведение. Это представление будет встроено в панель «Рекордер».
Параметры
- заголовок
нить
Заголовок, который отображается рядом со значком расширения на панели инструментов разработчика.
- PagePath
нить
Путь к HTML-странице панели относительно каталога расширения.
Возврат
registerRecorderExtensionPlugin()
chrome.devtools.recorder.registerRecorderExtensionPlugin(
plugin: RecorderExtensionPlugin,
name: string,
mediaType: string,
)
Регистрирует плагин расширения Recorder.
Параметры
- плагин
Экземпляр, реализующий интерфейс RecorderExtensionPlugin.
- имя
нить
Название плагина.
- медиатип
нить
Тип носителя строкового содержимого, создаваемого плагином.