Mô tả
API chrome.debugger
đóng vai trò là một phương tiện 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 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 mục tiêu các thẻ bằng sendCommand
và định tuyến các sự kiện bằng tabId
từ các lệnh gọi lại onEvent
.
Quyền
debugger
Ghi chú bảo mật
Vì lý do bảo mật, API chrome.debugger
không cấp quyền truy cập vào tất cả Công cụ của Chrome cho nhà phát triển
Miền giao thức. 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, Trình phân tích tài nguyên,
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 trong chrome-extension-samples kho lưu trữ.
Loại
Debuggee
Giá trị nhận dạng người được gỡ lỗi. Bạn phải chỉ định tabId, extensionsId hoặc targetId
Thuộc tính
-
extensionId
chuỗi không bắt buộc
Mã 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
số 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ã không rõ ràng 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 trường tabId, extensionsId hoặc targetId. Ngoài ra, bạn có thể cung cấp một sessionId không bắt buộc. Nếu sessionId được chỉ định cho các đối số được gửi từ onEvent
, thì sự kiện này đến từ một phiên giao thức con trong phiên ứng dụng được gỡ lỗi gốc. Nếu sessionId được chỉ định khi truyền đến sendCommand
, thì mã đó sẽ nhắm đến một phiên giao thức con trong phiên của ứng dụng được gỡ lỗi gốc.
Thuộc tính
-
extensionId
chuỗi không bắt buộc
Mã 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ã không rõ ràng của phiên Giao thức Công cụ của Chrome cho nhà phát triển. Xác định một phiên con trong phiên gốc được xác định bằng tabId, extensionsId hoặc targetId.
-
tabId
số 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ã không rõ ràng của mục tiêu gỡ lỗi.
DetachReason
Lý do chấm dứt kết nối.
Enum
"target_close"
"canceled_by_user"
TargetInfo
Thông tin về mục tiêu gỡ lỗi
Thuộc tính
-
được đí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 loại = '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
string
Mã mục tiêu
-
tabId
số không bắt buộc
Mã thẻ, được xác định nếu loại == 'page'.
-
tiêu đề
string
Tiêu đề trang mục tiêu.
-
loại
Loại mục tiêu.
-
url
string
URL mục tiêu.
TargetInfoType
Loại mục tiêu.
Enum
"trang"
"background_page"
"worker"
"khác"
Phương thức
attach()
chrome.debugger.attach(
target: Debuggee,
requiredVersion: string,
callback?: function,
)
Đính kèm trình gỡ lỗi vào mục tiêu đã cho.
Tham số
-
mục tiêu
Gỡ lỗi mục tiêu mà bạn muốn đính kèm.
-
requiredVersion
string
Phiên bản giao thức gỡ lỗi bắt buộc ("0.1"). Một tệp chỉ có thể đính kèm vào ứng dụng được gỡ lỗi có phiên bản lớn trùng khớp và phiên bản phụ lớn hơn hoặc bằng nhau. Bạn có thể xem danh sách các phiên bản của giao thức tại đây.
-
số gọi lại
hàm không bắt buộc
Tham số
callback
sẽ có dạng như sau:() => void
Giá trị trả về
-
Lời hứa<vô hiệu>
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.
detach()
chrome.debugger.detach(
target: Debuggee,
callback?: function,
)
Tách trình gỡ lỗi khỏi mục tiêu đã cho.
Tham số
-
mục tiêu
Gỡ lỗi mục tiêu mà bạn muốn tách ra.
-
số gọi lại
hàm không bắt buộc
Tham số
callback
sẽ có dạng như sau:() => void
Giá trị trả về
-
Lời hứa<vô hiệu>
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.
getTargets()
chrome.debugger.getTargets(
callback?: function,
)
Trả về danh sách các mục tiêu gỡ lỗi hiện có.
Tham số
-
số gọi lại
hàm không bắt buộc
Tham số
callback
sẽ có 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,
)
Gửi lệnh đã cho đến đích gỡ lỗi.
Tham số
-
mục tiêu
Đích gỡ lỗi mà bạn muốn gửi lệnh đến.
-
method
string
Tên phương thức. Phải là một trong các phương thức được giao thức gỡ lỗi từ xa xác định.
-
commandParams
đối tượng không bắt buộc
Đối tượng JSON có tham số yêu cầu. Đối tượng này phải tuân thủ lược đồ thông số gỡ lỗi từ xa cho phương thức đã cho.
-
số gọi lại
hàm không bắt buộc
Tham số
callback
sẽ có dạng như sau:(result?: object) => void
-
kết quả
đối tượng 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ẽ thay đổi tuỳ thuộc vào tên phương thức và được xác định bằng lệnh "trả về" của phần mô tả lệnh trong giao thức gỡ lỗi từ xa.
-
Giá trị trả về
-
Promise<object | không xác định>
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.
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ẻ này. Điều này xảy ra khi thẻ đang bị đóng hoặc Công cụ của Chrome cho nhà phát triển đang được gọi cho thẻ đính kèm.
Tham số
-
số gọi lại
hàm
Tham số
callback
sẽ có dạng như sau:(source: Debuggee, reason: DetachReason) => void
-
nguồn
-
lý do
-
onEvent
chrome.debugger.onEvent.addListener(
callback: function,
)
Được kích hoạt bất cứ khi nào sự kiện đo lường vấn đề về mục tiêu khi gỡ lỗi.
Tham số
-
số gọi lại
hàm
Tham số
callback
sẽ có dạng như sau:(source: DebuggerSession, method: string, params?: object) => void
-
nguồn
-
method
string
-
tham số
đối tượng không bắt buộc
-