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