Index: third_party/WebKit/Source/platform/graphics/paint/FilterDisplayItem.h |
diff --git a/third_party/WebKit/Source/platform/graphics/paint/FilterDisplayItem.h b/third_party/WebKit/Source/platform/graphics/paint/FilterDisplayItem.h |
index 9aa4e53d054556f560aaee9db5000d882578fa2a..0406626a9991f708154d009c1d213cf21a674850 100644 |
--- a/third_party/WebKit/Source/platform/graphics/paint/FilterDisplayItem.h |
+++ b/third_party/WebKit/Source/platform/graphics/paint/FilterDisplayItem.h |
@@ -40,12 +40,14 @@ class PLATFORM_EXPORT BeginFilterDisplayItem final |
void dumpPropertiesAsDebugString(WTF::StringBuilder&) const override; |
#endif |
bool equals(const DisplayItem& other) const final { |
- // TODO(wangxianzhu): compare m_imageFilter and m_webFilterOperations. |
- const auto& other_display_item = |
- static_cast<const BeginFilterDisplayItem&>(other); |
- return DisplayItem::equals(other) && |
- m_bounds == other_display_item.m_bounds && |
- m_origin == other_display_item.m_origin; |
+ if (!DisplayItem::equals(other)) |
+ return false; |
+ const auto& otherItem = static_cast<const BeginFilterDisplayItem&>(other); |
+ // Ignores changes of reference filters because SkImageFilter doesn't have |
+ // an equality operator. |
+ return m_bounds == otherItem.m_bounds && m_origin == otherItem.m_origin && |
+ m_compositorFilterOperations.equalsIgnoringReferenceFilters( |
+ otherItem.m_compositorFilterOperations); |
} |
// FIXME: m_imageFilter should be replaced with m_webFilterOperations when |