Index: Source/core/frame/FrameView.cpp |
diff --git a/Source/core/frame/FrameView.cpp b/Source/core/frame/FrameView.cpp |
index 405f3d09a4c0829d7b8ace6f4caa564d3f8b124b..f1da154ddb752720821e8cf08078f4e3b47b7b6b 100644 |
--- a/Source/core/frame/FrameView.cpp |
+++ b/Source/core/frame/FrameView.cpp |
@@ -84,6 +84,7 @@ |
#include "platform/graphics/GraphicsContextStateSaver.h" |
#include "platform/graphics/GraphicsLayer.h" |
#include "platform/graphics/GraphicsLayerDebugInfo.h" |
+#include "platform/graphics/paint/DisplayItemList.h" |
#include "platform/scroll/ScrollAnimator.h" |
#include "platform/text/TextStream.h" |
#include "wtf/CurrentTime.h" |
@@ -1387,6 +1388,14 @@ void FrameView::scrollContentsSlowPath(const IntRect& updateRect) |
} |
if (RenderPart* frameRenderer = m_frame->ownerRenderer()) { |
if (isEnclosedInCompositingLayer()) { |
+ // FIXME: This block is needed for the display list merge algorithm to work correctly. |
+ // Remove this once https://codereview.chromium.org/847783003/ lands. |
+ if (RuntimeEnabledFeatures::slimmingPaintEnabled()) { |
+ RenderView* renderView = this->renderView(); |
+ ASSERT(renderView); |
+ renderView->layer()->enclosingLayerForPaintInvalidationCrossingFrameBoundaries()->graphicsLayerBacking()->displayItemList()->invalidate(renderView->displayItemClient()); |
+ } |
+ |
LayoutRect rect(frameRenderer->borderLeft() + frameRenderer->paddingLeft(), |
frameRenderer->borderTop() + frameRenderer->paddingTop(), |
visibleWidth(), visibleHeight()); |