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

Unified Diff: Source/core/rendering/compositing/RenderLayerCompositor.cpp

Issue 321663002: Revert of Delete CompositingUpdateAfterLayout (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 6 years, 6 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/core/rendering/compositing/RenderLayerCompositor.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: Source/core/rendering/compositing/RenderLayerCompositor.cpp
diff --git a/Source/core/rendering/compositing/RenderLayerCompositor.cpp b/Source/core/rendering/compositing/RenderLayerCompositor.cpp
index 0203c9ae313ae21e8c066bdff59e005ebbd81163..cb55062f69ab3230c78a54d638a0344812a68be0 100644
--- a/Source/core/rendering/compositing/RenderLayerCompositor.cpp
+++ b/Source/core/rendering/compositing/RenderLayerCompositor.cpp
@@ -256,23 +256,23 @@
void RenderLayerCompositor::setNeedsCompositingUpdate(CompositingUpdateType updateType)
{
ASSERT(updateType != CompositingUpdateNone);
+ // FIXME: Technically we only need to do this when the FrameView's isScrollable method
+ // would return a different value.
+ if (updateType == CompositingUpdateAfterLayout)
+ m_rootShouldAlwaysCompositeDirty = true;
+
+ // FIXME: This function should only set dirty bits. We shouldn't
+ // enable compositing mode here.
+ // We check needsLayout here because we don't know if we need to enable
+ // compositing mode until layout is up-to-date because we need to know
+ // if this frame scrolls.
+ if (!m_renderView.needsLayout())
+ enableCompositingModeIfNeeded();
+
m_pendingUpdateType = std::max(m_pendingUpdateType, updateType);
+
page()->animator().scheduleVisualUpdate();
lifecycle().ensureStateAtMost(DocumentLifecycle::LayoutClean);
-}
-
-void RenderLayerCompositor::didLayout()
-{
- // FIXME: Technically we only need to do this when the FrameView's
- // isScrollable method would return a different value.
- m_rootShouldAlwaysCompositeDirty = true;
- enableCompositingModeIfNeeded();
-
- // FIXME: Rather than marking the entire RenderView as dirty, we should
- // track which RenderLayers moved during layout and only dirty those
- // specific RenderLayers.
- rootRenderLayer()->setNeedsToUpdateAncestorDependentProperties();
- setNeedsCompositingUpdate(CompositingUpdateAfterCompositingInputChange);
}
#if ASSERT_ENABLED
@@ -346,6 +346,12 @@
GraphicsLayerUpdater::UpdateType graphicsLayerUpdateType = GraphicsLayerUpdater::DoNotForceUpdate;
CompositingPropertyUpdater::UpdateType compositingPropertyUpdateType = CompositingPropertyUpdater::DoNotForceUpdate;
+
+ // FIXME: Teach non-style compositing updates how to do partial tree walks.
+ if (updateType >= CompositingUpdateAfterLayout) {
+ graphicsLayerUpdateType = GraphicsLayerUpdater::ForceUpdate;
+ compositingPropertyUpdateType = CompositingPropertyUpdater::ForceUpdate;
+ }
RenderLayer* updateRoot = rootRenderLayer();
« no previous file with comments | « Source/core/rendering/compositing/RenderLayerCompositor.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698