Index: Source/core/rendering/compositing/CompositingReasonFinder.cpp |
diff --git a/Source/core/rendering/compositing/CompositingReasonFinder.cpp b/Source/core/rendering/compositing/CompositingReasonFinder.cpp |
index 0002195a36b4fa9f855323e59137556d1669d00b..7755f81b988691a05226110fc5a4350d0a0cd76d 100644 |
--- a/Source/core/rendering/compositing/CompositingReasonFinder.cpp |
+++ b/Source/core/rendering/compositing/CompositingReasonFinder.cpp |
@@ -101,6 +101,9 @@ CompositingReasons CompositingReasonFinder::directReasons(const RenderLayer* lay |
if (requiresCompositingForOutOfFlowClipping(layer)) |
directReasons |= CompositingReasonOutOfFlowClipping; |
+ if (requiresCompositingForWillChange(renderer)) |
+ directReasons |= CompositingReasonWillChange; |
+ |
return directReasons; |
} |
@@ -258,6 +261,11 @@ bool CompositingReasonFinder::requiresCompositingForOutOfFlowClipping(const Rend |
return m_renderView.compositorDrivenAcceleratedScrollingEnabled() && layer->isUnclippedDescendant(); |
} |
+bool CompositingReasonFinder::requiresCompositingForWillChange(const RenderObject* renderer) const |
+{ |
+ return renderer->style()->hasWillChangeCompositingHint(); |
+} |
+ |
bool CompositingReasonFinder::isViewportConstrainedFixedOrStickyLayer(const RenderLayer* layer) |
{ |
if (layer->renderer()->isStickyPositioned()) |