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

Unified Diff: third_party/WebKit/Source/core/paint/PaintPropertyTreeBuilder.cpp

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 side-by-side diff with in-line comments
Download patch
Index: third_party/WebKit/Source/core/paint/PaintPropertyTreeBuilder.cpp
diff --git a/third_party/WebKit/Source/core/paint/PaintPropertyTreeBuilder.cpp b/third_party/WebKit/Source/core/paint/PaintPropertyTreeBuilder.cpp
index a0a17d3962ef13e7d138575fc7b25be600a0f5ca..582ab106323fd7b67af9a1a8c668fff80b82f8a6 100644
--- a/third_party/WebKit/Source/core/paint/PaintPropertyTreeBuilder.cpp
+++ b/third_party/WebKit/Source/core/paint/PaintPropertyTreeBuilder.cpp
@@ -382,11 +382,19 @@ void PaintPropertyTreeBuilder::updateEffect(
effectNodeNeeded = true;
CompositorFilterOperations filter;
+#if DCHECK_IS_ON()
+ FilterOperations styleFilterOperations;
+#endif
if (object.isSVG() && !object.isSVGRoot()) {
// TODO(trchen): SVG caches filters in SVGResources. Implement it.
} else if (PaintLayer* layer = toLayoutBoxModelObject(object).layer()) {
// TODO(trchen): Eliminate PaintLayer dependency.
+#if DCHECK_IS_ON()
+ filter = layer->createCompositorFilterOperationsForFilter(
+ style, &styleFilterOperations);
+#else
filter = layer->createCompositorFilterOperationsForFilter(style);
+#endif
}
const ClipPaintPropertyNode* outputClip = context.inputClipOfCurrentEffect;
@@ -422,6 +430,9 @@ void PaintPropertyTreeBuilder::updateEffect(
context.forceSubtreeUpdate |= properties.updateEffect(
context.currentEffect, context.current.transform, outputClip,
std::move(filter), opacity);
+#if DCHECK_IS_ON()
+ properties.setStyleFilterOperations(styleFilterOperations);
pdr. 2016/12/08 02:00:41 How much additional value will these checks give u
Xianzhu 2016/12/08 17:34:35 You are right. The little additional value is not
+#endif
} else {
if (auto* properties = object.getMutableForPainting().paintProperties())
context.forceSubtreeUpdate |= properties->clearEffect();

Powered by Google App Engine
This is Rietveld 408576698