Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(967)

Unified Diff: Source/core/inspector/InspectorDOMDebuggerAgent.cpp

Issue 723543002: DevTools: Fix wrong pause reason when stepping into an event listener. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: addressed Created 6 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: Source/core/inspector/InspectorDOMDebuggerAgent.cpp
diff --git a/Source/core/inspector/InspectorDOMDebuggerAgent.cpp b/Source/core/inspector/InspectorDOMDebuggerAgent.cpp
index d85475d8a0624eefa8af15030ec8699ecb89952c..40c3f1c16a315c02304bede15438fa0de4a03d5e 100644
--- a/Source/core/inspector/InspectorDOMDebuggerAgent.cpp
+++ b/Source/core/inspector/InspectorDOMDebuggerAgent.cpp
@@ -432,22 +432,27 @@ void InspectorDOMDebuggerAgent::updateSubtreeBreakpoints(Node* node, uint32_t ro
updateSubtreeBreakpoints(child, newRootMask, set);
}
-void InspectorDOMDebuggerAgent::pauseOnNativeEventIfNeeded(PassRefPtr<JSONObject> eventData, bool synchronous)
+void InspectorDOMDebuggerAgent::pauseOnNativeEventIfNeeded(PassRefPtr<JSONObject> prpEventData, bool synchronous)
{
- if (!eventData)
+ if (!prpEventData)
return;
+ RefPtr<JSONObject> eventData = prpEventData;
+ InspectorFrontend::Debugger::Reason::Enum breakReason = InspectorFrontend::Debugger::Reason::EventListener;
+ if (m_pauseInNextEventListener) {
+ m_pauseInNextEventListener = false;
+ breakReason = InspectorFrontend::Debugger::Reason::Other;
+ eventData = nullptr;
+ }
if (synchronous)
- m_debuggerAgent->breakProgram(InspectorFrontend::Debugger::Reason::EventListener, eventData);
+ m_debuggerAgent->breakProgram(breakReason, eventData.release());
else
- m_debuggerAgent->schedulePauseOnNextStatement(InspectorFrontend::Debugger::Reason::EventListener, eventData);
+ m_debuggerAgent->schedulePauseOnNextStatement(breakReason, eventData.release());
}
PassRefPtr<JSONObject> InspectorDOMDebuggerAgent::preparePauseOnNativeEventData(const String& eventName, const String* targetName)
{
String fullEventName = (targetName ? listenerEventCategoryType : instrumentationEventCategoryType) + eventName;
- if (m_pauseInNextEventListener) {
- m_pauseInNextEventListener = false;
- } else {
+ if (!m_pauseInNextEventListener) {
RefPtr<JSONObject> eventListenerBreakpoints = m_state->getObject(DOMDebuggerAgentState::eventListenerBreakpoints);
JSONObject::iterator it = eventListenerBreakpoints->find(fullEventName);
if (it == eventListenerBreakpoints->end())

Powered by Google App Engine
This is Rietveld 408576698