| Index: Source/core/inspector/InspectorDebuggerAgent.cpp
|
| diff --git a/Source/core/inspector/InspectorDebuggerAgent.cpp b/Source/core/inspector/InspectorDebuggerAgent.cpp
|
| index ad65eddec478c5bb615129e2b80ef6d230b0956c..fd623ab9910cf89527d300ead7f4e6c997133b38 100644
|
| --- a/Source/core/inspector/InspectorDebuggerAgent.cpp
|
| +++ b/Source/core/inspector/InspectorDebuggerAgent.cpp
|
| @@ -58,6 +58,7 @@ using blink::TypeBuilder::Debugger::CallFrame;
|
| using blink::TypeBuilder::Debugger::CollectionEntry;
|
| using blink::TypeBuilder::Debugger::ExceptionDetails;
|
| using blink::TypeBuilder::Debugger::FunctionDetails;
|
| +using blink::TypeBuilder::Debugger::PromiseDetails;
|
| using blink::TypeBuilder::Debugger::ScriptId;
|
| using blink::TypeBuilder::Debugger::StackTrace;
|
| using blink::TypeBuilder::Runtime::RemoteObject;
|
| @@ -77,6 +78,7 @@ static const char debuggerEnabled[] = "debuggerEnabled";
|
| static const char javaScriptBreakpoints[] = "javaScriptBreakopints";
|
| static const char pauseOnExceptionsState[] = "pauseOnExceptionsState";
|
| static const char asyncCallStackDepth[] = "asyncCallStackDepth";
|
| +static const char promiseTrackerEnabled[] = "promiseTrackerEnabled";
|
|
|
| // Breakpoint properties.
|
| static const char url[] = "url";
|
| @@ -161,6 +163,7 @@ void InspectorDebuggerAgent::disable()
|
| m_state->setLong(DebuggerAgentState::pauseOnExceptionsState, ScriptDebugServer::DontPauseOnExceptions);
|
| m_state->setString(DebuggerAgentState::skipStackPattern, "");
|
| m_state->setLong(DebuggerAgentState::asyncCallStackDepth, 0);
|
| + m_state->setBoolean(DebuggerAgentState::promiseTrackerEnabled, false);
|
| m_instrumentingAgents->setInspectorDebuggerAgent(0);
|
|
|
| scriptDebugServer().clearBreakpoints();
|
| @@ -225,6 +228,7 @@ void InspectorDebuggerAgent::restore()
|
| m_state->setBoolean(DebuggerAgentState::skipAllPauses, false);
|
| }
|
| asyncCallStackTracker().setAsyncCallStackDepth(m_state->getLong(DebuggerAgentState::asyncCallStackDepth));
|
| + m_promiseTracker.setEnabled(m_state->getBoolean(DebuggerAgentState::promiseTrackerEnabled));
|
| }
|
| }
|
|
|
| @@ -1163,6 +1167,25 @@ void InspectorDebuggerAgent::setAsyncCallStackDepth(ErrorString*, int depth)
|
| asyncCallStackTracker().setAsyncCallStackDepth(depth);
|
| }
|
|
|
| +void InspectorDebuggerAgent::enablePromiseTracker(ErrorString*)
|
| +{
|
| + m_state->setBoolean(DebuggerAgentState::promiseTrackerEnabled, true);
|
| + m_promiseTracker.setEnabled(true);
|
| +}
|
| +
|
| +void InspectorDebuggerAgent::disablePromiseTracker(ErrorString*)
|
| +{
|
| + m_state->setBoolean(DebuggerAgentState::promiseTrackerEnabled, false);
|
| + m_promiseTracker.setEnabled(false);
|
| +}
|
| +
|
| +void InspectorDebuggerAgent::getPromises(ErrorString*, RefPtr<Array<PromiseDetails> >& promises)
|
| +{
|
| + if (!m_promiseTracker.isEnabled())
|
| + return;
|
| + promises = m_promiseTracker.promises();
|
| +}
|
| +
|
| void InspectorDebuggerAgent::scriptExecutionBlockedByCSP(const String& directiveText)
|
| {
|
| if (scriptDebugServer().pauseOnExceptionsState() != ScriptDebugServer::DontPauseOnExceptions) {
|
|
|