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

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

Issue 374903002: DevTools: Async call stacks for Promises and Object.observe. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 6 years, 5 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 39b9b1ea3a67c6397c190d37463d094d77f7df33..caa4155d3dd0757297bb5ad1e0a21a0f33c3af05 100644
--- a/Source/core/inspector/InspectorDebuggerAgent.cpp
+++ b/Source/core/inspector/InspectorDebuggerAgent.cpp
@@ -59,6 +59,14 @@ using WebCore::TypeBuilder::Debugger::ScriptId;
using WebCore::TypeBuilder::Debugger::StackTrace;
using WebCore::TypeBuilder::Runtime::RemoteObject;
+namespace {
+
+static const char v8AsyncTaskEventEnqueue[] = "enqueue";
+static const char v8AsyncTaskEventWillHandle[] = "willHandle";
+static const char v8AsyncTaskEventDidHandle[] = "didHandle";
+
+}
+
namespace WebCore {
namespace DebuggerAgentState {
@@ -809,6 +817,20 @@ void InspectorDebuggerAgent::didDeliverMutationRecords()
m_asyncCallStackTracker.didFireAsyncCall();
}
+void InspectorDebuggerAgent::didReceiveV8AsyncTaskEvent(ExecutionContext* context, const String& eventType, const String& eventName, int id)
+{
+ if (!m_asyncCallStackTracker.isEnabled())
+ return;
+ if (eventType == v8AsyncTaskEventEnqueue)
+ m_asyncCallStackTracker.didEnqueueV8AsyncTask(context, eventName, id, scriptDebugServer().currentCallFramesForAsyncStack());
+ else if (eventType == v8AsyncTaskEventWillHandle)
+ m_asyncCallStackTracker.willHandleV8AsyncTask(context, eventName, id);
+ else if (eventType == v8AsyncTaskEventDidHandle)
+ m_asyncCallStackTracker.didFireAsyncCall();
+ else
+ ASSERT_NOT_REACHED();
+}
+
void InspectorDebuggerAgent::pause(ErrorString*)
{
if (m_javaScriptPauseScheduled || isPaused())

Powered by Google App Engine
This is Rietveld 408576698