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

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

Issue 732593002: DevTools: Make StepInto work across script boundaries and Blink process tasks. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: added new test debugger-step-into-document-write.html 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 40c3f1c16a315c02304bede15438fa0de4a03d5e..05e1821fb8c3c8f0e4bf36dea94d99f5c36c1174 100644
--- a/Source/core/inspector/InspectorDOMDebuggerAgent.cpp
+++ b/Source/core/inspector/InspectorDOMDebuggerAgent.cpp
@@ -67,7 +67,6 @@ static const char newPromiseEventName[] = "newPromise";
static const char promiseResolvedEventName[] = "promiseResolved";
static const char promiseRejectedEventName[] = "promiseRejected";
static const char windowCloseEventName[] = "close";
-static const char customElementCallbackName[] = "customElementCallback";
static const char webglErrorFiredEventName[] = "webglErrorFired";
static const char webglWarningFiredEventName[] = "webglWarningFired";
static const char webglErrorNameProperty[] = "webglErrorName";
@@ -88,7 +87,6 @@ InspectorDOMDebuggerAgent::InspectorDOMDebuggerAgent(InspectorDOMAgent* domAgent
: InspectorBaseAgent<InspectorDOMDebuggerAgent>("DOMDebugger")
, m_domAgent(domAgent)
, m_debuggerAgent(debuggerAgent)
- , m_pauseInNextEventListener(false)
{
m_debuggerAgent->setListener(this);
m_domAgent->setListener(this);
@@ -135,25 +133,6 @@ void InspectorDOMDebuggerAgent::domAgentWasDisabled()
disable();
}
-void InspectorDOMDebuggerAgent::stepInto()
-{
- m_pauseInNextEventListener = true;
-}
-
-void InspectorDOMDebuggerAgent::didPause()
-{
- m_pauseInNextEventListener = false;
-}
-
-void InspectorDOMDebuggerAgent::didProcessTask()
-{
- if (!m_pauseInNextEventListener)
- return;
- if (m_debuggerAgent && m_debuggerAgent->runningNestedMessageLoop())
yurys 2014/11/18 12:35:25 Now we can remove runningNestedMessageLoop from th
- return;
- m_pauseInNextEventListener = false;
-}
-
void InspectorDOMDebuggerAgent::disable()
{
m_instrumentingAgents->setInspectorDOMDebuggerAgent(0);
@@ -432,39 +411,30 @@ void InspectorDOMDebuggerAgent::updateSubtreeBreakpoints(Node* node, uint32_t ro
updateSubtreeBreakpoints(child, newRootMask, set);
}
-void InspectorDOMDebuggerAgent::pauseOnNativeEventIfNeeded(PassRefPtr<JSONObject> prpEventData, bool synchronous)
+void InspectorDOMDebuggerAgent::pauseOnNativeEventIfNeeded(PassRefPtr<JSONObject> eventData, bool synchronous)
{
- if (!prpEventData)
+ if (!eventData)
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(breakReason, eventData.release());
+ m_debuggerAgent->breakProgram(InspectorFrontend::Debugger::Reason::EventListener, eventData);
else
- m_debuggerAgent->schedulePauseOnNextStatement(breakReason, eventData.release());
+ m_debuggerAgent->schedulePauseOnNextStatement(InspectorFrontend::Debugger::Reason::EventListener, eventData);
}
PassRefPtr<JSONObject> InspectorDOMDebuggerAgent::preparePauseOnNativeEventData(const String& eventName, const String* targetName)
{
String fullEventName = (targetName ? listenerEventCategoryType : instrumentationEventCategoryType) + eventName;
- if (!m_pauseInNextEventListener) {
- RefPtr<JSONObject> eventListenerBreakpoints = m_state->getObject(DOMDebuggerAgentState::eventListenerBreakpoints);
- JSONObject::iterator it = eventListenerBreakpoints->find(fullEventName);
- if (it == eventListenerBreakpoints->end())
- return nullptr;
- bool match = false;
- RefPtr<JSONObject> breakpointsByTarget = it->value->asObject();
- breakpointsByTarget->getBoolean(DOMDebuggerAgentState::eventTargetAny, &match);
- if (!match && targetName)
- breakpointsByTarget->getBoolean(targetName->lower(), &match);
- if (!match)
- return nullptr;
- }
+ RefPtr<JSONObject> eventListenerBreakpoints = m_state->getObject(DOMDebuggerAgentState::eventListenerBreakpoints);
+ JSONObject::iterator it = eventListenerBreakpoints->find(fullEventName);
+ if (it == eventListenerBreakpoints->end())
+ return nullptr;
+ bool match = false;
+ RefPtr<JSONObject> breakpointsByTarget = it->value->asObject();
+ breakpointsByTarget->getBoolean(DOMDebuggerAgentState::eventTargetAny, &match);
+ if (!match && targetName)
+ breakpointsByTarget->getBoolean(targetName->lower(), &match);
+ if (!match)
+ return nullptr;
RefPtr<JSONObject> eventData = JSONObject::create();
eventData->setString("eventName", fullEventName);
@@ -490,8 +460,6 @@ void InspectorDOMDebuggerAgent::willFireTimer(ExecutionContext*, int)
bool InspectorDOMDebuggerAgent::canPauseOnPromiseEvent()
{
- if (m_pauseInNextEventListener)
- return true;
RefPtr<JSONObject> eventListenerBreakpoints = m_state->getObject(DOMDebuggerAgentState::eventListenerBreakpoints);
JSONObject::iterator end = eventListenerBreakpoints->end();
return eventListenerBreakpoints->find(String(instrumentationEventCategoryType) + newPromiseEventName) != end
@@ -541,11 +509,6 @@ void InspectorDOMDebuggerAgent::willCloseWindow()
pauseOnNativeEventIfNeeded(preparePauseOnNativeEventData(windowCloseEventName, 0), true);
}
-void InspectorDOMDebuggerAgent::willExecuteCustomElementCallback(Element*)
-{
- pauseOnNativeEventIfNeeded(preparePauseOnNativeEventData(customElementCallbackName, 0), false);
-}
-
void InspectorDOMDebuggerAgent::didFireWebGLError(const String& errorName)
{
RefPtr<JSONObject> eventData = preparePauseOnNativeEventData(webglErrorFiredEventName, 0);
@@ -620,8 +583,6 @@ void InspectorDOMDebuggerAgent::willSendXMLHttpRequest(const String& url)
void InspectorDOMDebuggerAgent::clear()
{
m_domBreakpoints.clear();
- m_pauseInNextEventListener = false;
}
} // namespace blink
-

Powered by Google App Engine
This is Rietveld 408576698