Index: Source/core/inspector/AsyncCallStackTracker.cpp |
diff --git a/Source/core/inspector/AsyncCallStackTracker.cpp b/Source/core/inspector/AsyncCallStackTracker.cpp |
index 01c4e099191b506d642d8f51838c2d943a2d26d2..8eb103cf8404108521c4517b41d97915f992f155 100644 |
--- a/Source/core/inspector/AsyncCallStackTracker.cpp |
+++ b/Source/core/inspector/AsyncCallStackTracker.cpp |
@@ -56,8 +56,8 @@ static const char enqueueMutationRecordName[] = "Mutation"; |
namespace blink { |
-class AsyncCallStackTracker::ExecutionContextData FINAL : public ContextLifecycleObserver { |
- WTF_MAKE_FAST_ALLOCATED; |
+class AsyncCallStackTracker::ExecutionContextData FINAL : public NoBaseWillBeGarbageCollectedFinalized<AsyncCallStackTracker::ExecutionContextData>, public ContextLifecycleObserver { |
+ WTF_MAKE_FAST_ALLOCATED_WILL_BE_REMOVED; |
public: |
ExecutionContextData(AsyncCallStackTracker* tracker, ExecutionContext* executionContext) |
: ContextLifecycleObserver(executionContext) |
@@ -83,20 +83,33 @@ public: |
return m_circularSequentialID; |
} |
+ void trace(Visitor* visitor) |
+ { |
+ visitor->trace(m_tracker); |
+ visitor->trace(m_timerCallChains); |
+ visitor->trace(m_animationFrameCallChains); |
+ visitor->trace(m_eventCallChains); |
+ visitor->trace(m_xhrCallChains); |
+ visitor->trace(m_mutationObserverCallChains); |
+ visitor->trace(m_executionContextTaskCallChains); |
+ visitor->trace(m_v8AsyncTaskCallChains); |
+ visitor->trace(m_asyncOperationCallChains); |
+ } |
+ |
private: |
int m_circularSequentialID; |
public: |
- AsyncCallStackTracker* m_tracker; |
+ RawPtrWillBeMember<AsyncCallStackTracker> m_tracker; |
HashSet<int> m_intervalTimerIds; |
- WillBePersistentHeapHashMap<int, RefPtrWillBeMember<AsyncCallChain> > m_timerCallChains; |
- WillBePersistentHeapHashMap<int, RefPtrWillBeMember<AsyncCallChain> > m_animationFrameCallChains; |
- WillBePersistentHeapHashMap<RawPtrWillBeMember<Event>, RefPtrWillBeMember<AsyncCallChain> > m_eventCallChains; |
- WillBePersistentHeapHashMap<RawPtrWillBeMember<EventTarget>, RefPtrWillBeMember<AsyncCallChain> > m_xhrCallChains; |
- WillBePersistentHeapHashMap<RawPtrWillBeMember<MutationObserver>, RefPtrWillBeMember<AsyncCallChain> > m_mutationObserverCallChains; |
- WillBePersistentHeapHashMap<ExecutionContextTask*, RefPtrWillBeMember<AsyncCallChain> > m_executionContextTaskCallChains; |
- WillBePersistentHeapHashMap<String, RefPtrWillBeMember<AsyncCallChain> > m_v8AsyncTaskCallChains; |
- WillBePersistentHeapHashMap<int, RefPtrWillBeMember<AsyncCallChain> > m_asyncOperationCallChains; |
+ WillBeHeapHashMap<int, RefPtrWillBeMember<AsyncCallChain> > m_timerCallChains; |
+ WillBeHeapHashMap<int, RefPtrWillBeMember<AsyncCallChain> > m_animationFrameCallChains; |
+ WillBeHeapHashMap<RawPtrWillBeMember<Event>, RefPtrWillBeMember<AsyncCallChain> > m_eventCallChains; |
+ WillBeHeapHashMap<RawPtrWillBeMember<EventTarget>, RefPtrWillBeMember<AsyncCallChain> > m_xhrCallChains; |
+ WillBeHeapHashMap<RawPtrWillBeMember<MutationObserver>, RefPtrWillBeMember<AsyncCallChain> > m_mutationObserverCallChains; |
+ WillBeHeapHashMap<ExecutionContextTask*, RefPtrWillBeMember<AsyncCallChain> > m_executionContextTaskCallChains; |
+ WillBeHeapHashMap<String, RefPtrWillBeMember<AsyncCallChain> > m_v8AsyncTaskCallChains; |
+ WillBeHeapHashMap<int, RefPtrWillBeMember<AsyncCallChain> > m_asyncOperationCallChains; |
}; |
static XMLHttpRequest* toXmlHttpRequest(EventTarget* eventTarget) |
@@ -480,4 +493,10 @@ void AsyncCallStackTracker::clear() |
delete it->value; |
} |
+void AsyncCallStackTracker::trace(Visitor* visitor) |
+{ |
+ visitor->trace(m_currentAsyncCallChain); |
+ visitor->trace(m_executionContextDataMap); |
+} |
+ |
} // namespace blink |