Google chrome 不允许将setDiscoverTargets用于chrome扩展

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

我正在尝试开发一个chrome扩展,在这个扩展中,我需要与目标相关的事件(targetCreated/targetFoChanged/targetDestroyed)

为了实现这一目标,我通过API使用来自devtools协议的方法。以下是我正在使用的伪代码:

   // 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