chrome.debugger

Deskripsi

chrome.debugger API berfungsi sebagai transport alternatif untuk protokol proses debug jarak jauh Chrome. Gunakan chrome.debugger untuk melampirkan ke satu atau beberapa tab untuk menginstrumentasikan interaksi jaringan, men-debug JavaScript, mengubah DOM dan CSS, dll. Gunakan tabId Debuggee untuk menargetkan tab dengan sendCommand dan merutekan peristiwa paling lambat tabId dari callback onEvent.

Izin

debugger

Anda harus mendeklarasikan izin "debugger"` dalam manifes ekstensi untuk menggunakan API ini.

{
  "name": "My extension",
  ...
  "permissions": [
    "debugger",
  ],
  ...
}

Catatan

Untuk alasan keamanan, chrome.debugger API tidak menyediakan akses ke semua Domain Protokol Chrome DevTools. Domain yang tersedia adalah: Accessibility, Audits, CacheStorage, Console, CSS, Database, Debugger, DOM, DOMDebugger, DOMSnapshot, DOMSnapshot,WebAudioWebAuthn

Contoh

Untuk mencoba API ini, instal contoh API debugger dari repositori chrome-extension-samples.

Jenis

Debuggee

ID debuggee. TabId, extensionId, atau targetId harus ditentukan

Properti

  • extensionId

    string opsional

    ID ekstensi yang ingin Anda debug. Melampirkan ke halaman latar belakang ekstensi hanya dapat dilakukan saat tombol command line --silent-debugger-extension-api digunakan.

  • tabId

    nomor opsional

    ID tab yang ingin Anda debug.

  • targetId

    string opsional

    ID buram target debug.

DebuggerSession

Tertunda

ID sesi debugger. Salah satu tabId, extensionId, atau targetId harus ditentukan. Selain itu, sessionId opsional dapat diberikan. Jika sessionId ditentukan untuk argumen yang dikirim dari onEvent, artinya peristiwa tersebut berasal dari sesi protokol turunan dalam sesi debuggee root. Jika sessionId ditentukan saat diteruskan ke sendCommand, sessionId akan menargetkan sesi protokol turunan dalam sesi debuggee root.

Properti

  • extensionId

    string opsional

    ID ekstensi yang ingin Anda debug. Melampirkan ke halaman latar belakang ekstensi hanya dapat dilakukan saat tombol command line --silent-debugger-extension-api digunakan.

  • sessionId

    string opsional

    ID buram sesi Chrome DevTools Protocol. Mengidentifikasi sesi turunan dalam sesi root yang diidentifikasi menurut tabId, extensionId, atau targetId.

  • tabId

    nomor opsional

    ID tab yang ingin Anda debug.

  • targetId

    string opsional

    ID buram target debug.

DetachReason

Chrome 44+

Alasan penghentian koneksi.

Enum

"target_closed"

TargetInfo

Informasi target debug

Properti

  • terpasang

    boolean

    True jika debugger sudah terpasang.

  • extensionId

    string opsional

    ID ekstensi, ditentukan jika jenisnya = 'background_page'.

  • faviconUrl

    string opsional

    URL favicon target.

  • id

    string

    ID target.

  • tabId

    nomor opsional

    ID tab, ditentukan jika jenis == 'page'.

  • title

    string

    Judul halaman target.

  • Jenis target.

  • url

    string

    URL Target.

TargetInfoType

Chrome 44+

Jenis target.

Enum

"background_page"

Metode

attach()

Promise
chrome.debugger.attach(
  target: Debuggee,
  requiredVersion: string,
  callback?: function,
)

Memasang debugger ke target yang ditentukan.

Parameter

  • target

    Target proses debug yang ingin Anda lampirkan.

  • requiredVersion

    string

    Versi protokol proses debug yang diperlukan ("0.1"). Satu hanya dapat dipasang ke debuggee dengan versi utama yang cocok dan versi minor yang lebih besar atau sama. Daftar versi protokol dapat diperoleh di sini.

  • callback

    fungsi opsional

    Parameter callback terlihat seperti:

    ()=>void

Hasil

  • Promise<void>

    Chrome 96 dan yang lebih baru

    Promise didukung di Manifes V3 dan yang lebih baru, tetapi callback disediakan untuk kompatibilitas mundur. Anda tidak dapat menggunakan keduanya pada panggilan fungsi yang sama. Promise di-resolve dengan jenis yang sama yang diteruskan ke callback.

detach()

Promise
chrome.debugger.detach(
  target: Debuggee,
  callback?: function,
)

Melepaskan debugger dari target yang ditentukan.

Parameter

  • target

    Target proses debug yang ingin Anda lepaskan.

  • callback

    fungsi opsional

    Parameter callback terlihat seperti:

    ()=>void

Hasil

  • Promise<void>

    Chrome 96 dan yang lebih baru

    Promise didukung di Manifes V3 dan yang lebih baru, tetapi callback disediakan untuk kompatibilitas mundur. Anda tidak dapat menggunakan keduanya pada panggilan fungsi yang sama. Promise di-resolve dengan jenis yang sama yang diteruskan ke callback.

getTargets()

Promise
chrome.debugger.getTargets(
  callback?: function,
)

Menampilkan daftar target debug yang tersedia.

Parameter

  • callback

    fungsi opsional

    Parameter callback terlihat seperti:

    (result: TargetInfo[])=>void

    • hasil

      Array objek TargetInfo yang sesuai dengan target debug yang tersedia.

Hasil

  • Promise<TargetInfo[]>

    Chrome 96 dan yang lebih baru

    Promise didukung di Manifes V3 dan yang lebih baru, tetapi callback disediakan untuk kompatibilitas mundur. Anda tidak dapat menggunakan keduanya pada panggilan fungsi yang sama. Promise di-resolve dengan jenis yang sama yang diteruskan ke callback.

sendCommand()

Promise
chrome.debugger.sendCommand(
  target: DebuggerSession,
  method: string,
  commandParams?: object,
  callback?: function,
)

Mengirim perintah yang diberikan ke target proses debug.

Parameter

  • Men-debug target yang ingin Anda kirimi perintah.

  • method

    string

    Nama metode. Harus berupa salah satu metode yang ditentukan oleh protokol proses debug jarak jauh.

  • commandParams

    objek opsional

    Objek JSON dengan parameter permintaan. Objek ini harus sesuai dengan skema parameter proses debug jarak jauh untuk metode yang ditentukan.

  • callback

    fungsi opsional

    Parameter callback terlihat seperti:

    (result?: object)=>void

    • hasil

      objek opsional

      Objek JSON dengan respons. Struktur respons bervariasi, bergantung pada nama metode dan ditentukan oleh atribut 'returns' dari deskripsi perintah dalam protokol proses debug jarak jauh.

Hasil

  • Promise<object|undefined>

    Chrome 96 dan yang lebih baru

    Promise didukung di Manifes V3 dan yang lebih baru, tetapi callback disediakan untuk kompatibilitas mundur. Anda tidak dapat menggunakan keduanya pada panggilan fungsi yang sama. Promise di-resolve dengan jenis yang sama yang diteruskan ke callback.

Acara

onDetach

chrome.debugger.onDetach.addListener(
  callback: function,
)

Diaktifkan saat browser menghentikan sesi proses debug untuk tab. Ini terjadi saat tab ditutup atau Chrome DevTools dipanggil untuk tab yang terpasang.

Parameter

onEvent

chrome.debugger.onEvent.addListener(
  callback: function,
)

Diaktifkan setiap kali target proses debug menimbulkan peristiwa instrumentasi.

Parameter

  • callback

    fungsi

    Parameter callback terlihat seperti:

    (source: DebuggerSession,method: string,params?: object)=>void