Chrome扩展程序:(DOM)调试程序API不再起作用

Ami*_*vin 5 google-chrome remote-debugging google-chrome-extension

自版本37.0.2062.103以来,我们的chrome扩展程序无法正常工作(以前它在chrome版本36.0.1985.143上正常工作).

具体来说,当我们使用DOMDebugger时,调试器API已停止为我们工作.参见附件代码:(background.js)

chrome.tabs.onUpdated.addListener(function(tabId,changeInfo,tab){
    if( changeInfo.status == "loading"  && tab.active){
        var debugId = {tabId:tabId};
        chrome.debugger.attach(debugId, '1.0', function() {
            chrome.debugger.sendCommand(debugId, 'Debugger.enable', {}, function() {
                chrome.debugger.sendCommand(debugId, "DOMDebugger.setEventListenerBreakpoint", {'eventName':'click'},
                    function(result) {
                        console.log('registering click');
                    });
            });
        });
    }
});
chrome.debugger.onEvent.addListener(onEvent);
function onEvent(debuggeeId, method,params) {
    if(method=="Debugger.paused"){
        console.log('DONE!');
    }
};
Run Code Online (Sandbox Code Playgroud)

扩展成功启动调试器.我们得到黄色调试器功能区.我们还在控制台中看到"注册点击"消息.result参数是一个空对象{}(第8行).但是,单击具有单击事件监听器的按钮时,没有任何反应.

它曾经没有任何问题.

小智 3

看起来它与https://codereview.chromium.org/305753005相关。现在需要调用“DOM.enable”才能正常工作。在 Chrome 方面,我们应该在 setEventListenerBreakpoint 上隐式启用 DOM 域以实现向后兼容性。不幸的是它已经被挤进了稳定版本。