chrome.devtools.recorder

คำอธิบาย

ใช้ chrome.devtools.recorder API เพื่อปรับแต่งแผงเครื่องบันทึกในเครื่องมือสำหรับนักพัฒนาเว็บ

devtools.recorder API เป็นฟีเจอร์เวอร์ชันตัวอย่างที่ช่วยให้คุณขยายแผงเครื่องบันทึกในเครื่องมือสำหรับนักพัฒนาเว็บใน Chrome ได้

ดูสรุป API ของเครื่องมือสำหรับนักพัฒนาเว็บสำหรับข้อมูลเบื้องต้นทั่วไปเกี่ยวกับการใช้ API ของเครื่องมือสำหรับนักพัฒนาซอฟต์แวร์

ความพร้อมใช้งาน

Chrome 105 ขึ้นไป

แนวคิดและการใช้งาน

การปรับแต่งฟีเจอร์การส่งออก

หากต้องการลงทะเบียนปลั๊กอินส่วนขยาย ให้ใช้ฟังก์ชัน registerRecorderExtensionPlugin ฟังก์ชันนี้ต้องมีอินสแตนซ์ปลั๊กอิน name และ mediaType เป็นพารามิเตอร์ อินสแตนซ์ของปลั๊กอินต้องใช้ 2 วิธี ได้แก่ stringify และ stringifyStep

name ที่ส่วนขยายระบุจะปรากฏในเมนูส่งออกในแผงเครื่องบันทึก

เมื่อผู้ใช้คลิกตัวเลือกการส่งออกที่ส่วนขยายมีให้ แผงเครื่องบันทึกจะเรียกใช้ฟังก์ชันใดฟังก์ชันหนึ่งต่อไปนี้ ทั้งนี้ขึ้นอยู่กับบริบทการส่งออก

พารามิเตอร์ mediaType ช่วยให้ส่วนขยายระบุประเภทเอาต์พุตที่สร้างด้วยฟังก์ชัน stringify และ stringifyStep ได้ เช่น application/javascript หากผลลัพธ์เป็นโปรแกรม JavaScript

การปรับแต่งปุ่มเล่นซ้ำ

หากต้องการปรับแต่งปุ่มเล่นซ้ำในเครื่องบันทึก ให้ใช้ฟังก์ชัน registerRecorderExtensionPlugin ปลั๊กอินต้องใช้วิธี replay เพื่อให้การปรับแต่งมีผล หากตรวจพบวิธีดังกล่าว ปุ่มเล่นซ้ำจะปรากฏในเครื่องบันทึก เมื่อคลิกปุ่ม ระบบจะส่งออบเจ็กต์การบันทึกปัจจุบันเป็นอาร์กิวเมนต์แรกไปยังเมธอด replay

ในขั้นตอนนี้ ส่วนขยายจะแสดง RecorderView สำหรับจัดการการเล่นซ้ำ หรือใช้ Extension 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'
);

ปลั๊กอิน Replay

โค้ดต่อไปนี้จะใช้ปลั๊กอินส่วนขยายที่สร้างมุมมองโปรแกรมอัดเสียงจำลองและแสดงเมื่อมีการขอเล่นซ้ำ

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) => {...}

  • stringify

    เป็นโมฆะ

    แปลงการบันทึกจากรูปแบบแผงเครื่องบันทึกเป็นสตริง

    ฟังก์ชัน stringify มีลักษณะดังนี้

    (recording: object) => {...}

  • stringifyStep

    เป็นโมฆะ

    แปลงขั้นตอนของการบันทึกจากรูปแบบแผงเครื่องบันทึกเป็นสตริง

    ฟังก์ชัน stringifyStep มีลักษณะดังนี้

    (step: object) => {...}

    • ขั้นตอน

      ออบเจ็กต์

      ขั้นตอนของการบันทึกการโต้ตอบของผู้ใช้กับหน้าเว็บ ซึ่งควรตรงกับสคีมาขั้นตอนของ Puppeteer

RecorderView

Chrome 112 ขึ้นไป

แสดงมุมมองที่สร้างโดยส่วนขยายเพื่อฝังไว้ในแผงเครื่องบันทึก

พร็อพเพอร์ตี้

  • onHidden

    Event<functionvoidvoid>

    เริ่มทำงานเมื่อมีการซ่อนมุมมอง

    ฟังก์ชัน onHidden.addListener มีลักษณะดังนี้

    (callback: function) => {...}

    • callback

      ฟังก์ชัน

      พารามิเตอร์ callback มีลักษณะดังนี้

      () => void

  • onShown

    Event<functionvoidvoid>

    เริ่มทำงานเมื่อมีการแสดงมุมมอง

    ฟังก์ชัน onShown.addListener มีลักษณะดังนี้

    (callback: function) => {...}

    • callback

      ฟังก์ชัน

      พารามิเตอร์ callback มีลักษณะดังนี้

      () => void

  • แสดง

    เป็นโมฆะ

    ระบุว่าส่วนขยายต้องการแสดงมุมมองนี้ในแผงเครื่องบันทึก

    ฟังก์ชัน show มีลักษณะดังนี้

    () => {...}

เมธอด

createView()

Chrome 112 ขึ้นไป
chrome.devtools.recorder.createView(
  title: string,
  pagePath: string,
)
: RecorderView

สร้างมุมมองที่สามารถจัดการการเล่นซ้ำได้ โดยมุมมองนี้จะฝังอยู่ในแผงเครื่องบันทึก

พารามิเตอร์

  • title

    สตริง

    ชื่อที่แสดงข้างไอคอนส่วนขยายในแถบเครื่องมือสำหรับนักพัฒนาซอฟต์แวร์

  • pagePath

    สตริง

    เส้นทางของหน้า HTML ของแผงที่สัมพันธ์กับไดเรกทอรีส่วนขยาย

การคืนสินค้า

registerRecorderExtensionPlugin()

chrome.devtools.recorder.registerRecorderExtensionPlugin(
  plugin: RecorderExtensionPlugin,
  name: string,
  mediaType: string,
)
: void

ลงทะเบียนปลั๊กอินส่วนขยายของโปรแกรมบันทึก

พารามิเตอร์

  • ปลั๊กอิน

    อินสแตนซ์ที่ใช้การติดตั้งอินเทอร์เฟซ RecorderExtensionPlugin

  • ชื่อ

    สตริง

    ชื่อปลั๊กอิน

  • mediaType

    สตริง

    ประเภทสื่อของเนื้อหาสตริงที่ปลั๊กอินสร้างขึ้น