OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2013 Google Inc. All rights reserved. | 2 * Copyright (C) 2013 Google Inc. All rights reserved. |
3 * | 3 * |
4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
5 * modification, are permitted provided that the following conditions are | 5 * modification, are permitted provided that the following conditions are |
6 * met: | 6 * met: |
7 * | 7 * |
8 * * Redistributions of source code must retain the above copyright | 8 * * Redistributions of source code must retain the above copyright |
9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
10 * * Redistributions in binary form must reproduce the above | 10 * * Redistributions in binary form must reproduce the above |
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
72 CustomElementObserver::elementWasDestroyed(element); | 72 CustomElementObserver::elementWasDestroyed(element); |
73 UpgradeCandidateMap::iterator candidate = m_upgradeCandidates.find(element); | 73 UpgradeCandidateMap::iterator candidate = m_upgradeCandidates.find(element); |
74 ASSERT_WITH_SECURITY_IMPLICATION(candidate != m_upgradeCandidates.end()); | 74 ASSERT_WITH_SECURITY_IMPLICATION(candidate != m_upgradeCandidates.end()); |
75 | 75 |
76 UnresolvedDefinitionMap::iterator elements = m_unresolvedDefinitions.find(ca
ndidate->value); | 76 UnresolvedDefinitionMap::iterator elements = m_unresolvedDefinitions.find(ca
ndidate->value); |
77 ASSERT_WITH_SECURITY_IMPLICATION(elements != m_unresolvedDefinitions.end()); | 77 ASSERT_WITH_SECURITY_IMPLICATION(elements != m_unresolvedDefinitions.end()); |
78 elements->value->remove(element); | 78 elements->value->remove(element); |
79 m_upgradeCandidates.remove(candidate); | 79 m_upgradeCandidates.remove(candidate); |
80 } | 80 } |
81 | 81 |
82 void CustomElementUpgradeCandidateMap::elementDidFinishParsingChildren(Element*
element) | |
83 { | |
84 // An upgrade candidate finished parsing; reorder so that eventual | |
85 // upgrade order matches finished-parsing order. | |
86 moveToEnd(element); | |
87 } | |
88 | |
89 void CustomElementUpgradeCandidateMap::moveToEnd(Element* element) | |
90 { | |
91 UpgradeCandidateMap::iterator candidate = m_upgradeCandidates.find(element); | |
92 ASSERT_WITH_SECURITY_IMPLICATION(candidate != m_upgradeCandidates.end()); | |
93 | |
94 UnresolvedDefinitionMap::iterator elements = m_unresolvedDefinitions.find(ca
ndidate->value); | |
95 ASSERT_WITH_SECURITY_IMPLICATION(elements != m_unresolvedDefinitions.end()); | |
96 elements->value->appendOrMoveToLast(element); | |
97 } | |
98 | |
99 PassOwnPtrWillBeRawPtr<CustomElementUpgradeCandidateMap::ElementSet> CustomEleme
ntUpgradeCandidateMap::takeUpgradeCandidatesFor(const CustomElementDescriptor& d
escriptor) | 82 PassOwnPtrWillBeRawPtr<CustomElementUpgradeCandidateMap::ElementSet> CustomEleme
ntUpgradeCandidateMap::takeUpgradeCandidatesFor(const CustomElementDescriptor& d
escriptor) |
100 { | 83 { |
101 OwnPtrWillBeRawPtr<ElementSet> candidates = m_unresolvedDefinitions.take(des
criptor); | 84 OwnPtrWillBeRawPtr<ElementSet> candidates = m_unresolvedDefinitions.take(des
criptor); |
102 | 85 |
103 if (!candidates) | 86 if (!candidates) |
104 return nullptr; | 87 return nullptr; |
105 | 88 |
106 for (const auto& candidate : *candidates) { | 89 for (const auto& candidate : *candidates) { |
107 unobserve(candidate); | 90 unobserve(candidate); |
108 m_upgradeCandidates.remove(candidate); | 91 m_upgradeCandidates.remove(candidate); |
109 } | 92 } |
110 return candidates.release(); | 93 return candidates.release(); |
111 } | 94 } |
112 | 95 |
113 void CustomElementUpgradeCandidateMap::trace(Visitor* visitor) | 96 void CustomElementUpgradeCandidateMap::trace(Visitor* visitor) |
114 { | 97 { |
115 #if ENABLE(OILPAN) | 98 #if ENABLE(OILPAN) |
116 visitor->trace(m_upgradeCandidates); | 99 visitor->trace(m_upgradeCandidates); |
117 visitor->trace(m_unresolvedDefinitions); | 100 visitor->trace(m_unresolvedDefinitions); |
118 #endif | 101 #endif |
119 CustomElementObserver::trace(visitor); | 102 CustomElementObserver::trace(visitor); |
120 } | 103 } |
121 | 104 |
122 } // namespace blink | 105 } // namespace blink |
OLD | NEW |