refresh date: 2026-09-25 robots: noindex
Mô tả
API chrome.debugger đóng vai trò là một phương thức truyền tải thay thế cho giao thức gỡ lỗi từ xa của Chrome. Sử dụng chrome.debugger để đính kèm vào một hoặc nhiều thẻ nhằm đo lường hoạt động tương tác mạng, gỡ lỗi JavaScript, thay đổi DOM và CSS, v.v. Sử dụng thuộc tính Debuggee tabId để nhắm đến các thẻ bằng sendCommand và định tuyến sự kiện theo tabId từ lệnh gọi lại onEvent.
Quyền
debuggerGhi chú bảo mật
Vì lý do bảo mật, API chrome.debugger không cung cấp quyền truy cập vào tất cả miền của Giao thức Chrome DevTools. Các miền hiện có là: Hỗ trợ tiếp cận,
Kiểm tra, CacheStorage, Bảng điều khiển,
CSS, Cơ sở dữ liệu, Trình gỡ lỗi, DOM,
DOMDebugger, DOMSnapshot,
Mô phỏng, Tìm nạp, IO, Đầu vào,
Trình kiểm tra, Nhật ký, Mạng, Lớp phủ,
Trang, Hiệu suất,
Thời gian chạy, Bộ nhớ, Mục tiêu, Theo dõi,
WebAudio và WebAuthn.
Tệp kê khai
Bạn phải khai báo quyền "debugger" trong tệp kê khai của tiện ích để sử dụng API này.
{
"name": "My extension",
...
"permissions": [
"debugger",
],
...
}
Ví dụ
Để dùng thử API này, hãy cài đặt ví dụ về API trình gỡ lỗi từ kho lưu trữ chrome-extension-samples.
Loại
Debuggee
Giá trị nhận dạng của trình gỡ lỗi. Bạn phải chỉ định tabId, extensionId hoặc targetId
Thuộc tính
-
extensionId
chuỗi không bắt buộc
Mã của tiện ích mà bạn định gỡ lỗi. Bạn chỉ có thể đính kèm vào trang nền của tiện ích khi sử dụng nút chuyển dòng lệnh
--silent-debugger-extension-api. -
tabId
number không bắt buộc
Mã của thẻ mà bạn định gỡ lỗi.
-
targetId
chuỗi không bắt buộc
Mã mờ của mục tiêu gỡ lỗi.
DebuggerSession
Giá trị nhận dạng phiên của trình gỡ lỗi. Bạn phải chỉ định một trong các giá trị tabId, extensionId hoặc targetId. Ngoài ra, bạn có thể cung cấp sessionId (không bắt buộc). Nếu sessionId được chỉ định cho các đối số được gửi từ onEvent, thì tức là sự kiện đến từ một phiên giao thức con trong phiên gỡ lỗi gốc. Nếu sessionId được chỉ định khi truyền đến sendCommand, thì sessionId sẽ nhắm đến một phiên giao thức con trong phiên gỡ lỗi gốc.
Thuộc tính
-
extensionId
chuỗi không bắt buộc
Mã của tiện ích mà bạn định gỡ lỗi. Bạn chỉ có thể đính kèm vào trang nền của tiện ích khi sử dụng nút chuyển dòng lệnh
--silent-debugger-extension-api. -
sessionId
chuỗi không bắt buộc
Mã mờ của phiên Giao thức Chrome DevTools. Xác định phiên con trong phiên gốc được xác định bằng tabId, extensionId hoặc targetId.
-
tabId
number không bắt buộc
Mã của thẻ mà bạn định gỡ lỗi.
-
targetId
chuỗi không bắt buộc
Mã mờ của mục tiêu gỡ lỗi.
DetachReason
Lý do chấm dứt kết nối.
Enum
"target_closed"
"canceled_by_user"
TargetInfo
Thông tin về mục tiêu gỡ lỗi
Thuộc tính
-
đã đính kèm
boolean
Đúng nếu trình gỡ lỗi đã được đính kèm.
-
extensionId
chuỗi không bắt buộc
Mã tiện ích, được xác định nếu type = "background_page".
-
faviconUrl
chuỗi không bắt buộc
URL của biểu tượng trang web mục tiêu.
-
id
chuỗi
Mã mục tiêu.
-
tabId
number không bắt buộc
Mã thẻ, được xác định nếu type == 'page'.
-
tiêu đề
chuỗi
Tiêu đề trang đích.
-
loại
Loại mục tiêu.
-
url
chuỗi
URL mục tiêu.
TargetInfoType
Loại mục tiêu.
Enum
"page"
"background_page"
"worker"
"other"
Phương thức
attach()
chrome.debugger.attach(
target: Debuggee,
requiredVersion: string,
callback?: function,
): Promise<void>
Đính kèm trình gỡ lỗi vào mục tiêu đã cho.
Thông số
-
mục tiêu
Mục tiêu gỡ lỗi mà bạn muốn đính kèm.
-
requiredVersion
chuỗi
Phiên bản giao thức gỡ lỗi bắt buộc ("0.1"). Bạn chỉ có thể đính kèm vào trình gỡ lỗi có phiên bản lớn khớp và phiên bản nhỏ lớn hơn hoặc bằng. Bạn có thể xem danh sách các phiên bản giao thức tại đây.
-
callback
hàm không bắt buộc
Tham số
callbackcó dạng như sau:() => void
Giá trị trả về
-
Promise<void>
Chrome 96 trở lênGiải quyết sau khi thao tác đính kèm thành công hoặc không thành công. Lời hứa sẽ phân giải mà không có giá trị. Nếu không đính kèm được, lời hứa sẽ bị từ chối.
Lời hứa chỉ được hỗ trợ cho Manifest V3 trở lên, các nền tảng khác cần sử dụng lệnh gọi lại.
detach()
chrome.debugger.detach(
target: Debuggee,
callback?: function,
): Promise<void>
Tách trình gỡ lỗi khỏi mục tiêu đã cho.
Thông số
-
mục tiêu
Mục tiêu gỡ lỗi mà bạn muốn tách.
-
callback
hàm không bắt buộc
Tham số
callbackcó dạng như sau:() => void
Giá trị trả về
-
Promise<void>
Chrome 96 trở lênPhân giải sau khi thao tác tách thành công hoặc không thành công. Lời hứa sẽ phân giải mà không có giá trị. Nếu không tách được, lời hứa sẽ bị từ chối.
Lời hứa chỉ được hỗ trợ cho Manifest V3 trở lên, các nền tảng khác cần sử dụng lệnh gọi lại.
getTargets()
chrome.debugger.getTargets(
callback?: function,
): Promise<TargetInfo[]>
Trả về danh sách các mục tiêu gỡ lỗi có sẵn.
Thông số
-
callback
hàm không bắt buộc
Tham số
callbackcó dạng như sau:(result: TargetInfo[]) => void
-
kết quả
Mảng các đối tượng TargetInfo tương ứng với các mục tiêu gỡ lỗi có sẵn.
-
Giá trị trả về
-
Promise<TargetInfo[]>
Chrome 96 trở lênLời hứa chỉ được hỗ trợ cho Manifest V3 trở lên, các nền tảng khác cần sử dụng lệnh gọi lại.
sendCommand()
chrome.debugger.sendCommand(
target: DebuggerSession,
method: string,
commandParams?: object,
callback?: function,
): Promise<object | undefined>
Gửi lệnh đã cho đến mục tiêu gỡ lỗi.
Thông số
-
mục tiêu
Mục tiêu gỡ lỗi mà bạn muốn gửi lệnh đến.
-
method
chuỗi
Tên phương thức. Phải là một trong các phương thức được xác định bằng giao thức gỡ lỗi từ xa.
-
commandParams
object không bắt buộc
Đối tượng JSON có các tham số yêu cầu. Đối tượng này phải tuân thủ lược đồ tham số gỡ lỗi từ xa cho phương thức đã cho.
-
callback
hàm không bắt buộc
Tham số
callbackcó dạng như sau:(result?: object) => void
-
kết quả
object không bắt buộc
Đối tượng JSON có phản hồi. Cấu trúc của phản hồi sẽ khác nhau tuỳ thuộc vào tên phương thức và được xác định bằng thuộc tính "returns" của nội dung mô tả lệnh trong giao thức gỡ lỗi từ xa.
-
Giá trị trả về
-
Promise<object | undefined>
Chrome 96 trở lênNội dung phản hồi. Nếu xảy ra lỗi khi đăng thông báo, thì lời hứa sẽ bị từ chối.
Lời hứa chỉ được hỗ trợ cho Manifest V3 trở lên, các nền tảng khác cần sử dụng lệnh gọi lại.
Sự kiện
onDetach
chrome.debugger.onDetach.addListener(
callback: function,
)
Được kích hoạt khi trình duyệt chấm dứt phiên gỡ lỗi cho thẻ. Điều này xảy ra khi thẻ đang đóng hoặc Chrome DevTools đang được gọi cho thẻ đính kèm.
Thông số
-
callback
hàm
Tham số
callbackcó dạng như sau:(source: Debuggee, reason: DetachReason) => void
-
source
-
lý do
-
onEvent
chrome.debugger.onEvent.addListener(
callback: function,
)
Được kích hoạt bất cứ khi nào mục tiêu gỡ lỗi phát hành sự kiện đo lường.
Thông số
-
callback
hàm
Tham số
callbackcó dạng như sau:(source: DebuggerSession, method: string, params?: object) => void
-
source
-
method
chuỗi
-
tham số
object không bắt buộc
-