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

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

Issue 855383002: DevTools: use async operation id instead of AsyncCallChain (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Addressed comments Created 5 years, 11 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/AsyncCallTracker.cpp
diff --git a/Source/core/inspector/AsyncCallTracker.cpp b/Source/core/inspector/AsyncCallTracker.cpp
index 4800999323634e697aa919cb4c4f047ad19bd9f3..c1364fdaaab962c4b36975e1d7d691687dd9a6ef 100644
--- a/Source/core/inspector/AsyncCallTracker.cpp
+++ b/Source/core/inspector/AsyncCallTracker.cpp
@@ -71,7 +71,6 @@ public:
, m_mutationObserverCallChains(tracker->m_debuggerAgent)
, m_executionContextTaskCallChains(tracker->m_debuggerAgent)
, m_asyncOperationCallChains(tracker->m_debuggerAgent)
- , m_circularSequentialId(0)
{
}
@@ -91,16 +90,6 @@ public:
dispose();
}
- int nextAsyncOperationUniqueId()
- {
- do {
- ++m_circularSequentialId;
- if (m_circularSequentialId <= 0)
- m_circularSequentialId = 1;
- } while (m_asyncOperationCallChains.contains(m_circularSequentialId));
- return m_circularSequentialId;
- }
-
virtual void trace(Visitor* visitor) override
{
visitor->trace(m_tracker);
@@ -137,8 +126,6 @@ private:
m_executionContextTaskCallChains.dispose();
m_asyncOperationCallChains.dispose();
}
-
- int m_circularSequentialId;
};
static XMLHttpRequest* toXmlHttpRequest(EventTarget* eventTarget)
@@ -178,12 +165,10 @@ void AsyncCallTracker::didInstallTimer(ExecutionContext* context, int timerId, i
{
ASSERT(context);
ASSERT(m_debuggerAgent->trackingAsyncCalls());
- RefPtrWillBeRawPtr<AsyncCallChain> callChain = m_debuggerAgent->traceAsyncOperationStarting(singleShot ? setTimeoutName : setIntervalName);
- if (!callChain)
- return;
+ int operationId = m_debuggerAgent->traceAsyncOperationStarting(singleShot ? setTimeoutName : setIntervalName);
ASSERT(timerId > 0);
ExecutionContextData* data = createContextDataIfNeeded(context);
- data->m_timerCallChains.set(timerId, callChain.release());
+ data->m_timerCallChains.set(timerId, operationId);
if (!singleShot)
data->m_intervalTimerIds.add(timerId);
}
@@ -212,7 +197,7 @@ bool AsyncCallTracker::willFireTimer(ExecutionContext* context, int timerId)
if (!data->m_intervalTimerIds.contains(timerId))
data->m_timerCallChains.remove(timerId);
} else {
- setCurrentAsyncCallChain(context, nullptr);
+ setCurrentAsyncCallChain(context, InspectorDebuggerAgent::unknownAsyncOperationId);
}
return true;
}
@@ -221,12 +206,10 @@ void AsyncCallTracker::didRequestAnimationFrame(ExecutionContext* context, int c
{
ASSERT(context);
ASSERT(m_debuggerAgent->trackingAsyncCalls());
- RefPtrWillBeRawPtr<AsyncCallChain> callChain = m_debuggerAgent->traceAsyncOperationStarting(requestAnimationFrameName);
- if (!callChain)
- return;
+ int operationId = m_debuggerAgent->traceAsyncOperationStarting(requestAnimationFrameName);
ASSERT(callbackId > 0);
ExecutionContextData* data = createContextDataIfNeeded(context);
- data->m_animationFrameCallChains.set(callbackId, callChain.release());
+ data->m_animationFrameCallChains.set(callbackId, operationId);
}
void AsyncCallTracker::didCancelAnimationFrame(ExecutionContext* context, int callbackId)
@@ -249,7 +232,7 @@ bool AsyncCallTracker::willFireAnimationFrame(ExecutionContext* context, int cal
setCurrentAsyncCallChain(context, data->m_animationFrameCallChains.get(callbackId));
data->m_animationFrameCallChains.remove(callbackId);
} else {
- setCurrentAsyncCallChain(context, nullptr);
+ setCurrentAsyncCallChain(context, InspectorDebuggerAgent::unknownAsyncOperationId);
}
return true;
}
@@ -258,11 +241,9 @@ void AsyncCallTracker::didEnqueueEvent(EventTarget* eventTarget, Event* event)
{
ASSERT(eventTarget->executionContext());
ASSERT(m_debuggerAgent->trackingAsyncCalls());
- RefPtrWillBeRawPtr<AsyncCallChain> callChain = m_debuggerAgent->traceAsyncOperationStarting(event->type());
- if (!callChain)
- return;
+ int operationId = m_debuggerAgent->traceAsyncOperationStarting(event->type());
ExecutionContextData* data = createContextDataIfNeeded(eventTarget->executionContext());
- data->m_eventCallChains.set(event, callChain.release());
+ data->m_eventCallChains.set(event, operationId);
}
void AsyncCallTracker::didRemoveEvent(EventTarget* eventTarget, Event* event)
@@ -284,7 +265,7 @@ void AsyncCallTracker::willHandleEvent(EventTarget* eventTarget, Event* event, E
if (ExecutionContextData* data = m_executionContextDataMap.get(context))
setCurrentAsyncCallChain(context, data->m_eventCallChains.get(event));
else
- setCurrentAsyncCallChain(context, nullptr);
+ setCurrentAsyncCallChain(context, InspectorDebuggerAgent::unknownAsyncOperationId);
}
}
@@ -294,11 +275,9 @@ void AsyncCallTracker::willLoadXHR(XMLHttpRequest* xhr, ThreadableLoaderClient*,
ASSERT(m_debuggerAgent->trackingAsyncCalls());
if (!async)
return;
- RefPtrWillBeRawPtr<AsyncCallChain> callChain = m_debuggerAgent->traceAsyncOperationStarting(xhrSendName);
- if (!callChain)
- return;
+ int operationId = m_debuggerAgent->traceAsyncOperationStarting(xhrSendName);
ExecutionContextData* data = createContextDataIfNeeded(xhr->executionContext());
- data->m_xhrCallChains.set(xhr, callChain.release());
+ data->m_xhrCallChains.set(xhr, operationId);
}
void AsyncCallTracker::didDispatchXHRLoadendEvent(XMLHttpRequest* xhr)
@@ -317,7 +296,7 @@ void AsyncCallTracker::willHandleXHREvent(XMLHttpRequest* xhr, Event* event)
if (ExecutionContextData* data = m_executionContextDataMap.get(context))
setCurrentAsyncCallChain(context, data->m_xhrCallChains.get(xhr));
else
- setCurrentAsyncCallChain(context, nullptr);
+ setCurrentAsyncCallChain(context, InspectorDebuggerAgent::unknownAsyncOperationId);
}
void AsyncCallTracker::didEnqueueMutationRecord(ExecutionContext* context, MutationObserver* observer)
@@ -327,10 +306,8 @@ void AsyncCallTracker::didEnqueueMutationRecord(ExecutionContext* context, Mutat
ExecutionContextData* data = createContextDataIfNeeded(context);
if (data->m_mutationObserverCallChains.contains(observer))
return;
- RefPtrWillBeRawPtr<AsyncCallChain> callChain = m_debuggerAgent->traceAsyncOperationStarting(enqueueMutationRecordName);
- if (!callChain)
- return;
- data->m_mutationObserverCallChains.set(observer, callChain.release());
+ int operationId = m_debuggerAgent->traceAsyncOperationStarting(enqueueMutationRecordName);
+ data->m_mutationObserverCallChains.set(observer, operationId);
}
void AsyncCallTracker::didClearAllMutationRecords(ExecutionContext* context, MutationObserver* observer)
@@ -349,7 +326,7 @@ void AsyncCallTracker::willDeliverMutationRecords(ExecutionContext* context, Mut
setCurrentAsyncCallChain(context, data->m_mutationObserverCallChains.get(observer));
data->m_mutationObserverCallChains.remove(observer);
} else {
- setCurrentAsyncCallChain(context, nullptr);
+ setCurrentAsyncCallChain(context, InspectorDebuggerAgent::unknownAsyncOperationId);
}
}
@@ -359,11 +336,9 @@ void AsyncCallTracker::didPostExecutionContextTask(ExecutionContext* context, Ex
ASSERT(m_debuggerAgent->trackingAsyncCalls());
if (task->taskNameForInstrumentation().isEmpty())
return;
- RefPtrWillBeRawPtr<AsyncCallChain> callChain = m_debuggerAgent->traceAsyncOperationStarting(task->taskNameForInstrumentation());
- if (!callChain)
- return;
+ int operationId = m_debuggerAgent->traceAsyncOperationStarting(task->taskNameForInstrumentation());
ExecutionContextData* data = createContextDataIfNeeded(context);
- data->m_executionContextTaskCallChains.set(task, callChain.release());
+ data->m_executionContextTaskCallChains.set(task, operationId);
}
void AsyncCallTracker::didKillAllExecutionContextTasks(ExecutionContext* context)
@@ -382,7 +357,7 @@ void AsyncCallTracker::willPerformExecutionContextTask(ExecutionContext* context
setCurrentAsyncCallChain(context, data->m_executionContextTaskCallChains.get(task));
data->m_executionContextTaskCallChains.remove(task);
} else {
- setCurrentAsyncCallChain(context, nullptr);
+ setCurrentAsyncCallChain(context, InspectorDebuggerAgent::unknownAsyncOperationId);
}
}
@@ -392,13 +367,10 @@ int AsyncCallTracker::traceAsyncOperationStarting(ExecutionContext* context, con
ASSERT(m_debuggerAgent->trackingAsyncCalls());
if (prevOperationId)
traceAsyncOperationCompleted(context, prevOperationId);
- RefPtrWillBeRawPtr<AsyncCallChain> callChain = m_debuggerAgent->traceAsyncOperationStarting(operationName);
- if (!callChain)
- return 0;
+ int operationId = m_debuggerAgent->traceAsyncOperationStarting(operationName);
ExecutionContextData* data = createContextDataIfNeeded(context);
- int id = data->nextAsyncOperationUniqueId();
- data->m_asyncOperationCallChains.set(id, callChain.release());
- return id;
+ data->m_asyncOperationCallChains.set(operationId, operationId);
+ return operationId;
}
void AsyncCallTracker::traceAsyncOperationCompleted(ExecutionContext* context, int operationId)
@@ -422,9 +394,9 @@ void AsyncCallTracker::traceAsyncCallbackStarting(ExecutionContext* context, int
ASSERT(context);
ASSERT(m_debuggerAgent->trackingAsyncCalls());
if (ExecutionContextData* data = m_executionContextDataMap.get(context))
- setCurrentAsyncCallChain(context, operationId > 0 ? data->m_asyncOperationCallChains.get(operationId) : nullptr);
+ setCurrentAsyncCallChain(context, operationId > 0 ? data->m_asyncOperationCallChains.get(operationId) : InspectorDebuggerAgent::unknownAsyncOperationId);
else
- setCurrentAsyncCallChain(context, nullptr);
+ setCurrentAsyncCallChain(context, InspectorDebuggerAgent::unknownAsyncOperationId);
}
void AsyncCallTracker::didFireAsyncCall()
@@ -432,9 +404,9 @@ void AsyncCallTracker::didFireAsyncCall()
m_debuggerAgent->traceAsyncCallbackCompleted();
}
-void AsyncCallTracker::setCurrentAsyncCallChain(ExecutionContext* context, PassRefPtrWillBeRawPtr<AsyncCallChain> chain)
+void AsyncCallTracker::setCurrentAsyncCallChain(ExecutionContext* context, int operationId)
{
- m_debuggerAgent->traceAsyncCallbackStarting(toIsolate(context), chain);
+ m_debuggerAgent->traceAsyncCallbackStarting(toIsolate(context), operationId);
}
AsyncCallTracker::ExecutionContextData* AsyncCallTracker::createContextDataIfNeeded(ExecutionContext* context)

Powered by Google App Engine
This is Rietveld 408576698