OLD | NEW |
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 #ifndef FindPropertiesNeedingUpdate_h | 5 #ifndef FindPropertiesNeedingUpdate_h |
6 #define FindPropertiesNeedingUpdate_h | 6 #define FindPropertiesNeedingUpdate_h |
7 | 7 |
8 #if DCHECK_IS_ON() | 8 #if DCHECK_IS_ON() |
9 namespace blink { | 9 namespace blink { |
10 | 10 |
(...skipping 98 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
109 const LayoutObject& object, | 109 const LayoutObject& object, |
110 PaintPropertyTreeBuilderContext& context) | 110 PaintPropertyTreeBuilderContext& context) |
111 : m_object(object), | 111 : m_object(object), |
112 m_neededPaintPropertyUpdate(object.needsPaintPropertyUpdate()), | 112 m_neededPaintPropertyUpdate(object.needsPaintPropertyUpdate()), |
113 m_neededForcedSubtreeUpdate(context.forceSubtreeUpdate) { | 113 m_neededForcedSubtreeUpdate(context.forceSubtreeUpdate) { |
114 // No need to check if an update was already needed. | 114 // No need to check if an update was already needed. |
115 if (m_neededPaintPropertyUpdate || m_neededForcedSubtreeUpdate) | 115 if (m_neededPaintPropertyUpdate || m_neededForcedSubtreeUpdate) |
116 return; | 116 return; |
117 | 117 |
118 // Mark the properties as needing an update to ensure they are rebuilt. | 118 // Mark the properties as needing an update to ensure they are rebuilt. |
119 const_cast<LayoutObject&>(m_object) | 119 m_object.getMutableForPainting() |
120 .setOnlyThisNeedsPaintPropertyUpdateForTesting(); | 120 .setOnlyThisNeedsPaintPropertyUpdateForTesting(); |
121 | 121 |
122 if (const auto* properties = m_object.paintProperties()) | 122 if (const auto* properties = m_object.paintProperties()) |
123 m_originalProperties = properties->clone(); | 123 m_originalProperties = properties->clone(); |
124 } | 124 } |
125 | 125 |
126 ~FindObjectPropertiesNeedingUpdateScope() { | 126 ~FindObjectPropertiesNeedingUpdateScope() { |
127 // No need to check if an update was already needed. | 127 // No need to check if an update was already needed. |
128 if (m_neededPaintPropertyUpdate || m_neededForcedSubtreeUpdate) | 128 if (m_neededPaintPropertyUpdate || m_neededForcedSubtreeUpdate) |
129 return; | 129 return; |
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
186 DCHECK_OBJECT_PROPERTY_EQ(m_object, | 186 DCHECK_OBJECT_PROPERTY_EQ(m_object, |
187 originalBorderBox->propertyTreeState.scroll(), | 187 originalBorderBox->propertyTreeState.scroll(), |
188 objectBorderBox->propertyTreeState.scroll()); | 188 objectBorderBox->propertyTreeState.scroll()); |
189 } else { | 189 } else { |
190 DCHECK_EQ(!!originalBorderBox, !!objectBorderBox); | 190 DCHECK_EQ(!!originalBorderBox, !!objectBorderBox); |
191 } | 191 } |
192 } else { | 192 } else { |
193 DCHECK_EQ(!!m_originalProperties, !!objectProperties); | 193 DCHECK_EQ(!!m_originalProperties, !!objectProperties); |
194 } | 194 } |
195 // Restore original clean bit. | 195 // Restore original clean bit. |
196 const_cast<LayoutObject&>(m_object).clearNeedsPaintPropertyUpdate(); | 196 m_object.getMutableForPainting().clearNeedsPaintPropertyUpdateForTesting(); |
197 } | 197 } |
198 | 198 |
199 private: | 199 private: |
200 const LayoutObject& m_object; | 200 const LayoutObject& m_object; |
201 bool m_neededPaintPropertyUpdate; | 201 bool m_neededPaintPropertyUpdate; |
202 bool m_neededForcedSubtreeUpdate; | 202 bool m_neededForcedSubtreeUpdate; |
203 std::unique_ptr<const ObjectPaintProperties> m_originalProperties; | 203 std::unique_ptr<const ObjectPaintProperties> m_originalProperties; |
204 }; | 204 }; |
205 | 205 |
206 } // namespace blink | 206 } // namespace blink |
207 #endif // DCHECK_IS_ON() | 207 #endif // DCHECK_IS_ON() |
208 | 208 |
209 #endif // FindPropertiesNeedingUpdate_h | 209 #endif // FindPropertiesNeedingUpdate_h |
OLD | NEW |