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

Side by Side Diff: third_party/WebKit/Source/core/paint/FindPropertiesNeedingUpdate.h

Issue 2585603002: [SPInvaldation] Update subtree paint properties when a layout subtree is inserted (Closed)
Patch Set: Separate out printing change Created 4 years 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 #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
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
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698