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

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

Issue 2556013002: Fix paint property under-invalidation checking about reference filters (Closed)
Patch Set: - 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 122 matching lines...) Expand 10 before | Expand all | Expand 10 after
133 // LayoutObject::setNeedsPaintPropertyUpdate(). 133 // LayoutObject::setNeedsPaintPropertyUpdate().
134 // 2) The PrePaintTreeWalk should have had a forced subtree update (see: 134 // 2) The PrePaintTreeWalk should have had a forced subtree update (see:
135 // PaintPropertyTreeBuilderContext::forceSubtreeupdate). 135 // PaintPropertyTreeBuilderContext::forceSubtreeupdate).
136 const auto* objectProperties = m_object.paintProperties(); 136 const auto* objectProperties = m_object.paintProperties();
137 if (m_originalProperties && objectProperties) { 137 if (m_originalProperties && objectProperties) {
138 DCHECK_OBJECT_PROPERTY_EQ(m_object, 138 DCHECK_OBJECT_PROPERTY_EQ(m_object,
139 m_originalProperties->paintOffsetTranslation(), 139 m_originalProperties->paintOffsetTranslation(),
140 objectProperties->paintOffsetTranslation()); 140 objectProperties->paintOffsetTranslation());
141 DCHECK_OBJECT_PROPERTY_EQ(m_object, m_originalProperties->transform(), 141 DCHECK_OBJECT_PROPERTY_EQ(m_object, m_originalProperties->transform(),
142 objectProperties->transform()); 142 objectProperties->transform());
143 // This check ignores changes of reference filters.
143 DCHECK_OBJECT_PROPERTY_EQ(m_object, m_originalProperties->effect(), 144 DCHECK_OBJECT_PROPERTY_EQ(m_object, m_originalProperties->effect(),
144 objectProperties->effect()); 145 objectProperties->effect());
146 // This remedies the above ignored check of reference filters.
147 DCHECK(m_originalProperties->styleFilterOperations() ==
148 objectProperties->styleFilterOperations())
149 << "Filter operations were updated without the layout object ("
150 << m_object.debugName() << ") needing a paint property update.";
145 DCHECK_OBJECT_PROPERTY_EQ(m_object, m_originalProperties->cssClip(), 151 DCHECK_OBJECT_PROPERTY_EQ(m_object, m_originalProperties->cssClip(),
146 objectProperties->cssClip()); 152 objectProperties->cssClip());
147 DCHECK_OBJECT_PROPERTY_EQ(m_object, 153 DCHECK_OBJECT_PROPERTY_EQ(m_object,
148 m_originalProperties->cssClipFixedPosition(), 154 m_originalProperties->cssClipFixedPosition(),
149 objectProperties->cssClipFixedPosition()); 155 objectProperties->cssClipFixedPosition());
150 DCHECK_OBJECT_PROPERTY_EQ(m_object, 156 DCHECK_OBJECT_PROPERTY_EQ(m_object,
151 m_originalProperties->innerBorderRadiusClip(), 157 m_originalProperties->innerBorderRadiusClip(),
152 objectProperties->innerBorderRadiusClip()); 158 objectProperties->innerBorderRadiusClip());
153 DCHECK_OBJECT_PROPERTY_EQ(m_object, m_originalProperties->overflowClip(), 159 DCHECK_OBJECT_PROPERTY_EQ(m_object, m_originalProperties->overflowClip(),
154 objectProperties->overflowClip()); 160 objectProperties->overflowClip());
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
200 const LayoutObject& m_object; 206 const LayoutObject& m_object;
201 bool m_neededPaintPropertyUpdate; 207 bool m_neededPaintPropertyUpdate;
202 bool m_neededForcedSubtreeUpdate; 208 bool m_neededForcedSubtreeUpdate;
203 std::unique_ptr<const ObjectPaintProperties> m_originalProperties; 209 std::unique_ptr<const ObjectPaintProperties> m_originalProperties;
204 }; 210 };
205 211
206 } // namespace blink 212 } // namespace blink
207 #endif // DCHECK_IS_ON() 213 #endif // DCHECK_IS_ON()
208 214
209 #endif // FindPropertiesNeedingUpdate_h 215 #endif // FindPropertiesNeedingUpdate_h
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698