Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(251)

Unified Diff: Source/WebCore/page/FrameView.cpp

Issue 13859006: Rework composited scrolling updates. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@early-out2
Patch Set: . Created 7 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « Source/WebCore/page/FrameView.h ('k') | Source/WebCore/rendering/RenderLayer.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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++;
« no previous file with comments | « Source/WebCore/page/FrameView.h ('k') | Source/WebCore/rendering/RenderLayer.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698