| // Copyright 2022 The Chromium Authors |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| [ |
| { |
| "namespace": "devtools.recorder", |
| "description": "Use the <code>chrome.devtools.recorder</code> API to customize the Recorder panel in DevTools.", |
| "nocompile": true, |
| "types": [ |
| { |
| "id": "RecorderExtensionPlugin", |
| "type": "object", |
| "description": "A plugin interface that the Recorder panel invokes to customize the Recorder panel.", |
| "functions": [ |
| { |
| "name": "stringify", |
| "type": "function", |
| "optional": true, |
| "description": "Converts a recording from the Recorder panel format into a string.", |
| "parameters": [ |
| { |
| "name": "recording", |
| "type": "object", |
| "description": "A recording of the user interaction with the page. This should match <a href=\"https://github.com/puppeteer/replay/blob/main/docs/api/interfaces/Schema.UserFlow.md\">Puppeteer's recording schema</a>." |
| } |
| ] |
| }, |
| { |
| "name": "stringifyStep", |
| "type": "function", |
| "optional": true, |
| "description": "Converts a step of the recording from the Recorder panel format into a string.", |
| "parameters": [ |
| { |
| "name": "step", |
| "type": "object", |
| "description": "A step of the recording of a user interaction with the page. This should match <a href=\"https://github.com/puppeteer/replay/blob/main/docs/api/modules/Schema.md#step\">Puppeteer's step schema</a>." |
| } |
| ] |
| }, |
| { |
| "name": "replay", |
| "type": "function", |
| "optional": true, |
| "description": "Allows the extension to implement custom replay functionality.", |
| "parameters": [ |
| { |
| "name": "recording", |
| "type": "object", |
| "description": "A recording of the user interaction with the page. This should match <a href=\"https://github.com/puppeteer/replay/blob/main/docs/api/interfaces/Schema.UserFlow.md\">Puppeteer's recording schema</a>." |
| } |
| ] |
| } |
| ] |
| }, |
| { |
| "id": "RecorderView", |
| "type": "object", |
| "description": "Represents a view created by extension to be embedded inside the Recorder panel.", |
| "functions": [ |
| { |
| "name": "show", |
| "description": "Indicates that the extension wants to show this view in the Recorder panel.", |
| "parameters": [] |
| } |
| ], |
| "events": [ |
| { |
| "name": "onShown", |
| "type": "function", |
| "description": "Fired when the view is shown." |
| }, |
| { |
| "name": "onHidden", |
| "type": "function", |
| "description": "Fired when the view is hidden." |
| } |
| ] |
| } |
| ], |
| "functions": [ |
| { |
| "name": "registerRecorderExtensionPlugin", |
| "type": "function", |
| "description": "Registers a Recorder extension plugin.", |
| "parameters": [ |
| { |
| "name": "plugin", |
| "$ref": "RecorderExtensionPlugin", |
| "description": "An instance implementing the RecorderExtensionPlugin interface." |
| }, |
| { |
| "name": "name", |
| "type": "string", |
| "description": "The name of the plugin." |
| }, |
| { |
| "name": "mediaType", |
| "type": "string", |
| "description": "The media type of the string content that the plugin produces." |
| } |
| ] |
| }, |
| { |
| "name": "createView", |
| "type": "function", |
| "description": "Creates a view that can handle the replay. This view will be embedded inside the Recorder panel.", |
| "parameters": [ |
| { |
| "name": "title", |
| "type": "string", |
| "description": "Title that is displayed next to the extension icon in the Developer Tools toolbar." |
| }, |
| { |
| "name": "pagePath", |
| "type": "string", |
| "description": "Path of the panel's HTML page relative to the extension directory." |
| } |
| ], |
| "returns": { "$ref": "RecorderView" } |
| } |
| ] |
| } |
| ] |