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