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

Side by Side Diff: third_party/WebKit/Source/core/dom/custom/CustomElementReactionStack.cpp

Issue 2592653002: [wrapper-tracing] Trace CustomElementReactionStack (Closed)
Patch Set: Created 3 years, 12 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
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 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 #include "core/dom/custom/CustomElementReactionStack.h" 5 #include "core/dom/custom/CustomElementReactionStack.h"
6 6
7 #include "bindings/core/v8/Microtask.h" 7 #include "bindings/core/v8/Microtask.h"
8 #include "core/dom/Element.h" 8 #include "core/dom/Element.h"
9 #include "core/dom/custom/CEReactionsScope.h" 9 #include "core/dom/custom/CEReactionsScope.h"
10 #include "core/dom/custom/CustomElementReactionQueue.h" 10 #include "core/dom/custom/CustomElementReactionQueue.h"
(...skipping 16 matching lines...) Expand all
27 // finalizers, to make short-lived entries fast. 27 // finalizers, to make short-lived entries fast.
28 28
29 CustomElementReactionStack::CustomElementReactionStack() {} 29 CustomElementReactionStack::CustomElementReactionStack() {}
30 30
31 DEFINE_TRACE(CustomElementReactionStack) { 31 DEFINE_TRACE(CustomElementReactionStack) {
32 visitor->trace(m_map); 32 visitor->trace(m_map);
33 visitor->trace(m_stack); 33 visitor->trace(m_stack);
34 visitor->trace(m_backupQueue); 34 visitor->trace(m_backupQueue);
35 } 35 }
36 36
37 DEFINE_TRACE_WRAPPERS(CustomElementReactionStack) {
38 for (auto key : m_map.keys()) {
39 visitor->traceWrappers(key);
40 }
41 }
42
37 void CustomElementReactionStack::push() { 43 void CustomElementReactionStack::push() {
38 m_stack.append(nullptr); 44 m_stack.append(nullptr);
39 } 45 }
40 46
41 void CustomElementReactionStack::popInvokingReactions() { 47 void CustomElementReactionStack::popInvokingReactions() {
42 ElementQueue* queue = m_stack.back(); 48 ElementQueue* queue = m_stack.back();
43 if (queue) 49 if (queue)
44 invokeReactions(*queue); 50 invokeReactions(*queue);
45 m_stack.pop_back(); 51 m_stack.pop_back();
46 } 52 }
(...skipping 18 matching lines...) Expand all
65 void CustomElementReactionStack::enqueue(Member<ElementQueue>& queue, 71 void CustomElementReactionStack::enqueue(Member<ElementQueue>& queue,
66 Element* element, 72 Element* element,
67 CustomElementReaction* reaction) { 73 CustomElementReaction* reaction) {
68 if (!queue) 74 if (!queue)
69 queue = new ElementQueue(); 75 queue = new ElementQueue();
70 queue->append(element); 76 queue->append(element);
71 77
72 CustomElementReactionQueue* reactions = m_map.get(element); 78 CustomElementReactionQueue* reactions = m_map.get(element);
73 if (!reactions) { 79 if (!reactions) {
74 reactions = new CustomElementReactionQueue(); 80 reactions = new CustomElementReactionQueue();
75 m_map.add(element, reactions); 81 m_map.add(TraceWrapperMember<Element>(this, element), reactions);
76 } 82 }
77 83
78 reactions->add(reaction); 84 reactions->add(reaction);
79 } 85 }
80 86
81 void CustomElementReactionStack::enqueueToBackupQueue( 87 void CustomElementReactionStack::enqueueToBackupQueue(
82 Element* element, 88 Element* element,
83 CustomElementReaction* reaction) { 89 CustomElementReaction* reaction) {
84 // https://html.spec.whatwg.org/multipage/scripting.html#backup-element-queue 90 // https://html.spec.whatwg.org/multipage/scripting.html#backup-element-queue
85 91
(...skipping 29 matching lines...) Expand all
115 CustomElementReactionStack* 121 CustomElementReactionStack*
116 CustomElementReactionStackTestSupport::setCurrentForTest( 122 CustomElementReactionStackTestSupport::setCurrentForTest(
117 CustomElementReactionStack* newStack) { 123 CustomElementReactionStack* newStack) {
118 Persistent<CustomElementReactionStack>& stack = customElementReactionStack(); 124 Persistent<CustomElementReactionStack>& stack = customElementReactionStack();
119 CustomElementReactionStack* oldStack = stack.get(); 125 CustomElementReactionStack* oldStack = stack.get();
120 stack = newStack; 126 stack = newStack;
121 return oldStack; 127 return oldStack;
122 } 128 }
123 129
124 } // namespace blink 130 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698