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 域以实现向后兼容性。不幸的是它已经被挤进了稳定版本。