chrome.debugger
描述: |
chrome.debugger API 是 Chrome 远程调试协议(英文)的另一种消息传输方式。使用 chrome.debugger 可以附加到一个或多个标签页,以便查看网络交互、调试 JavaScript、改变 DOM 和 CSS 等等。使用调试对象的标签页标识符来指定 sendCommand 的目标标签页,并在 onEvent 的回调函数中通过标签页标识符分发事件。
|
可用版本: |
从 Chrome 18 开始稳定支持。
|
权限: |
"debugger"
|
说明
目前,通过调试器 API 附加到标签页与在同一标签页使用内置的 Chrome
浏览器开发者工具两者不能同时进行。如果用户在扩展程序已附加到标签页时调用了
Chrome 浏览器的开发者工具,调试会话将终止,扩展程序可以之后再重新建立会话。
清单文件
您必须在您的扩展程序的清单文件中声明 "debugger" 权限才能使用这一 API。
{
"name": "我的扩展程序",
...
"permissions": [
"debugger",
],
...
}
例子
您可以在示例中找到这一 API 的示例。
类型
Debuggee
调试对象的标识符,必须指定 tabId 或 extensionId 中的某一个。
-
tabId
(
optional
integer
)
-
您要调试的标签页的标识符。
-
extensionId
(
optional
string
)
-
您要调试的扩展程序的标识符。只有当目标浏览器上启用了“enable-silent-debugging”标志后,才可以附加到扩展程序的后台网页。
-
targetId
(
optional
string
)
-
调试目标的不透明标识符。
TargetInfo
调试目标的信息。
-
type
(
enum of "page"
, "background_page"
, "worker"
, or "other"
)
-
目标类型。
-
tabId
(
optional
integer
)
-
如果 type == 'page',则为标签页标识符。
-
extensionId
(
optional
string
)
-
如果 type == 'background_page',则为扩展程序标识符。
-
attached
(
boolean
)
-
如果已附加调试器则为 true。
-
title
(
string
)
-
目标网页的标题。
-
faviconUrl
(
optional
string
)
-
目标的收藏夹图标 URL。
方法
attach
chrome.debugger.attach(
Debuggee target,
string requiredVersion,
function callback)
将调试器附加到指定目标。
参数
-
requiredVersion
(
string
)
-
要求的调试协议版本("0.1"),您只能附加到主版本号匹配且次要版本号大于或等于指定版本号的调试对象。协议版本可以从这里获取。
-
callback
(
optional
function
)
-
附加操作成功或失败后调用。回调函数不接受参数,如果附加失败,runtime.lastError 会设置为错误消息。
如果您指定了 callback 参数,它应该指定一个如下形式的函数:
function() {...};
detach
chrome.debugger.detach(
Debuggee target,
function callback)
使调试器脱离指定目标。
参数
-
callback
(
optional
function
)
-
脱离操作成功或失败后调用。回调函数不接受参数,如果脱离失败,runtime.lastError 会设置为错误消息。
如果您指定了 callback 参数,它应该指定一个如下形式的函数:
function() {...};
sendCommand
chrome.debugger.sendCommand(
Debuggee target,
string method,
object commandParams,
function callback)
将指定命令发送至调试目标。
参数
-
method
(
string
)
-
方法名称,应该为远程调试协议中定义的某一个方法。
-
commandParams
(
optional
object
)
-
包含请求参数的 JSON 对象,这一对象必须遵循适用于指定方法的远程调试参数架构。
-
callback
(
optional
function
)
-
响应正文。如果发送消息时产生错误,将不传递参数调用这一回调函数,并将 runtime.lastError 设置为错误消息。
如果您指定了 callback 参数,它应该指定一个如下形式的函数:
function(object result) {...};
-
result
(
optional
object
)
-
包含响应的 JSON 对象。响应的结构取决于方法,在远程调试协议中定义。
getTargets
chrome.debugger.getTargets(function callback)
返回可用调试目标的列表。
参数
callback 参数应该指定一个如下形式的函数:
function(array of TargetInfo result) {...};
-
-
包含可用调试目标对应的 TargetInfo 对象的数组。
事件
onEvent
当调试目标发出事件时产生。
addListener
chrome.debugger.onEvent.addListener(function callback)
参数
callback 参数应该指定一个如下形式的函数:
function(Debuggee source, string method, object params) {...};
-
method
(
string
)
-
方法名称,应该为远程调试协议中定义的某一个通知。
-
params
(
optional
object
)
-
包含响应的 JSON 对象。响应的结构取决于方法,在远程调试协议中定义。
onDetach
当浏览器终止某个标签页的调试会话时产生。这会在标签页关闭,或者 Chrome 浏览器的开发者工具在已附加调试器的标签页中调用时发生。
addListener
chrome.debugger.onDetach.addListener(function callback)
参数
callback 参数应该指定一个如下形式的函数:
function(Debuggee source, enum of "target_closed"
, "canceled_by_user"
, or "replaced_with_devtools"
reason) {...};
-
reason
(
enum of "target_closed"
, "canceled_by_user"
, or "replaced_with_devtools"
)
-
连接终止的原因。