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

Side by Side Diff: Source/core/dom/custom/CustomElementMicrotaskDispatcher.h

Issue 947393002: InlinedVisitor: Migrate dom to use inlined tracing (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 5 years, 10 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 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 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef CustomElementMicrotaskDispatcher_h 5 #ifndef CustomElementMicrotaskDispatcher_h
6 #define CustomElementMicrotaskDispatcher_h 6 #define CustomElementMicrotaskDispatcher_h
7 7
8 #include "platform/heap/Handle.h" 8 #include "platform/heap/Handle.h"
9 #include "wtf/Noncopyable.h" 9 #include "wtf/Noncopyable.h"
10 #include "wtf/PassOwnPtr.h" 10 #include "wtf/PassOwnPtr.h"
11 #include "wtf/Vector.h" 11 #include "wtf/Vector.h"
12 12
13 namespace blink { 13 namespace blink {
14 14
15 class CustomElementCallbackQueue; 15 class CustomElementCallbackQueue;
16 16
17 class CustomElementMicrotaskDispatcher final : public NoBaseWillBeGarbageCollect ed<CustomElementMicrotaskDispatcher> { 17 class CustomElementMicrotaskDispatcher final : public NoBaseWillBeGarbageCollect ed<CustomElementMicrotaskDispatcher> {
18 WTF_MAKE_NONCOPYABLE(CustomElementMicrotaskDispatcher); 18 WTF_MAKE_NONCOPYABLE(CustomElementMicrotaskDispatcher);
19 DECLARE_EMPTY_DESTRUCTOR_WILL_BE_REMOVED(CustomElementMicrotaskDispatcher); 19 DECLARE_EMPTY_DESTRUCTOR_WILL_BE_REMOVED(CustomElementMicrotaskDispatcher);
20 public: 20 public:
21 static CustomElementMicrotaskDispatcher& instance(); 21 static CustomElementMicrotaskDispatcher& instance();
22 22
23 void enqueue(CustomElementCallbackQueue*); 23 void enqueue(CustomElementCallbackQueue*);
24 24
25 bool elementQueueIsEmpty() { return m_elements.isEmpty(); } 25 bool elementQueueIsEmpty() { return m_elements.isEmpty(); }
26 26
27 void trace(Visitor*); 27 DECLARE_TRACE();
28 28
29 private: 29 private:
30 CustomElementMicrotaskDispatcher(); 30 CustomElementMicrotaskDispatcher();
31 31
32 void ensureMicrotaskScheduledForElementQueue(); 32 void ensureMicrotaskScheduledForElementQueue();
33 void ensureMicrotaskScheduled(); 33 void ensureMicrotaskScheduled();
34 34
35 static void dispatch(); 35 static void dispatch();
36 void doDispatch(); 36 void doDispatch();
37 37
38 bool m_hasScheduledMicrotask; 38 bool m_hasScheduledMicrotask;
39 enum { 39 enum {
40 Quiescent, 40 Quiescent,
41 Resolving, 41 Resolving,
42 DispatchingCallbacks 42 DispatchingCallbacks
43 } m_phase; 43 } m_phase;
44 44
45 WillBeHeapVector<RawPtrWillBeMember<CustomElementCallbackQueue> > m_elements ; 45 WillBeHeapVector<RawPtrWillBeMember<CustomElementCallbackQueue> > m_elements ;
46 }; 46 };
47 47
48 } // namespace blink 48 } // namespace blink
49 49
50 #endif // CustomElementMicrotaskDispatcher_h 50 #endif // CustomElementMicrotaskDispatcher_h
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698