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()) |