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

Unified Diff: Source/WebCore/rendering/RenderLayerCompositor.cpp

Issue 13665002: Fold ScrollingCoordinatorChromium into ScrollingCoordinator and devirtualize (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 7 years, 9 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
Index: Source/WebCore/rendering/RenderLayerCompositor.cpp
diff --git a/Source/WebCore/rendering/RenderLayerCompositor.cpp b/Source/WebCore/rendering/RenderLayerCompositor.cpp
index 3a85f41cc161e94f9ac668d6df61a3aa46f522b5..68340231904d10d195019ad1de35266358fb04e5 100644
--- a/Source/WebCore/rendering/RenderLayerCompositor.cpp
+++ b/Source/WebCore/rendering/RenderLayerCompositor.cpp
@@ -204,7 +204,6 @@ RenderLayerCompositor::RenderLayerCompositor(RenderView* renderView)
, m_reevaluateCompositingAfterLayout(false)
, m_compositing(false)
, m_compositingLayersNeedRebuild(false)
- , m_flushingLayers(false)
, m_shouldFlushOnReattach(false)
, m_forceCompositingMode(false)
, m_inPostLayoutUpdate(false)
@@ -339,9 +338,6 @@ void RenderLayerCompositor::flushPendingLayerChanges(bool isFlushRoot)
AnimationUpdateBlock animationUpdateBlock(m_renderView->frameView()->frame()->animation());
- ASSERT(!m_flushingLayers);
- m_flushingLayers = true;
-
if (GraphicsLayer* rootLayer = rootGraphicsLayer()) {
FrameView* frameView = m_renderView ? m_renderView->frameView() : 0;
if (frameView) {
@@ -350,27 +346,6 @@ void RenderLayerCompositor::flushPendingLayerChanges(bool isFlushRoot)
rootLayer->flushCompositingState(visibleRect);
}
}
-
- ASSERT(m_flushingLayers);
- m_flushingLayers = false;
-
- if (!m_viewportConstrainedLayersNeedingUpdate.isEmpty()) {
- HashSet<RenderLayer*>::const_iterator end = m_viewportConstrainedLayersNeedingUpdate.end();
- for (HashSet<RenderLayer*>::const_iterator it = m_viewportConstrainedLayersNeedingUpdate.begin(); it != end; ++it)
- registerOrUpdateViewportConstrainedLayer(*it);
-
- m_viewportConstrainedLayersNeedingUpdate.clear();
- }
-}
-
-void RenderLayerCompositor::didFlushChangesForLayer(RenderLayer* layer, const GraphicsLayer* graphicsLayer)
-{
- if (m_viewportConstrainedLayers.contains(layer))
- m_viewportConstrainedLayersNeedingUpdate.add(layer);
-
- RenderLayerBacking* backing = layer->backing();
- if (backing->backgroundLayerPaintsFixedRootBackground() && graphicsLayer == backing->backgroundLayer())
- fixedRootBackgroundLayerChanged();
}
void RenderLayerCompositor::didChangeVisibleRect()
@@ -416,20 +391,6 @@ void RenderLayerCompositor::layerTiledBackingUsageChanged(const GraphicsLayer*,
}
}
-RenderLayerCompositor* RenderLayerCompositor::enclosingCompositorFlushingLayers() const
-{
- if (!m_renderView->frameView())
- return 0;
-
- for (Frame* frame = m_renderView->frameView()->frame(); frame; frame = frame->tree()->parent()) {
- RenderLayerCompositor* compositor = frame->contentRenderer() ? frame->contentRenderer()->compositor() : 0;
- if (compositor->isFlushingLayers())
- return compositor;
- }
-
- return 0;
-}
-
void RenderLayerCompositor::scheduleCompositingLayerUpdate()
{
if (!m_updateCompositingLayersTimer.isActive())
@@ -625,7 +586,6 @@ bool RenderLayerCompositor::updateBacking(RenderLayer* layer, CompositingChangeR
// At this time, the ScrollingCooridnator only supports the top-level frame.
if (layer->isRootLayer() && !m_renderView->document()->ownerElement()) {
- layer->backing()->attachToScrollingCoordinatorWithParent(0);
if (ScrollingCoordinator* scrollingCoordinator = this->scrollingCoordinator())
scrollingCoordinator->frameViewRootLayerDidChange(m_renderView->frameView());
}
@@ -1285,17 +1245,6 @@ void RenderLayerCompositor::scrollingLayerDidChange(RenderLayer* layer)
scrollingCoordinator->scrollableAreaScrollLayerDidChange(layer);
}
-void RenderLayerCompositor::fixedRootBackgroundLayerChanged()
-{
- if (ScrollingCoordinator* scrollingCoordinator = this->scrollingCoordinator()) {
- RenderLayerBacking* renderViewBacking = m_renderView->layer()->backing();
- if (!renderViewBacking)
- return;
-
- scrollingCoordinator->updateScrollingNode(renderViewBacking->scrollLayerID(), scrollLayer(), fixedRootBackgroundLayer());
- }
-}
-
String RenderLayerCompositor::layerTreeAsText(LayerTreeFlags flags)
{
updateCompositingLayers(CompositingUpdateAfterLayout);
@@ -2975,7 +2924,6 @@ void RenderLayerCompositor::updateViewportConstraintStatus(RenderLayer* layer)
void RenderLayerCompositor::addViewportConstrainedLayer(RenderLayer* layer)
{
m_viewportConstrainedLayers.add(layer);
- registerOrUpdateViewportConstrainedLayer(layer);
}
void RenderLayerCompositor::removeViewportConstrainedLayer(RenderLayer* layer)
@@ -2983,9 +2931,7 @@ void RenderLayerCompositor::removeViewportConstrainedLayer(RenderLayer* layer)
if (!m_viewportConstrainedLayers.contains(layer))
return;
- unregisterViewportConstrainedLayer(layer);
m_viewportConstrainedLayers.remove(layer);
- m_viewportConstrainedLayersNeedingUpdate.remove(layer);
}
FixedPositionViewportConstraints RenderLayerCompositor::computeFixedViewportConstraints(RenderLayer* layer) const
@@ -3047,65 +2993,6 @@ StickyPositionViewportConstraints RenderLayerCompositor::computeStickyViewportCo
return constraints;
}
-static RenderLayerBacking* nearestScrollingCoordinatorAncestor(RenderLayer* layer)
-{
- RenderLayer* ancestor = layer->parent();
- while (ancestor) {
- if (RenderLayerBacking* backing = ancestor->backing()) {
- if (backing->scrollLayerID() && !ancestor->scrollsOverflow())
- return backing;
- }
- ancestor = ancestor->parent();
- }
-
- return 0;
-}
-
-void RenderLayerCompositor::registerOrUpdateViewportConstrainedLayer(RenderLayer* layer)
-{
- // FIXME: We should support sticky position here! And we should eventuall support fixed/sticky elements
- // that are inside non-main frames once we get non-main frames scrolling with the ScrollingCoordinator.
- if (m_renderView->document()->ownerElement())
- return;
-
- ScrollingCoordinator* scrollingCoordinator = this->scrollingCoordinator();
- if (!scrollingCoordinator)
- return;
-
- // FIXME: rename to supportsViewportConstrainedPositionLayers()?
- if (!scrollingCoordinator->supportsFixedPositionLayers() || !layer->parent())
- return;
-
- ASSERT(m_viewportConstrainedLayers.contains(layer));
- ASSERT(layer->isComposited());
-
- RenderLayerBacking* backing = layer->backing();
- if (!backing)
- return;
-
- ScrollingNodeID nodeID = backing->scrollLayerID();
- RenderLayerBacking* parent = nearestScrollingCoordinatorAncestor(layer);
- if (!parent)
- return;
-
- // Always call this even if the backing is already attached because the parent may have changed.
- backing->attachToScrollingCoordinatorWithParent(parent);
- nodeID = backing->scrollLayerID();
-
- if (layer->renderer()->isStickyPositioned())
- scrollingCoordinator->updateViewportConstrainedNode(nodeID, computeStickyViewportConstraints(layer), backing->graphicsLayer());
- else
- scrollingCoordinator->updateViewportConstrainedNode(nodeID, computeFixedViewportConstraints(layer), backing->graphicsLayer());
-}
-
-void RenderLayerCompositor::unregisterViewportConstrainedLayer(RenderLayer* layer)
-{
- ASSERT(m_viewportConstrainedLayers.contains(layer));
-
- if (RenderLayerBacking* backing = layer->backing())
- backing->detachFromScrollingCoordinator();
-}
-
void RenderLayerCompositor::windowScreenDidChange(PlatformDisplayID displayID)
{
if (m_layerUpdater)
@@ -3145,7 +3032,6 @@ void RenderLayerCompositor::reportMemoryUsage(MemoryObjectInfo* memoryObjectInfo
info.addMember(m_clipLayer, "clipLayer");
info.addMember(m_scrollLayer, "scrollLayer");
info.addMember(m_viewportConstrainedLayers, "viewportConstrainedLayers");
- info.addMember(m_viewportConstrainedLayersNeedingUpdate, "viewportConstrainedLayersNeedingUpdate");
info.addMember(m_overflowControlsHostLayer, "overflowControlsHostLayer");
info.addMember(m_layerForHorizontalScrollbar, "layerForHorizontalScrollbar");
info.addMember(m_layerForVerticalScrollbar, "layerForVerticalScrollbar");

Powered by Google App Engine
This is Rietveld 408576698