1 // Copyright 2014 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #ifndef ScriptAsyncCallStack_h 6 #define ScriptAsyncCallStack_h 7 8 #include "core/InspectorTypeBuilder.h" 9 #include "core/inspector/ScriptCallStack.h" 10 #include "platform/heap/Handle.h" 11 #include "wtf/Forward.h" 12 #include "wtf/RefCounted.h" 13 14 namespace blink { 15 16 class ScriptAsyncCallStack : public RefCountedWillBeGarbageCollectedFinalized<ScriptAsyncCallStack> { 17 DECLARE_EMPTY_DESTRUCTOR_WILL_BE_REMOVED(ScriptAsyncCallStack); 18 public: 19 static PassRefPtrWillBeRawPtr<ScriptAsyncCallStack> create(const String&, PassRefPtrWillBeRawPtr<ScriptCallStack>, PassRefPtrWillBeRawPtr<ScriptAsyncCallStack>); 20 21 PassRefPtr<TypeBuilder::Console::AsyncStackTrace> buildInspectorObject() const; 22 23 void trace(Visitor*); 24 25 private: 26 ScriptAsyncCallStack(const String&, PassRefPtrWillBeRawPtr<ScriptCallStack>, PassRefPtrWillBeRawPtr<ScriptAsyncCallStack>); 27 28 String m_description; 29 RefPtrWillBeMember<ScriptCallStack> m_callStack; 30 RefPtrWillBeMember<ScriptAsyncCallStack> m_asyncStackTrace; 31 }; 32 33 } // namespace blink 34 35 #endif // ScriptAsyncCallStack_h 36