Описание
Используйте API chrome.devtools.recorder для настройки панели записи в инструментах разработчика.
API devtools.recorder — это функция предварительного просмотра, которая позволяет расширить панель записи в инструментах разработчика Chrome.
Для получения общего представления об использовании API инструментов разработчика см. раздел «Краткое описание API инструментов разработчика».
Доступность
Понятия и применение
Настройка функции экспорта
Для регистрации плагина расширения используйте функцию registerRecorderExtensionPlugin . Эта функция принимает в качестве параметров экземпляр плагина, name и mediaType . Экземпляр плагина должен реализовывать два метода: stringify и stringifyStep .
name , присвоенное расширением, отображается в меню «Экспорт» на панели «Запись» .
В зависимости от контекста экспорта, при нажатии пользователем на опцию экспорта, предоставляемую расширением, панель записи запускает одну из двух функций:
-
stringify, который получает полную запись пользовательского потока. -
stringifyStep, который принимает один записанный шаг
Параметр mediaType позволяет расширению указать тип выходных данных, генерируемых функциями stringify и stringifyStep . Например, application/javascript если результатом является программа на JavaScript.
Настройка кнопки повтора
Для настройки кнопки воспроизведения в окне записи используйте функцию registerRecorderExtensionPlugin . Для того чтобы изменения вступили в силу, плагин должен реализовывать метод replay . Если метод обнаружен, в окне записи появится кнопка воспроизведения. При нажатии на кнопку объект текущей записи будет передан в качестве первого аргумента методу replay .
На этом этапе расширение может отобразить RecorderView для обработки воспроизведения или использовать другие API расширений для обработки запроса на воспроизведение. Чтобы создать новый RecorderView , вызовите chrome.devtools.recorder.createView .
Примеры
Плагин экспорта
Приведённый ниже код реализует плагин расширения, который преобразует запись в строку с помощью 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'
);
Плагин воспроизведения
Приведённый ниже код реализует плагин расширения, который создаёт фиктивное представление записи и отображает его при запросе на воспроизведение:
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
Интерфейс плагина, который вызывает панель записи для настройки этой панели.
Характеристики
- повтор
пустота
Chrome 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,
): RecorderView
Создает представление, способное обрабатывать воспроизведение. Это представление будет встроено в панель записи.
Параметры
- заголовок
нить
Заголовок, отображаемый рядом со значком расширения на панели инструментов разработчика.
- pagePath
нить
Путь к HTML-странице панели относительно каталога расширений.
Возвраты
registerRecorderExtensionPlugin()
chrome.devtools.recorder.registerRecorderExtensionPlugin(
plugin: RecorderExtensionPlugin,
name: string,
mediaType: string,
): void
Регистрирует плагин расширения для записи экрана.
Параметры
- плагин
Экземпляр, реализующий интерфейс RecorderExtensionPlugin.
- имя
нить
Название плагина.
- медиаТип
нить
Тип носителя строкового содержимого, создаваемого плагином.