chrome.devtools.recorder

説明

chrome.devtools.recorder API を使用して、デベロッパー ツールの [Recorder] パネルをカスタマイズします。

devtools.recorder API は、Chrome DevTools の [Recorder] パネルを拡張できるプレビュー機能です。

デベロッパー ツール API の使用方法の概要については、デベロッパー ツール API の概要をご覧ください。

対象

Chrome 105 以降

コンセプトと使用方法

エクスポート機能をカスタマイズする

拡張機能プラグインを登録するには、registerRecorderExtensionPlugin 関数を使用します。この関数には、プラグイン インスタンス、namemediaType をパラメータとして指定する必要があります。プラグイン インスタンスは、stringifystringifyStep の 2 つのメソッドを実装する必要があります。

拡張機能で指定された name は、[Recorder] パネルの [Export] メニューに表示されます。

エクスポートのコンテキストに応じて、ユーザーが拡張機能で提供されるエクスポート オプションをクリックすると、[Recorder] パネルは次のいずれかの関数を呼び出します。

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

Chrome 112 以降

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 112 以降
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

    文字列

    プラグインが生成する文字列コンテンツのメディアタイプ。