Deskripsi
chrome.debugger
API berfungsi sebagai transpor 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, dan lainnya. Gunakan properti Debuggee
tabId
untuk menargetkan tab dengan sendCommand
dan merutekan peristiwa paling lambat tabId
dari callback onEvent
.
Izin
debugger
Catatan Keamanan
Untuk alasan keamanan, chrome.debugger
API tidak menyediakan akses ke semua Chrome DevTools
Domain Protokol. Domain yang tersedia adalah: Accessibility,
Audit, CacheStorage, Konsol,
CSS, Database, Debugger, DOM,
DOMDebugger, DOMSnapshot,
Emulasi, Pengambilan, IO, Input,
Inspektur, Log, Jaringan, Overlay,
Halaman, Performa, Profiler,
Runtime, Penyimpanan, Target, Pelacakan,
WebAudio, dan WebAuthn.
Manifes
Anda harus mendeklarasikan izin "debugger"
` dalam manifes ekstensi Anda untuk menggunakan API ini.
{
"name": "My extension",
...
"permissions": [
"debugger",
],
...
}
Contoh
Untuk mencoba API ini, instal contoh API debugger dari chrome-extension-samples repositori resource.
Jenis
Debuggee
ID debug. TabId, extensionId, atau targetId harus ditentukan
Properti
-
extensionId
string opsional
ID ekstensi yang ingin Anda debug. Pemasangan ke halaman latar belakang ekstensi hanya dapat dilakukan jika tombol command line
--silent-debugger-extension-api
digunakan. -
tabId
angka opsional
ID tab yang ingin Anda debug.
-
targetId
string opsional
ID buram target debug.
DebuggerSession
ID sesi debugger. Salah satu dari 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
, sesi tersebut akan menargetkan sesi protokol turunan dalam sesi debuggee root.
Properti
-
extensionId
string opsional
ID ekstensi yang ingin Anda debug. Pemasangan ke halaman latar belakang ekstensi hanya dapat dilakukan jika 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 oleh tabId, extensionId, atau targetId.
-
tabId
angka opsional
ID tab yang ingin Anda debug.
-
targetId
string opsional
ID buram target debug.
DetachReason
Alasan penghentian koneksi.
Enum
"target_closed"
"canceled_by_user"
TargetInfo
Informasi target debug
Properti
-
terpasang
boolean
True jika debugger sudah terpasang.
-
extensionId
string opsional
ID ekstensi, ditentukan jika jenis = 'background_page'.
-
faviconUrl
string opsional
URL favicon target.
-
id
string
ID target.
-
tabId
angka opsional
ID tab, ditentukan jika jenis == 'halaman'.
-
judul
string
Judul halaman target.
-
jenis
Jenis target.
-
url
string
URL Target.
TargetInfoType
Jenis target.
Enum
"halaman"
"background_page"
"pekerja"
"lainnya"
Metode
attach()
chrome.debugger.attach(
target: Debuggee,
requiredVersion: string,
callback?: function,
)
Memasang debugger ke target yang ditentukan.
Parameter
-
target
Men-debug target yang ingin Anda lampirkan.
-
requiredVersion
string
Versi protokol proses debug yang diperlukan ("0.1"). Anda hanya dapat melampirkan ke debuggee dengan versi utama yang cocok dan versi minor yang lebih besar atau yang sama. Daftar versi protokol dapat diperoleh di sini.
-
callback
fungsi opsional
Parameter
callback
terlihat seperti ini:() => void
Hasil
-
Janji<void>
Chrome 96 dan yang lebih baruPromise hanya didukung untuk Manifes V3 dan yang lebih baru, platform lain perlu menggunakan callback.
detach()
chrome.debugger.detach(
target: Debuggee,
callback?: function,
)
Melepaskan debugger dari target yang ditentukan.
Parameter
-
target
Men-debug target yang ingin Anda lepaskan.
-
callback
fungsi opsional
Parameter
callback
terlihat seperti ini:() => void
Hasil
-
Janji<void>
Chrome 96 dan yang lebih baruPromise hanya didukung untuk Manifes V3 dan yang lebih baru, platform lain perlu menggunakan callback.
getTargets()
chrome.debugger.getTargets(
callback?: function,
)
Menampilkan daftar target debug yang tersedia.
Parameter
-
callback
fungsi opsional
Parameter
callback
terlihat seperti ini:(result: TargetInfo[]) => void
-
hasil
Array objek TargetInfo yang sesuai dengan target debug yang tersedia.
-
Hasil
-
Promise<TargetInfo[]>
Chrome 96 dan yang lebih baruPromise hanya didukung untuk Manifes V3 dan yang lebih baru, platform lain perlu menggunakan callback.
sendCommand()
chrome.debugger.sendCommand(
target: DebuggerSession,
method: string,
commandParams?: object,
callback?: function,
)
Mengirim perintah yang diberikan ke target proses debug.
Parameter
-
target
Men-debug target yang menjadi tujuan pengiriman perintah Anda.
-
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 ini:(result?: object) => void
-
hasil
objek opsional
objek JSON dengan respons. Struktur respons bervariasi bergantung pada nama metode dan ditentukan oleh 'returns' dari deskripsi perintah dalam protokol proses debug jarak jauh.
-
Hasil
-
Promise<object | tidak terdefinisi>
Chrome 96 dan yang lebih baruPromise hanya didukung untuk Manifes V3 dan yang lebih baru, platform lain perlu menggunakan callback.
Acara
onDetach
chrome.debugger.onDetach.addListener(
callback: function,
)
Diaktifkan saat browser menghentikan sesi proses debug untuk tab tersebut. Hal ini terjadi saat tab ditutup atau Chrome DevTools dipanggil untuk tab yang terpasang.
Parameter
-
callback
fungsi
Parameter
callback
terlihat seperti ini:(source: Debuggee, reason: DetachReason) => void
-
source
-
alasan
-
onEvent
chrome.debugger.onEvent.addListener(
callback: function,
)
Diaktifkan setiap kali proses debug masalah target terjadi peristiwa instrumentasi.
Parameter
-
callback
fungsi
Parameter
callback
terlihat seperti ini:(source: DebuggerSession, method: string, params?: object) => void
-
source
-
method
string
-
params
objek opsional
-