| 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();
|
|
|
|
|