chrome.debugger
Description
chrome.debugger
API 作为 Chrome 远程调试协议的替代传输。使用 chrome.debugger 附加到一个或多个选项卡以检测网络交互、调试 JavaScript、改变 DOM 和 CSS 等。使用 Debuggee tabId 使用 sendCommand
定位选项卡,并通过 tabId 从 onEvent 回调路由事件。
Permissions
debugger
# Notes
截至今天,通过调试器 API 附加到选项卡和使用带有该选项卡的嵌入式 Chrome DevTools 是相互排斥的。如果用户在扩展程序附加到选项卡时调用 Chrome DevTools,调试会话将终止。扩展可以稍后重新建立它。
# Manifest
您必须在扩展程序的清单中声明“debugger”权限才能使用此 API。
{
"name": "My extension",
...
"permissions": [
"debugger",
],
...
}
Examples
您可以在示例中找到此 API 的示例。
Summary
Types
Methods
Events
Types
Debuggee
被调试者标识符。必须指定 tabId 或 extensionId
PROPERTIES
extensionId
string optional
您要调试的扩展的 ID。只有在使用
--silent-debugger-extension-api
命令行开关时,才能附加到扩展后台页面。tabId
number optional
您打算调试的选项卡的 ID。
targetId
string optional
调试目标的不透明 ID。
DetachReason
Chrome 44+
连接终止原因。
TYPE
"target_closed", or "canceled_by_user"
TargetInfo
调试目标信息
PROPERTIES
attached
boolean
如果已附加调试器,则为真。
extensionId
string optional
扩展 ID,在 type = 'background_page' 时定义。
faviconUrl
string optional
目标网站图标 URL。
id
string
目标 ID。
tabId
number optional
选项卡 ID,在 type == 'page' 时定义。
title
string
目标页面标题。
type
目标类型。
url
string
目标网址。
TargetInfoType
Chrome 44+
目标类型。
TYPE
"page", "background_page", "worker", or "other"
Methods
attach
chrome.debugger.attach( target: Debuggee, requiredVersion: string, callback?: function, )
Promise
将调试器附加到给定的目标。
PARAMETERS
target
要附加到的调试目标。
requiredVersion
string
所需的调试协议版本(“0.1”)。只能附加到具有匹配主要版本和大于或等于次要版本的调试对象。协议版本列表可以在这里获得。
callback
function optional
The
callback
parameter looks like:() => void
RETURNS
Promise<void>
Pending
这仅在未指定
callback
参数时返回Promise
,并且使用 MV3+。Promise
中的类型与callback
的第一个参数相同。
detach
chrome.debugger.detach( target: Debuggee, callback?: function, )
Promise
从给定的目标分离调试器。
PARAMETERS
target
要从中分离的调试目标。
callback
function optional
The
callback
parameter looks like:() => void
RETURNS
Promise<void>
Pending
这仅在未指定
callback
参数时返回Promise
,并且使用 MV3+。Promise
中的类型与callback
的第一个参数相同。
getTargets
chrome.debugger.getTargets(
callback?: function,
)
Promise
返回可用调试目标的列表。
PARAMETERS
callback
function optional
The
callback
parameter looks like:(result: TargetInfo[]) => void
result
与可用调试目标对应的 TargetInfo 对象数组。
RETURNS
Promise<TargetInfo[]>
Pending
这仅在未指定
callback
参数时返回Promise
,并且使用 MV3+。Promise
中的类型与callback
的第一个参数相同。
sendCommand
chrome.debugger.sendCommand( target: Debuggee, method: string, commandParams?: object, callback?: function, )
Promise
将给定的命令发送到调试目标。
PARAMETERS
target
要将命令发送到的调试目标。
method
string
方法名称。应该是远程调试协议定义的方法之一。
commandParams
object optional
带有请求参数的 JSON 对象。此对象必须符合给定方法的远程调试参数方案。
callback
function optional
The
callback
parameter looks like:(result?: object) => void
result
object optional
带有响应的 JSON 对象。响应的结构因方法名称而异,由远程调试协议中命令描述的“返回”属性定义。
RETURNS
Promise<object | undefined>
Pending
这仅在未指定
callback
参数时返回Promise
,并且使用 MV3+。Promise
中的类型与callback
的第一个参数相同。
Events
onDetach
chrome.debugger.onDetach.addListener(
callback: function,
)
当浏览器终止选项卡的调试会话时触发。当关闭选项卡或为附加的选项卡调用Chrome DevTools时,会发生这种情况。
PARAMETERS
callback
function
The
callback
parameter looks like:(source: Debuggee, reason: DetachReason) => void
source
reason
onEvent
chrome.debugger.onEvent.addListener(
callback: function,
)
每当调试目标发出检测事件时触发。
PARAMETERS
callback
function
The
callback
parameter looks like:(source: Debuggee, method: string, params?: object) => void
source
method
string
params
object optional
By.一粒技术服务.