Index: Source/core/layout/LayoutObject.cpp |
diff --git a/Source/core/layout/LayoutObject.cpp b/Source/core/layout/LayoutObject.cpp |
index 28c61e1fc62b67b095b35bab84d089161fb73d33..699300108431bdbe4f8b794f0a5fb9faa0395217 100644 |
--- a/Source/core/layout/LayoutObject.cpp |
+++ b/Source/core/layout/LayoutObject.cpp |
@@ -1700,6 +1700,13 @@ StyleDifference LayoutObject::adjustStyleDifference(StyleDifference diff) const |
diff.setNeedsPaintInvalidationLayer(); |
} |
+ // If backdrop filter changed, and the layer does not paint into its own separate backing or it paints with filters, then we need to invalidate paints. |
+ if (diff.backdropFilterChanged() && hasLayer()) { |
+ DeprecatedPaintLayer* layer = toLayoutBoxModelObject(this)->layer(); |
+ if (!layer->hasStyleDeterminedDirectCompositingReasons() || layer->paintsWithBackdropFilters()) |
+ diff.setNeedsPaintInvalidationLayer(); |
+ } |
+ |
if (diff.textOrColorChanged() && !diff.needsPaintInvalidation()) { |
if (style()->hasBorder() || style()->hasOutline() |
|| (isText() && !toLayoutText(this)->isAllCollapsibleWhitespace())) |