Index: Source/WebCore/page/FrameView.cpp |
diff --git a/Source/WebCore/page/FrameView.cpp b/Source/WebCore/page/FrameView.cpp |
index 8e1e42f5815505767189a0b642e716325dfd1fc4..e30c734194df10c7dbf552a970a29501c8c35f0d 100644 |
--- a/Source/WebCore/page/FrameView.cpp |
+++ b/Source/WebCore/page/FrameView.cpp |
@@ -715,11 +715,12 @@ void FrameView::updateCompositingLayersAfterStyleChange() |
return; |
// This call will make sure the cached hasAcceleratedCompositing is updated from the pref |
+ renderView->compositor()->updateLayoutDependentState(); |
renderView->compositor()->cacheAcceleratedCompositingFlags(); |
renderView->compositor()->updateCompositingLayers(CompositingUpdateAfterStyleChange); |
} |
-void FrameView::updateCompositingLayersAfterLayout() |
+void FrameView::updateCompositingLayersAfterLayoutAndPositioning() |
{ |
RenderView* renderView = this->renderView(); |
if (!renderView) |
@@ -730,6 +731,15 @@ void FrameView::updateCompositingLayersAfterLayout() |
renderView->compositor()->updateCompositingLayers(CompositingUpdateAfterLayout); |
} |
+void FrameView::updateCompositingLayersAfterLayout() |
+{ |
+ RenderView* renderView = this->renderView(); |
+ if (!renderView) |
+ return; |
+ |
+ renderView->compositor()->updateLayoutDependentState(); |
+} |
+ |
bool FrameView::usesCompositedScrolling() const |
{ |
RenderView* renderView = this->renderView(); |
@@ -1144,11 +1154,13 @@ void FrameView::layout(bool allowSubtree) |
root->view()->repaint(); // FIXME: This isn't really right, since the RenderView doesn't fully encompass the visibleContentRect(). It just happens |
// to work out most of the time, since first layouts and printing don't have you scrolled anywhere. |
+ updateCompositingLayersAfterLayout(); |
+ |
layer->updateLayerPositionsAfterLayout(renderView()->layer(), updateLayerPositionFlags(layer, subtree, m_doFullRepaint)); |
endDeferredRepaints(); |
- updateCompositingLayersAfterLayout(); |
+ updateCompositingLayersAfterLayoutAndPositioning(); |
m_layoutCount++; |