説明
chrome.devtools.recorder API を使用して、デベロッパー ツールの [Recorder] パネルをカスタマイズします。
devtools.recorder API は、Chrome DevTools の [Recorder] パネルを拡張できるプレビュー機能です。
デベロッパー ツール API の使用方法の概要については、デベロッパー ツール API の概要をご覧ください。
対象
コンセプトと使用方法
エクスポート機能をカスタマイズする
拡張機能プラグインを登録するには、registerRecorderExtensionPlugin 関数を使用します。この関数には、プラグイン インスタンス、name、mediaType をパラメータとして指定する必要があります。プラグイン インスタンスは、stringify と stringifyStep の 2 つのメソッドを実装する必要があります。
拡張機能で指定された name は、[Recorder] パネルの [Export] メニューに表示されます。
エクスポートのコンテキストに応じて、ユーザーが拡張機能で提供されるエクスポート オプションをクリックすると、[Recorder] パネルは次のいずれかの関数を呼び出します。
stringifyユーザーフローの記録全体を受け取るstringifyStep記録された 1 つのステップ を受け取る
mediaType パラメータを使用すると、拡張機能は
stringify 関数と stringifyStep 関数で生成する出力の種類を指定できます。たとえば、結果が JavaScript プログラムの場合は application/javascript です。
再生ボタンをカスタマイズする
[Recorder] の再生ボタンをカスタマイズするには、registerRecorderExtensionPlugin 関数を使用します。カスタマイズを有効にするには、プラグインで replay メソッドを実装する必要があります。メソッドが検出されると、[Recorder]
に再生ボタンが表示されます。
ボタンをクリックすると、現在の記録オブジェクトが最初の引数として 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'
);
再生プラグイン
次のコードは、ダミーの 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
Recorder パネルをカスタマイズするために Recorder パネルが呼び出すプラグイン インターフェース。
プロパティ
-
もう一回見る
void
Chrome 112 以降拡張機能でカスタム再生機能を実装できます。
replay関数の形式は次のとおりです。(recording: object) => {...}
-
録画中
オブジェクト
ページに対するユーザー インタラクションの記録。これは Puppeteer の記録スキーマと一致する必要があります。
-
-
文字列化
void
Recorder パネルの形式の記録を文字列に変換します。
stringify関数の形式は次のとおりです。(recording: object) => {...}
-
録画中
オブジェクト
ページに対するユーザー インタラクションの記録。これは Puppeteer の記録スキーマと一致する必要があります。
-
-
stringifyStep
void
Recorder パネルの形式の記録のステップを文字列に変換します。
stringifyStep関数の形式は次のとおりです。(step: object) => {...}
-
解説
オブジェクト
ページに対するユーザー インタラクションの記録のステップ。これは Puppeteer のステップ スキーマと一致する必要があります。
-
RecorderView
Recorder パネル内に埋め込むために拡張機能によって作成されたビューを表します。
プロパティ
-
onHidden
Event<functionvoidvoid>
ビューが非表示になったときに呼び出されます。
onHidden.addListener関数の形式は次のとおりです。(callback: function) => {...}
-
callback
関数
callbackパラメータの形式は次のとおりです:() => void
-
-
onShown
Event<functionvoidvoid>
ビューが表示されたときに呼び出されます。
onShown.addListener関数の形式は次のとおりです。(callback: function) => {...}
-
callback
関数
callbackパラメータの形式は次のとおりです:() => void
-
-
表示する
void
拡張機能がこのビューをレコーダー パネルに表示することを指定します。
show関数の形式は次のとおりです。() => {...}
メソッド
createView()
chrome.devtools.recorder.createView(
title: string,
pagePath: string,
): RecorderView
再生を処理できるビューを作成します。このビューは Recorder パネル内に埋め込まれます。
パラメータ
-
title
文字列
デベロッパー ツールのツールバーの拡張機能アイコンの横に表示されるタイトル。
-
pagePath
文字列
拡張機能ディレクトリからの相対パスで指定したパネルの HTML ページのパス。
戻り値
registerRecorderExtensionPlugin()
chrome.devtools.recorder.registerRecorderExtensionPlugin(
plugin: RecorderExtensionPlugin,
name: string,
mediaType: string,
): void
Recorder 拡張機能プラグインを登録します。
パラメータ
-
プラグイン
RecorderExtensionPlugin インターフェースを実装するインスタンス。
-
name
文字列
プラグインの名前。
-
mediaType
文字列
プラグインが生成する文字列コンテンツのメディアタイプ。