OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2014 Google Inc. All rights reserved. | 2 * Copyright (C) 2014 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 91 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
102 | 102 |
103 void setTreeBoundaryCrossing() { m_treeBoundaryCrossing = true; } | 103 void setTreeBoundaryCrossing() { m_treeBoundaryCrossing = true; } |
104 bool treeBoundaryCrossing() const { return m_treeBoundaryCrossing; } | 104 bool treeBoundaryCrossing() const { return m_treeBoundaryCrossing; } |
105 | 105 |
106 void setInsertionPointCrossing() { m_insertionPointCrossing = true; } | 106 void setInsertionPointCrossing() { m_insertionPointCrossing = true; } |
107 bool insertionPointCrossing() const { return m_insertionPointCrossing; } | 107 bool insertionPointCrossing() const { return m_insertionPointCrossing; } |
108 | 108 |
109 void setCustomPseudoInvalid() { m_customPseudoInvalid = true; } | 109 void setCustomPseudoInvalid() { m_customPseudoInvalid = true; } |
110 bool customPseudoInvalid() const { return m_customPseudoInvalid; } | 110 bool customPseudoInvalid() const { return m_customPseudoInvalid; } |
111 | 111 |
112 bool isEmpty() const { return !m_classes && !m_ids && !m_tagNames && !m_attr
ibutes && !m_customPseudoInvalid && !m_insertionPointCrossing; } | 112 void setInvalidatesSlotted() { m_invalidatesSlotted = true; } |
| 113 bool invalidatesSlotted() const { return m_invalidatesSlotted; } |
| 114 |
| 115 bool isEmpty() const { return !m_classes && !m_ids && !m_tagNames && !m_attr
ibutes && !m_customPseudoInvalid && !m_insertionPointCrossing && !m_invalidatesS
lotted; } |
113 | 116 |
114 void toTracedValue(TracedValue*) const; | 117 void toTracedValue(TracedValue*) const; |
115 | 118 |
116 #ifndef NDEBUG | 119 #ifndef NDEBUG |
117 void show() const; | 120 void show() const; |
118 #endif | 121 #endif |
119 | 122 |
120 const HashSet<AtomicString>& classSetForTesting() const { ASSERT(m_classes);
return *m_classes; } | 123 const HashSet<AtomicString>& classSetForTesting() const { ASSERT(m_classes);
return *m_classes; } |
121 const HashSet<AtomicString>& idSetForTesting() const { ASSERT(m_ids); return
*m_ids; } | 124 const HashSet<AtomicString>& idSetForTesting() const { ASSERT(m_ids); return
*m_ids; } |
122 const HashSet<AtomicString>& tagNameSetForTesting() const { ASSERT(m_tagName
s); return *m_tagNames; } | 125 const HashSet<AtomicString>& tagNameSetForTesting() const { ASSERT(m_tagName
s); return *m_tagNames; } |
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
157 unsigned m_invalidatesSelf : 1; | 160 unsigned m_invalidatesSelf : 1; |
158 | 161 |
159 // If true, all descendants which are custom pseudo elements must be invalid
ated. | 162 // If true, all descendants which are custom pseudo elements must be invalid
ated. |
160 unsigned m_customPseudoInvalid : 1; | 163 unsigned m_customPseudoInvalid : 1; |
161 | 164 |
162 // If true, the invalidation must traverse into ShadowRoots with this set. | 165 // If true, the invalidation must traverse into ShadowRoots with this set. |
163 unsigned m_treeBoundaryCrossing : 1; | 166 unsigned m_treeBoundaryCrossing : 1; |
164 | 167 |
165 // If true, insertion point descendants must be invalidated. | 168 // If true, insertion point descendants must be invalidated. |
166 unsigned m_insertionPointCrossing : 1; | 169 unsigned m_insertionPointCrossing : 1; |
| 170 |
| 171 // If true, distributed nodes of <slot> elements need to be invalidated. |
| 172 unsigned m_invalidatesSlotted : 1; |
167 }; | 173 }; |
168 | 174 |
169 class CORE_EXPORT DescendantInvalidationSet final : public InvalidationSet { | 175 class CORE_EXPORT DescendantInvalidationSet final : public InvalidationSet { |
170 public: | 176 public: |
171 static PassRefPtr<DescendantInvalidationSet> create() | 177 static PassRefPtr<DescendantInvalidationSet> create() |
172 { | 178 { |
173 return adoptRef(new DescendantInvalidationSet); | 179 return adoptRef(new DescendantInvalidationSet); |
174 } | 180 } |
175 | 181 |
176 private: | 182 private: |
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
214 InvalidationSetVector descendants; | 220 InvalidationSetVector descendants; |
215 InvalidationSetVector siblings; | 221 InvalidationSetVector siblings; |
216 }; | 222 }; |
217 | 223 |
218 DEFINE_TYPE_CASTS(DescendantInvalidationSet, InvalidationSet, value, value->isDe
scendantInvalidationSet(), value.isDescendantInvalidationSet()); | 224 DEFINE_TYPE_CASTS(DescendantInvalidationSet, InvalidationSet, value, value->isDe
scendantInvalidationSet(), value.isDescendantInvalidationSet()); |
219 DEFINE_TYPE_CASTS(SiblingInvalidationSet, InvalidationSet, value, value->isSibli
ngInvalidationSet(), value.isSiblingInvalidationSet()); | 225 DEFINE_TYPE_CASTS(SiblingInvalidationSet, InvalidationSet, value, value->isSibli
ngInvalidationSet(), value.isSiblingInvalidationSet()); |
220 | 226 |
221 } // namespace blink | 227 } // namespace blink |
222 | 228 |
223 #endif // InvalidationSet_h | 229 #endif // InvalidationSet_h |
OLD | NEW |