| Index: Source/core/rendering/RenderLayerCompositor.cpp
|
| diff --git a/Source/core/rendering/RenderLayerCompositor.cpp b/Source/core/rendering/RenderLayerCompositor.cpp
|
| index fefc267dd7428c603fc1d60b585da5363da30e89..df47490a4c0021a9bf16df7c69c0cd1834e1ae58 100644
|
| --- a/Source/core/rendering/RenderLayerCompositor.cpp
|
| +++ b/Source/core/rendering/RenderLayerCompositor.cpp
|
| @@ -218,6 +218,7 @@ RenderLayerCompositor::RenderLayerCompositor(RenderView* renderView)
|
| , m_compositingLayersNeedRebuild(false)
|
| , m_forceCompositingMode(false)
|
| , m_inPostLayoutUpdate(false)
|
| + , m_needsUpdateCompositingRequirementsState(false)
|
| , m_isTrackingRepaints(false)
|
| , m_rootLayerAttachment(RootLayerUnattached)
|
| #if !LOG_DISABLED
|
| @@ -330,6 +331,29 @@ bool RenderLayerCompositor::hasAnyAdditionalCompositedLayers(const RenderLayer*
|
| return m_compositedLayerCount > (rootLayer->isComposited() ? 1 : 0);
|
| }
|
|
|
| +void RenderLayerCompositor::updateCompositingRequirementsState()
|
| +{
|
| + TRACE_EVENT0("blink_rendering", "RenderLayerCompositor::updateCompositingRequirementsState");
|
| +
|
| + if (!m_needsUpdateCompositingRequirementsState)
|
| + return;
|
| +
|
| + m_needsUpdateCompositingRequirementsState = false;
|
| +
|
| + if (!rootRenderLayer() || !rootRenderLayer()->acceleratedCompositingForOverflowScrollEnabled())
|
| + return;
|
| +
|
| + const FrameView::ScrollableAreaSet* scrollableAreas = m_renderView->frameView()->scrollableAreas();
|
| + if (!scrollableAreas)
|
| + return;
|
| +
|
| + for (HashSet<RenderLayer*>::iterator it = m_outOfFlowPositionedLayers.begin(); it != m_outOfFlowPositionedLayers.end(); ++it)
|
| + (*it)->updateHasUnclippedDescendant();
|
| +
|
| + for (FrameView::ScrollableAreaSet::iterator it = scrollableAreas->begin(); it != scrollableAreas->end(); ++it)
|
| + (*it)->updateNeedsCompositedScrolling();
|
| +}
|
| +
|
| void RenderLayerCompositor::updateCompositingLayers(CompositingUpdateType updateType, RenderLayer* updateRoot)
|
| {
|
| // Avoid updating the layers with old values. Compositing layers will be updated after the layout is finished.
|
| @@ -487,6 +511,16 @@ void RenderLayerCompositor::logLayerInfo(const RenderLayer* layer, int depth)
|
| }
|
| #endif
|
|
|
| +void RenderLayerCompositor::addOutOfFlowPositionedLayer(RenderLayer* layer)
|
| +{
|
| + m_outOfFlowPositionedLayers.add(layer);
|
| +}
|
| +
|
| +void RenderLayerCompositor::removeOutOfFlowPositionedLayer(RenderLayer* layer)
|
| +{
|
| + m_outOfFlowPositionedLayers.remove(layer);
|
| +}
|
| +
|
| bool RenderLayerCompositor::updateBacking(RenderLayer* layer, CompositingChangeRepaint shouldRepaint)
|
| {
|
| bool layerChanged = false;
|
|
|