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

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

Issue 15096004: Passing hit breakpoint IDs to ScriptDebugServer. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 7 years, 6 months 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/InspectorDebuggerAgent.cpp
diff --git a/Source/core/inspector/InspectorDebuggerAgent.cpp b/Source/core/inspector/InspectorDebuggerAgent.cpp
index dcecf478df5a6a67de727177a28d3ff049ac2275..9f54a015db229aeab8f65dae12c74cb665b2421f 100644
--- a/Source/core/inspector/InspectorDebuggerAgent.cpp
+++ b/Source/core/inspector/InspectorDebuggerAgent.cpp
@@ -295,8 +295,10 @@ void InspectorDebuggerAgent::removeBreakpoint(ErrorString*, const String& breakp
BreakpointIdToDebugServerBreakpointIdsMap::iterator debugServerBreakpointIdsIterator = m_breakpointIdToDebugServerBreakpointIds.find(breakpointId);
if (debugServerBreakpointIdsIterator == m_breakpointIdToDebugServerBreakpointIds.end())
return;
- for (size_t i = 0; i < debugServerBreakpointIdsIterator->value.size(); ++i)
+ for (size_t i = 0; i < debugServerBreakpointIdsIterator->value.size(); ++i) {
scriptDebugServer().removeBreakpoint(debugServerBreakpointIdsIterator->value[i]);
+ m_serverBreakpointIdToBreakpointId.remove(debugServerBreakpointIdsIterator->value[i]);
+ }
m_breakpointIdToDebugServerBreakpointIds.remove(debugServerBreakpointIdsIterator);
}
@@ -334,6 +336,8 @@ PassRefPtr<TypeBuilder::Debugger::Location> InspectorDebuggerAgent::resolveBreak
if (debugServerBreakpointId.isEmpty())
return 0;
+ m_serverBreakpointIdToBreakpointId.set(debugServerBreakpointId, breakpointId);
+
BreakpointIdToDebugServerBreakpointIdsMap::iterator debugServerBreakpointIdsIterator = m_breakpointIdToDebugServerBreakpointIds.find(breakpointId);
if (debugServerBreakpointIdsIterator == m_breakpointIdToDebugServerBreakpointIds.end())
debugServerBreakpointIdsIterator = m_breakpointIdToDebugServerBreakpointIds.set(breakpointId, Vector<String>()).iterator;
@@ -701,7 +705,7 @@ void InspectorDebuggerAgent::failedToParseSource(const String& url, const String
m_frontend->scriptFailedToParse(url, data, firstLine, errorLine, errorMessage);
}
-void InspectorDebuggerAgent::didPause(ScriptState* scriptState, const ScriptValue& callFrames, const ScriptValue& exception)
+void InspectorDebuggerAgent::didPause(ScriptState* scriptState, const ScriptValue& callFrames, const ScriptValue& exception, const Vector<String>& hitBreakpoints)
{
ASSERT(scriptState && !m_pausedScriptState);
m_pausedScriptState = scriptState;
@@ -716,7 +720,15 @@ void InspectorDebuggerAgent::didPause(ScriptState* scriptState, const ScriptValu
}
}
- m_frontend->paused(currentCallFrames(), m_breakReason, m_breakAuxData);
+ RefPtr<Array<String> > hitBreakpointIds = Array<String>::create();
+
+ for (Vector<String>::const_iterator i = hitBreakpoints.begin(); i != hitBreakpoints.end(); ++i) {
+ DebugServerBreakpointIdToBreakpointIdMap::iterator breakpointIterator = m_serverBreakpointIdToBreakpointId.find(*i);
+ if (breakpointIterator != m_serverBreakpointIdToBreakpointId.end())
+ hitBreakpointIds->addItem(breakpointIterator->value);
+ }
+
+ m_frontend->paused(currentCallFrames(), m_breakReason, m_breakAuxData, hitBreakpointIds);
m_javaScriptPauseScheduled = false;
if (!m_continueToLocationBreakpointId.isEmpty()) {

Powered by Google App Engine
This is Rietveld 408576698