Index: third_party/WebKit/Source/core/frame/FrameView.cpp |
diff --git a/third_party/WebKit/Source/core/frame/FrameView.cpp b/third_party/WebKit/Source/core/frame/FrameView.cpp |
index de49f4bed8fe9b65c1d2548956bca675c16783dc..e53c53f5c6359677dff739ebd0fded483f28fedb 100644 |
--- a/third_party/WebKit/Source/core/frame/FrameView.cpp |
+++ b/third_party/WebKit/Source/core/frame/FrameView.cpp |
@@ -1253,6 +1253,17 @@ void FrameView::removeViewportConstrainedObject(LayoutObject* object) |
void FrameView::viewportSizeChanged(bool widthChanged, bool heightChanged) |
{ |
+ if (m_frame->settings() && m_frame->settings()->rootLayerScrolls()) { |
+ // The background must be repainted when the FrameView is resized, even if the initial |
+ // containing block does not change (so we can't rely on layout to issue the invalidation). |
+ // This is because the background fills the main GraphicsLayer, which takes the size of the |
+ // layout viewport. |
+ // TODO(skobes): Paint non-fixed backgrounds into the scrolling contents layer and avoid |
+ // this invalidation (http://crbug.com/568847). |
+ if (LayoutView* lv = layoutView()) |
+ lv->setShouldDoFullPaintInvalidation(); |
+ } |
+ |
if (!hasViewportConstrainedObjects()) |
return; |