Index: third_party/WebKit/Source/core/page/scrolling/TopDocumentRootScrollerController.cpp |
diff --git a/third_party/WebKit/Source/core/page/scrolling/TopDocumentRootScrollerController.cpp b/third_party/WebKit/Source/core/page/scrolling/TopDocumentRootScrollerController.cpp |
index 5d6d6d3fb280d241804e343a125a07cfdbfc5af3..bb4678bd4c97637523f0ed2c4364401b3b39f0df 100644 |
--- a/third_party/WebKit/Source/core/page/scrolling/TopDocumentRootScrollerController.cpp |
+++ b/third_party/WebKit/Source/core/page/scrolling/TopDocumentRootScrollerController.cpp |
@@ -41,6 +41,26 @@ void TopDocumentRootScrollerController::didChangeRootScroller() { |
recomputeGlobalRootScroller(); |
} |
+void TopDocumentRootScrollerController::mainFrameViewResized() { |
+ Element* rootScroller = globalRootScroller(); |
+ if (!rootScroller) |
+ return; |
+ |
+ ScrollableArea* area = RootScrollerUtil::scrollableAreaFor(*rootScroller); |
+ |
+ if (!area) |
+ return; |
+ |
+ if (PaintLayer* layer = area->layer()) { |
+ layer->setNeedsCompositingInputsUpdate(); |
+ |
+ // This is needed if the root scroller is an iframe, since the iframe |
+ // doesn't have a scrolling/clip layer, its PLC has a container layer that |
+ // needs to be resized instead. |
+ layer->compositor()->frameViewDidChangeSize(); |
+ } |
+} |
+ |
Element* TopDocumentRootScrollerController::findGlobalRootScrollerElement() { |
if (!topDocument()) |
return nullptr; |
@@ -179,6 +199,10 @@ GraphicsLayer* TopDocumentRootScrollerController::rootScrollerLayer() const { |
return graphicsLayer; |
} |
+PaintLayer* TopDocumentRootScrollerController::rootScrollerPaintLayer() const { |
+ return RootScrollerUtil::paintLayerFor(m_globalRootScroller); |
+} |
+ |
Element* TopDocumentRootScrollerController::globalRootScroller() const { |
return m_globalRootScroller.get(); |
} |