Google chrome 不允许将setDiscoverTargets用于chrome扩展
我正在尝试开发一个chrome扩展,在这个扩展中,我需要与目标相关的事件(targetCreated/targetFoChanged/targetDestroyed) 为了实现这一目标,我通过API使用来自devtools协议的方法。以下是我正在使用的伪代码:Google chrome 不允许将setDiscoverTargets用于chrome扩展,google-chrome,google-chrome-extension,google-chrome-devtools,chromium,Google Chrome,Google Chrome Extension,Google Chrome Devtools,Chromium,我正在尝试开发一个chrome扩展,在这个扩展中,我需要与目标相关的事件(targetCreated/targetFoChanged/targetDestroyed) 为了实现这一目标,我通过API使用来自devtools协议的方法。以下是我正在使用的伪代码: // attach the debugger chrome.debugger.attach(debuggeeId, version, onAttach); // when attach
// attach the debugger
chrome.debugger.attach(debuggeeId, version, onAttach);
// when attach is successful send setAuthAttach to make setDiscoverTargets command work
const onAttach = (debuggeeId) => {
if (chrome.runtime.lastError) {
alert(chrome.runtime.lastError.message);
return;
}
console.log(`onAttach: ${JSON.stringify(debuggeeId)}`);
chrome.debugger.sendCommand({ tabId: myTabId }, "Target.setAutoAttach", { autoAttach: false, waitForDebuggerOnStart: false, flatten: true }, setAutoAttachHandler);
}
// when auto attach handler is successful send setDiscoverTargets method
// to enable targetCreated/targetInfoChanged/targetDestroyed events
const setAutoAttachHandler = (result) => {
if (chrome.runtime.lastError) {
console.log("error in setAutoAttachHandler:" + chrome.runtime.lastError.message);
return;
}
console.log(`setAutoAttachHandler result: ${JSON.stringify(result)}`);
chrome.debugger.sendCommand({ tabId: myTabId }, 'Target.setDiscoverTargets', { discover: true }, setDiscoverTargetsHandler);
}
// see the result of command
const setDiscoverTargetsHandler = (result) => {
if (chrome.runtime.lastError) {
console.log("error in setDiscoverTargetsHandler:" + chrome.runtime.lastError.message);
return;
}
console.log(`setDiscoverTargets result: ${JSON.stringify(result)}`);
}
根据执行上述代码,我总是得到不允许的错误
setDiscoverTargetsHandler中出现错误:{“代码”:-32000,“消息”:“不是”
允许“}
并且不会触发与目标相关的事件。我还应该做些什么来获得这些活动
谢谢。这是因为默认情况下启用了自动附加模式,所以您不需要设置DiscoverTargets。如果您真的认为需要它,请首先使用Target.setAutoAttach禁用自动附加模式。我也尝试过,但没有成功:我从setDiscoverTargets方法@wOxxOm获得了相同的不允许的响应。另一个原因是什么?在没有看到代码的情况下,我不得不假设它是错误的。您好@wOxxOm,我按照您的建议,围绕我如何使用setAutoAttach
的详细信息编辑了这个问题。你认为这是不正确的吗?代码看起来不错,但我自己没有使用这些命令,因此我无法进一步提供帮助。尝试更改参数,例如waitForDebuggerOnStart:true
,这是因为默认情况下启用了自动附加模式,因此您不需要setDiscoverTargets。如果您真的认为需要它,请首先使用Target.setAutoAttach禁用自动附加模式。我也尝试过,但没有成功:我从setDiscoverTargets方法@wOxxOm获得了相同的不允许的响应。另一个原因是什么?在没有看到代码的情况下,我不得不假设它是错误的。您好@wOxxOm,我按照您的建议,围绕我如何使用setAutoAttach
的详细信息编辑了这个问题。你认为这是不正确的吗?代码看起来不错,但我自己没有使用这些命令,因此我无法进一步提供帮助。尝试更改参数,例如waitForDebuggerOnStart:true