| Index: Source/core/inspector/AsyncCallStackTracker.cpp
|
| diff --git a/Source/core/inspector/AsyncCallStackTracker.cpp b/Source/core/inspector/AsyncCallStackTracker.cpp
|
| index cb4d83a9eb15b8d10562964f0924ced021fb6f47..9fd754c36bd72d59b9b00a3b3efaefb227da288c 100644
|
| --- a/Source/core/inspector/AsyncCallStackTracker.cpp
|
| +++ b/Source/core/inspector/AsyncCallStackTracker.cpp
|
| @@ -226,7 +226,7 @@ void AsyncCallStackTracker::willHandleEvent(EventTarget* eventTarget, Event* eve
|
| ASSERT(eventTarget->executionContext());
|
| ASSERT(isEnabled());
|
| if (XMLHttpRequest* xhr = toXmlHttpRequest(eventTarget)) {
|
| - willHandleXHREvent(xhr, eventTarget, event);
|
| + willHandleXHREvent(xhr, event);
|
| } else {
|
| ExecutionContext* context = eventTarget->executionContext();
|
| if (ExecutionContextData* data = m_executionContextDataMap.get(context))
|
| @@ -246,20 +246,23 @@ void AsyncCallStackTracker::willLoadXHR(XMLHttpRequest* xhr, const ScriptValue&
|
| data->m_xhrCallChains.set(xhr, createAsyncCallChain(xhrSendName, callFrames));
|
| }
|
|
|
| -void AsyncCallStackTracker::willHandleXHREvent(XMLHttpRequest* xhr, EventTarget* eventTarget, Event* event)
|
| +void AsyncCallStackTracker::didLoadXHR(XMLHttpRequest* xhr)
|
| +{
|
| + ASSERT(xhr->executionContext());
|
| + ASSERT(isEnabled());
|
| + if (ExecutionContextData* data = m_executionContextDataMap.get(xhr->executionContext()))
|
| + data->m_xhrCallChains.remove(xhr);
|
| +}
|
| +
|
| +void AsyncCallStackTracker::willHandleXHREvent(XMLHttpRequest* xhr, Event* event)
|
| {
|
| ExecutionContext* context = xhr->executionContext();
|
| ASSERT(context);
|
| ASSERT(isEnabled());
|
| - if (ExecutionContextData* data = m_executionContextDataMap.get(context)) {
|
| - bool isXHRDownload = (xhr == eventTarget);
|
| - if (isXHRDownload && event->type() == EventTypeNames::loadend)
|
| - setCurrentAsyncCallChain(context, data->m_xhrCallChains.take(xhr));
|
| - else
|
| - setCurrentAsyncCallChain(context, data->m_xhrCallChains.get(xhr));
|
| - } else {
|
| + if (ExecutionContextData* data = m_executionContextDataMap.get(context))
|
| + setCurrentAsyncCallChain(context, data->m_xhrCallChains.get(xhr));
|
| + else
|
| setCurrentAsyncCallChain(context, nullptr);
|
| - }
|
| }
|
|
|
| void AsyncCallStackTracker::didEnqueueMutationRecord(ExecutionContext* context, MutationObserver* observer, const ScriptValue& callFrames)
|
|
|