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

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

Issue 323653002: Delete CompositingUpdateAfterLayout (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Add back two lines to fix browser_test 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 cec9b8f870ced809b69fcdc3400137229c2bd9bb..0f7d4a139e5e4c7a6cbbc35def7ed1cdf3e438b7 100644
--- a/Source/core/rendering/compositing/RenderLayerCompositor.cpp
+++ b/Source/core/rendering/compositing/RenderLayerCompositor.cpp
@@ -257,25 +257,37 @@ void RenderLayerCompositor::updateIfNeededRecursive()
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.
+ //
+ // NOTE: CastStreamingApiTestWithPixelOutput.RtpStreamError triggers
+ // an ASSERT when this code is removed.
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
void RenderLayerCompositor::assertNoUnresolvedDirtyBits()
@@ -348,12 +360,6 @@ void RenderLayerCompositor::updateIfNeeded()
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();
Vector<RenderLayer*> layersNeedingRepaint;
« 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