| 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 |