5

Nasze rozszerzenie do Chrome nie działa poprawnie od wersji 37.0.2062.103 (Wcześniej działało poprawnie w wersji chrome 36.0.1985.143).Rozszerzenie Chrome: (DOM) Interfejs API debuggera już nie działa

W szczególności interfejs API debuggera przestał działać, gdy korzystamy z DOMDebugger. Patrz załączony kod: (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!'); 
    } 
}; 

Rozszerzenie powodzeniem uruchamia debugger. otrzymujemy żółtą wstążkę debuggera. Widzimy także komunikat msg dotyczący "rejestrowania kliknięć" w konsoli. Argument wynikowy jest pustym obiektem {} (wiersz 8). Jednak po kliknięciu przycisku, który ma detektor zdarzeń kliknięcia, nic się nie dzieje.

Pracował bez żadnych problemów.

+1

Wygląda na to, że powinieneś również zgłosić problem na https://crbug.com i dodać link do niego tutaj. – Xan

Odpowiedz

3

Wygląda na to, że nastąpiło cofnięcie z https://codereview.chromium.org/305753005. Należy zadzwonić "DOM.enable", aby działał teraz. Po stronie Chrome powinniśmy domyślnie włączyć domenę DOM po parametrze setEventListenerBreakpoint w celu zapewnienia kompatybilności wstecznej. Niestety to już wcisnęło się w stabilną wersję.

+0

Czy jest jakiś błąd w tym zakresie? Jeśli tak, dodaj link do niego. – Xan