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

Unified Diff: third_party/WebKit/Source/core/paint/ObjectPaintProperties.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 side-by-side diff with in-line comments
Download patch
Index: third_party/WebKit/Source/core/paint/ObjectPaintProperties.h
diff --git a/third_party/WebKit/Source/core/paint/ObjectPaintProperties.h b/third_party/WebKit/Source/core/paint/ObjectPaintProperties.h
index ba7540160dcd65a9785e7d4eb5b2c6af630dbf29..1faf65c34f5f33dc66dcd9d6a15645a0ffeffe7a 100644
--- a/third_party/WebKit/Source/core/paint/ObjectPaintProperties.h
+++ b/third_party/WebKit/Source/core/paint/ObjectPaintProperties.h
@@ -18,6 +18,10 @@
#include "wtf/RefPtr.h"
#include <memory>
+#if DCHECK_IS_ON()
+#include "core/style/FilterOperations.h"
+#endif
+
namespace blink {
// This class stores property tree related information associated with a
@@ -283,8 +287,20 @@ class CORE_EXPORT ObjectPaintProperties {
PropertyTreeState(state.transform(), state.clip(), state.effect(),
state.scroll())));
}
+ cloned->setStyleFilterOperations(m_styleFilterOperations);
return cloned;
}
+
+ // Used to check changes of filters, especially reference filters which are
+ // ignored in EffectPaintPropertyNode::operator==() because we have no way to
+ // check equality of SkImageFilter values.
+ const FilterOperations& styleFilterOperations() const {
+ return m_styleFilterOperations;
+ }
+ void setStyleFilterOperations(const FilterOperations& operations) {
+ m_styleFilterOperations = operations;
+ }
+ DEFINE_INLINE_TRACE() { visitor->trace(m_styleFilterOperations); }
#endif
private:
@@ -326,6 +342,10 @@ class CORE_EXPORT ObjectPaintProperties {
RefPtr<ScrollPaintPropertyNode> m_scroll;
std::unique_ptr<PropertyTreeStateWithOffset> m_localBorderBoxProperties;
+
+#if DCHECK_IS_ON()
+ FilterOperations m_styleFilterOperations;
+#endif
};
} // namespace blink

Powered by Google App Engine
This is Rietveld 408576698