Index: Source/core/rendering/compositing/CompositedLayerMapping.cpp |
diff --git a/Source/core/rendering/compositing/CompositedLayerMapping.cpp b/Source/core/rendering/compositing/CompositedLayerMapping.cpp |
index bc5fba00020081eb8198303b64ee3ef49a622662..61400f073658a38f28ee5777bf143b0b5ad1ec8d 100644 |
--- a/Source/core/rendering/compositing/CompositedLayerMapping.cpp |
+++ b/Source/core/rendering/compositing/CompositedLayerMapping.cpp |
@@ -144,16 +144,16 @@ static inline bool isAcceleratedContents(RenderObject* renderer) |
} |
// Get the scrolling coordinator in a way that works inside CompositedLayerMapping's destructor. |
-static ScrollingCoordinator* scrollingCoordinatorFromLayer(RenderLayer* layer) |
+static ScrollingCoordinator* scrollingCoordinatorFromLayer(RenderLayer& layer) |
{ |
- Page* page = layer->renderer()->frame()->page(); |
+ Page* page = layer.renderer()->frame()->page(); |
if (!page) |
return 0; |
return page->scrollingCoordinator(); |
} |
-CompositedLayerMapping::CompositedLayerMapping(RenderLayer* layer) |
+CompositedLayerMapping::CompositedLayerMapping(RenderLayer& layer) |
: m_owningLayer(layer) |
, m_artificiallyInflatedBounds(false) |
, m_isMainFrameRenderViewLayer(false) |
@@ -162,7 +162,7 @@ CompositedLayerMapping::CompositedLayerMapping(RenderLayer* layer) |
, m_canCompositeFilters(false) |
, m_backgroundLayerPaintsFixedRootBackground(false) |
{ |
- if (layer->isRootLayer() && renderer()->frame()->isMainFrame()) |
+ if (layer.isRootLayer() && renderer()->frame()->isMainFrame()) |
m_isMainFrameRenderViewLayer = true; |
createPrimaryGraphicsLayer(); |
@@ -206,7 +206,7 @@ PassOwnPtr<GraphicsLayer> CompositedLayerMapping::createGraphicsLayer(Compositin |
void CompositedLayerMapping::createPrimaryGraphicsLayer() |
{ |
- m_graphicsLayer = createGraphicsLayer(m_owningLayer->compositingReasons()); |
+ m_graphicsLayer = createGraphicsLayer(m_owningLayer.compositingReasons()); |
#if !OS(ANDROID) |
if (m_isMainFrameRenderViewLayer) |
@@ -248,10 +248,10 @@ void CompositedLayerMapping::updateOpacity(const RenderStyle* style) |
void CompositedLayerMapping::updateTransform(const RenderStyle* style) |
{ |
- // FIXME: This could use m_owningLayer->transform(), but that currently has transform-origin |
+ // FIXME: This could use m_owningLayer.transform(), but that currently has transform-origin |
// baked into it, and we don't want that. |
TransformationMatrix t; |
- if (m_owningLayer->hasTransform()) { |
+ if (m_owningLayer.hasTransform()) { |
style->applyTransform(t, toRenderBox(renderer())->pixelSnappedBorderBoxRect().size(), RenderStyle::ExcludeTransformOrigin); |
makeMatrixRenderable(t, compositor()->canRender3DTransforms()); |
} |
@@ -262,7 +262,7 @@ void CompositedLayerMapping::updateTransform(const RenderStyle* style) |
void CompositedLayerMapping::updateFilters(const RenderStyle* style) |
{ |
bool didCompositeFilters = m_canCompositeFilters; |
- m_canCompositeFilters = m_graphicsLayer->setFilters(owningLayer()->computeFilterOperations(style)); |
+ m_canCompositeFilters = m_graphicsLayer->setFilters(owningLayer().computeFilterOperations(style)); |
if (didCompositeFilters != m_canCompositeFilters) { |
// |
// If filters used to be painted in software and are now painted in the compositor, we need to: |
@@ -273,7 +273,7 @@ void CompositedLayerMapping::updateFilters(const RenderStyle* style) |
// (1) Create a FilterEffectRenderer. |
// (2) Repaint the layer contents to apply a software filter because the compositor won't apply it. |
// |
- m_owningLayer->updateOrRemoveFilterEffectRenderer(); |
+ m_owningLayer.updateOrRemoveFilterEffectRenderer(); |
setContentsNeedDisplay(); |
} |
} |
@@ -285,10 +285,10 @@ void CompositedLayerMapping::updateLayerBlendMode(const RenderStyle* style) |
void CompositedLayerMapping::updateIsRootForIsolatedGroup() |
{ |
- bool isolate = m_owningLayer->shouldIsolateCompositedDescendants(); |
+ bool isolate = m_owningLayer.shouldIsolateCompositedDescendants(); |
// non stacking context layers should never isolate |
- ASSERT(m_owningLayer->stackingNode()->isStackingContext() || !isolate); |
+ ASSERT(m_owningLayer.stackingNode()->isStackingContext() || !isolate); |
m_graphicsLayer->setIsRootForIsolatedGroup(isolate); |
} |
@@ -299,9 +299,9 @@ void CompositedLayerMapping::updateContentsOpaque() |
ASSERT(m_isMainFrameRenderViewLayer || !m_backgroundLayer); |
if (m_backgroundLayer) { |
m_graphicsLayer->setContentsOpaque(false); |
- m_backgroundLayer->setContentsOpaque(m_owningLayer->backgroundIsKnownToBeOpaqueInRect(compositedBounds())); |
+ m_backgroundLayer->setContentsOpaque(m_owningLayer.backgroundIsKnownToBeOpaqueInRect(compositedBounds())); |
} else { |
- m_graphicsLayer->setContentsOpaque(m_owningLayer->backgroundIsKnownToBeOpaqueInRect(compositedBounds())); |
+ m_graphicsLayer->setContentsOpaque(m_owningLayer.backgroundIsKnownToBeOpaqueInRect(compositedBounds())); |
} |
} |
@@ -328,15 +328,15 @@ bool CompositedLayerMapping::shouldClipCompositedBounds() const |
if (layerForHorizontalScrollbar() || layerForVerticalScrollbar()) |
return false; |
- if (layerOrAncestorIsTransformedOrUsingCompositedScrolling(m_owningLayer)) |
+ if (layerOrAncestorIsTransformedOrUsingCompositedScrolling(&m_owningLayer)) |
return false; |
// Scrolled composited layers are clipped by their ancestor clipping layer, |
// so don't clip these, either. |
- if (!compositor()->clippedByAncestor(m_owningLayer)) |
+ if (!compositor()->clippedByAncestor(&m_owningLayer)) |
return true; |
- if (m_owningLayer->renderer()->containingBlock()->enclosingLayer() != m_owningLayer->ancestorScrollingLayer()) |
+ if (m_owningLayer.renderer()->containingBlock()->enclosingLayer() != m_owningLayer.ancestorScrollingLayer()) |
return true; |
return false; |
@@ -348,13 +348,13 @@ void CompositedLayerMapping::updateCompositedBounds() |
// on whether or not descendands will paint into our backing). Update this value now. |
updateDrawsContent(); |
- LayoutRect layerBounds = compositor()->calculateCompositedBounds(m_owningLayer, m_owningLayer); |
+ LayoutRect layerBounds = compositor()->calculateCompositedBounds(&m_owningLayer, &m_owningLayer); |
// Clip to the size of the document or enclosing overflow-scroll layer. |
// If this or an ancestor is transformed, we can't currently compute the correct rect to intersect with. |
// We'd need RenderObject::convertContainerToLocalQuad(), which doesn't yet exist. |
if (shouldClipCompositedBounds()) { |
- RenderView* view = m_owningLayer->renderer()->view(); |
+ RenderView* view = m_owningLayer.renderer()->view(); |
RenderLayer* rootLayer = view->layer(); |
LayoutRect clippingBounds; |
@@ -363,11 +363,11 @@ void CompositedLayerMapping::updateCompositedBounds() |
else |
clippingBounds = view->unscaledDocumentRect(); |
- if (m_owningLayer != rootLayer) |
- clippingBounds.intersect(m_owningLayer->clipper().backgroundClipRect(ClipRectsContext(rootLayer, AbsoluteClipRects)).rect()); |
+ if (&m_owningLayer != rootLayer) |
+ clippingBounds.intersect(m_owningLayer.clipper().backgroundClipRect(ClipRectsContext(rootLayer, AbsoluteClipRects)).rect()); |
LayoutPoint delta; |
- m_owningLayer->convertToLayerCoords(rootLayer, delta); |
+ m_owningLayer.convertToLayerCoords(rootLayer, delta); |
clippingBounds.move(-delta.x(), -delta.y()); |
layerBounds.intersect(clippingBounds); |
@@ -403,7 +403,7 @@ void CompositedLayerMapping::updateCompositingReasons() |
{ |
// All other layers owned by this mapping will have the same compositing reason |
// for their lifetime, so they are initialized only when created. |
- m_graphicsLayer->setCompositingReasons(m_owningLayer->compositingReasons()); |
+ m_graphicsLayer->setCompositingReasons(m_owningLayer.compositingReasons()); |
} |
void CompositedLayerMapping::updateAfterLayout(UpdateAfterLayoutFlags flags) |
@@ -418,13 +418,13 @@ void CompositedLayerMapping::updateAfterLayout(UpdateAfterLayoutFlags flags) |
// The solution is to update compositing children of this layer here, |
// via updateCompositingChildrenGeometry(). |
updateCompositedBounds(); |
- layerCompositor->updateCompositingDescendantGeometry(m_owningLayer->stackingNode(), m_owningLayer, flags & CompositingChildrenOnly); |
+ layerCompositor->updateCompositingDescendantGeometry(m_owningLayer.stackingNode(), &m_owningLayer, flags & CompositingChildrenOnly); |
if (flags & IsUpdateRoot) { |
updateGraphicsLayerGeometry(GraphicsLayerUpdater::ForceUpdate); |
layerCompositor->updateRootLayerPosition(); |
- RenderLayerStackingNode* stackingContainer = m_owningLayer->stackingNode()->enclosingStackingContainerNode(); |
- if (!layerCompositor->compositingLayersNeedRebuild() && stackingContainer && (stackingContainer != m_owningLayer->stackingNode())) |
+ RenderLayerStackingNode* stackingContainer = m_owningLayer.stackingNode()->enclosingStackingContainerNode(); |
+ if (!layerCompositor->compositingLayersNeedRebuild() && stackingContainer && (stackingContainer != m_owningLayer.stackingNode())) |
layerCompositor->updateCompositingDescendantGeometry(stackingContainer, stackingContainer->layer(), flags & CompositingChildrenOnly); |
} |
} |
@@ -438,31 +438,31 @@ bool CompositedLayerMapping::updateGraphicsLayerConfiguration() |
RenderLayerCompositor* compositor = this->compositor(); |
RenderObject* renderer = this->renderer(); |
- m_owningLayer->updateDescendantDependentFlags(); |
- m_owningLayer->stackingNode()->updateZOrderLists(); |
+ m_owningLayer.updateDescendantDependentFlags(); |
+ m_owningLayer.stackingNode()->updateZOrderLists(); |
bool layerConfigChanged = false; |
- setBackgroundLayerPaintsFixedRootBackground(compositor->needsFixedRootBackgroundLayer(m_owningLayer)); |
+ setBackgroundLayerPaintsFixedRootBackground(compositor->needsFixedRootBackgroundLayer(&m_owningLayer)); |
// The background layer is currently only used for fixed root backgrounds. |
if (updateBackgroundLayer(m_backgroundLayerPaintsFixedRootBackground)) |
layerConfigChanged = true; |
- if (updateForegroundLayer(compositor->needsContentsCompositingLayer(m_owningLayer))) |
+ if (updateForegroundLayer(compositor->needsContentsCompositingLayer(&m_owningLayer))) |
layerConfigChanged = true; |
- bool needsDescendentsClippingLayer = compositor->clipsCompositingDescendants(m_owningLayer); |
+ bool needsDescendentsClippingLayer = compositor->clipsCompositingDescendants(&m_owningLayer); |
// Our scrolling layer will clip. |
- if (m_owningLayer->needsCompositedScrolling()) |
+ if (m_owningLayer.needsCompositedScrolling()) |
needsDescendentsClippingLayer = false; |
- RenderLayer* scrollParent = m_owningLayer->scrollParent(); |
- bool needsAncestorClip = compositor->clippedByAncestor(m_owningLayer); |
+ RenderLayer* scrollParent = m_owningLayer.scrollParent(); |
+ bool needsAncestorClip = compositor->clippedByAncestor(&m_owningLayer); |
if (scrollParent) { |
// If our containing block is our ancestor scrolling layer, then we'll already be clipped |
// to it via our scroll parent and we don't need an ancestor clipping layer. |
- if (m_owningLayer->renderer()->containingBlock()->enclosingLayer() == m_owningLayer->ancestorCompositedScrollingLayer()) |
+ if (m_owningLayer.renderer()->containingBlock()->enclosingLayer() == m_owningLayer.ancestorCompositedScrollingLayer()) |
needsAncestorClip = false; |
} |
@@ -472,7 +472,7 @@ bool CompositedLayerMapping::updateGraphicsLayerConfiguration() |
if (updateOverflowControlsLayers(requiresHorizontalScrollbarLayer(), requiresVerticalScrollbarLayer(), requiresScrollCornerLayer())) |
layerConfigChanged = true; |
- if (updateScrollingLayers(m_owningLayer->needsCompositedScrolling())) |
+ if (updateScrollingLayers(m_owningLayer.needsCompositedScrolling())) |
layerConfigChanged = true; |
bool hasPerspective = false; |
@@ -483,7 +483,7 @@ bool CompositedLayerMapping::updateGraphicsLayerConfiguration() |
layerConfigChanged = true; |
updateScrollParent(scrollParent); |
- updateClipParent(m_owningLayer->clipParent()); |
+ updateClipParent(m_owningLayer.clipParent()); |
if (updateSquashingLayers(!m_squashedLayers.isEmpty())) |
layerConfigChanged = true; |
@@ -494,7 +494,7 @@ bool CompositedLayerMapping::updateGraphicsLayerConfiguration() |
if (updateMaskLayer(renderer->hasMask())) |
m_graphicsLayer->setMaskLayer(m_maskLayer.get()); |
- bool hasChildClippingLayer = compositor->clipsCompositingDescendants(m_owningLayer) && (hasClippingLayer() || hasScrollingLayer()); |
+ bool hasChildClippingLayer = compositor->clipsCompositingDescendants(&m_owningLayer) && (hasClippingLayer() || hasScrollingLayer()); |
bool needsChildClippingMask = (renderer->style()->clipPath() || renderer->style()->hasBorderRadius()) && (hasChildClippingLayer || isAcceleratedContents(renderer)); |
if (updateClippingMaskLayers(needsChildClippingMask)) { |
if (hasClippingLayer()) |
@@ -505,9 +505,9 @@ bool CompositedLayerMapping::updateGraphicsLayerConfiguration() |
m_graphicsLayer->setContentsClippingMaskLayer(m_childClippingMaskLayer.get()); |
} |
- if (m_owningLayer->reflectionInfo()) { |
- if (m_owningLayer->reflectionInfo()->reflectionLayer()->hasCompositedLayerMapping()) { |
- GraphicsLayer* reflectionLayer = m_owningLayer->reflectionInfo()->reflectionLayer()->compositedLayerMapping()->mainGraphicsLayer(); |
+ if (m_owningLayer.reflectionInfo()) { |
+ if (m_owningLayer.reflectionInfo()->reflectionLayer()->hasCompositedLayerMapping()) { |
+ GraphicsLayer* reflectionLayer = m_owningLayer.reflectionInfo()->reflectionLayer()->compositedLayerMapping()->mainGraphicsLayer(); |
m_graphicsLayer->setReplicatedByLayer(reflectionLayer); |
} |
} else { |
@@ -557,7 +557,7 @@ void CompositedLayerMapping::adjustBoundsForSubPixelAccumulation(const RenderLay |
{ |
LayoutRect localRawCompositingBounds = compositedBounds(); |
LayoutPoint rawDelta; |
- m_owningLayer->convertToLayerCoords(compositedAncestor, rawDelta); |
+ m_owningLayer.convertToLayerCoords(compositedAncestor, rawDelta); |
delta = flooredIntPoint(rawDelta); |
m_subpixelAccumulation = toLayoutSize(rawDelta).fraction(); |
RELEASE_ASSERT(m_subpixelAccumulation.width() < 1 && m_subpixelAccumulation.height() < 1); |
@@ -620,7 +620,7 @@ void CompositedLayerMapping::updateSquashingLayerGeometry(const IntPoint& delta) |
GraphicsLayerUpdater::UpdateType CompositedLayerMapping::updateGraphicsLayerGeometry(GraphicsLayerUpdater::UpdateType updateType) |
{ |
// If we haven't built z-order lists yet, wait until later. |
- if (m_owningLayer->stackingNode()->isStackingContainer() && m_owningLayer->stackingNode()->zOrderListsDirty()) |
+ if (m_owningLayer.stackingNode()->isStackingContainer() && m_owningLayer.stackingNode()->zOrderListsDirty()) |
return updateType; |
if (!m_needToUpdateGeometry && updateType != GraphicsLayerUpdater::ForceUpdate) |
@@ -638,12 +638,12 @@ GraphicsLayerUpdater::UpdateType CompositedLayerMapping::updateGraphicsLayerGeom |
if (!hasActiveAnimationsOnCompositor(*renderer(), CSSPropertyOpacity)) |
updateOpacity(renderer()->style()); |
- m_owningLayer->updateDescendantDependentFlags(); |
+ m_owningLayer.updateDescendantDependentFlags(); |
// m_graphicsLayer is the corresponding GraphicsLayer for this RenderLayer and its non-compositing |
// descendants. So, the visibility flag for m_graphicsLayer should be true if there are any |
// non-compositing visible layers. |
- bool contentsVisible = m_owningLayer->hasVisibleContent() || hasVisibleNonCompositingDescendantLayers(); |
+ bool contentsVisible = m_owningLayer.hasVisibleContent() || hasVisibleNonCompositingDescendantLayers(); |
if (RuntimeEnabledFeatures::overlayFullscreenVideoEnabled() && renderer()->isVideo()) { |
HTMLMediaElement* mediaElement = toHTMLMediaElement(renderer()->node()); |
if (mediaElement->isFullscreen()) |
@@ -654,7 +654,7 @@ GraphicsLayerUpdater::UpdateType CompositedLayerMapping::updateGraphicsLayerGeom |
RenderStyle* style = renderer()->style(); |
m_graphicsLayer->setBackfaceVisibility(style->backfaceVisibility() == BackfaceVisibilityVisible); |
- RenderLayer* compAncestor = m_owningLayer->ancestorCompositingLayer(); |
+ RenderLayer* compAncestor = m_owningLayer.ancestorCompositingLayer(); |
// We compute everything relative to the enclosing compositing layer. |
IntRect ancestorCompositingBounds; |
@@ -689,7 +689,7 @@ GraphicsLayerUpdater::UpdateType CompositedLayerMapping::updateGraphicsLayerGeom |
if (compAncestor && m_ancestorClippingLayer) { |
ClipRectsContext clipRectsContext(compAncestor, CompositingClipRects, IgnoreOverlayScrollbarSize, IgnoreOverflowClip); |
- IntRect parentClipRect = pixelSnappedIntRect(m_owningLayer->clipper().backgroundClipRect(clipRectsContext).rect()); |
+ IntRect parentClipRect = pixelSnappedIntRect(m_owningLayer.clipper().backgroundClipRect(clipRectsContext).rect()); |
ASSERT(parentClipRect != PaintInfo::infiniteRect()); |
m_ancestorClippingLayer->setPosition(FloatPoint(parentClipRect.location() - graphicsLayerParentLocation)); |
m_ancestorClippingLayer->setSize(parentClipRect.size()); |
@@ -735,7 +735,7 @@ GraphicsLayerUpdater::UpdateType CompositedLayerMapping::updateGraphicsLayerGeom |
m_maskLayer->setOffsetFromRenderer(m_graphicsLayer->offsetFromRenderer()); |
} |
- if (m_owningLayer->hasTransform()) { |
+ if (m_owningLayer.hasTransform()) { |
const IntRect borderBox = toRenderBox(renderer())->pixelSnappedBorderBoxRect(); |
// Get layout bounds in the coords of compAncestor to match relativeCompositingBounds. |
@@ -785,11 +785,11 @@ GraphicsLayerUpdater::UpdateType CompositedLayerMapping::updateGraphicsLayerGeom |
m_backgroundLayer->setOffsetFromRenderer(m_graphicsLayer->offsetFromRenderer()); |
} |
- if (m_owningLayer->reflectionInfo() && m_owningLayer->reflectionInfo()->reflectionLayer()->hasCompositedLayerMapping()) { |
- CompositedLayerMappingPtr reflectionCompositedLayerMapping = m_owningLayer->reflectionInfo()->reflectionLayer()->compositedLayerMapping(); |
+ if (m_owningLayer.reflectionInfo() && m_owningLayer.reflectionInfo()->reflectionLayer()->hasCompositedLayerMapping()) { |
+ CompositedLayerMappingPtr reflectionCompositedLayerMapping = m_owningLayer.reflectionInfo()->reflectionLayer()->compositedLayerMapping(); |
reflectionCompositedLayerMapping->updateGraphicsLayerGeometry(GraphicsLayerUpdater::ForceUpdate); |
- // The reflection layer has the bounds of m_owningLayer->reflectionLayer(), |
+ // The reflection layer has the bounds of m_owningLayer.reflectionLayer(), |
// but the reflected layer is the bounds of this layer, so we need to position it appropriately. |
FloatRect layerBounds = compositedBounds(); |
FloatRect reflectionLayerBounds = reflectionCompositedLayerMapping->compositedBounds(); |
@@ -801,7 +801,7 @@ GraphicsLayerUpdater::UpdateType CompositedLayerMapping::updateGraphicsLayerGeom |
RenderBox* renderBox = toRenderBox(renderer()); |
IntRect clientBox = enclosingIntRect(renderBox->clientBoxRect()); |
- IntSize adjustedScrollOffset = m_owningLayer->scrollableArea()->adjustedScrollOffset(); |
+ IntSize adjustedScrollOffset = m_owningLayer.scrollableArea()->adjustedScrollOffset(); |
m_scrollingLayer->setPosition(FloatPoint(clientBox.location() - localCompositingBounds.location() + roundedIntSize(m_subpixelAccumulation))); |
m_scrollingLayer->setSize(clientBox.size()); |
@@ -822,7 +822,7 @@ GraphicsLayerUpdater::UpdateType CompositedLayerMapping::updateGraphicsLayerGeom |
IntSize scrollingContentsOffset = toIntSize(clientBox.location() - adjustedScrollOffset); |
if (scrollingContentsOffset != m_scrollingContentsLayer->offsetFromRenderer() || scrollSize != m_scrollingContentsLayer->size()) { |
- bool coordinatorHandlesOffset = compositor()->scrollingLayerDidChange(m_owningLayer); |
+ bool coordinatorHandlesOffset = compositor()->scrollingLayerDidChange(&m_owningLayer); |
m_scrollingContentsLayer->setPosition(coordinatorHandlesOffset ? FloatPoint() : FloatPoint(-adjustedScrollOffset)); |
} |
@@ -840,8 +840,8 @@ GraphicsLayerUpdater::UpdateType CompositedLayerMapping::updateGraphicsLayerGeom |
updateSquashingLayerGeometry(delta); |
- if (m_owningLayer->scrollableArea() && m_owningLayer->scrollableArea()->scrollsOverflow()) |
- m_owningLayer->scrollableArea()->positionOverflowControls(); |
+ if (m_owningLayer.scrollableArea() && m_owningLayer.scrollableArea()->scrollsOverflow()) |
+ m_owningLayer.scrollableArea()->positionOverflowControls(); |
// We can't make this call in RenderLayerCompositor::allocateOrClearCompositedLayerMapping |
// since it depends on whether compAncestor draws content, which gets updated later. |
@@ -874,14 +874,14 @@ void CompositedLayerMapping::registerScrollingLayers() |
if (!scrollingCoordinator) |
return; |
- compositor()->updateViewportConstraintStatus(m_owningLayer); |
+ compositor()->updateViewportConstraintStatus(&m_owningLayer); |
- scrollingCoordinator->updateLayerPositionConstraint(m_owningLayer); |
+ scrollingCoordinator->updateLayerPositionConstraint(&m_owningLayer); |
// Page scale is applied as a transform on the root render view layer. Because the scroll |
// layer is further up in the hierarchy, we need to avoid marking the root render view |
// layer as a container. |
- bool isContainer = m_owningLayer->hasTransform() && !m_owningLayer->isRootLayer(); |
+ bool isContainer = m_owningLayer.hasTransform() && !m_owningLayer.isRootLayer(); |
// FIXME: we should make certain that childForSuperLayers will never be the m_squashingContainmentLayer here |
scrollingCoordinator->setLayerIsContainerForFixedPositionLayers(localRootForOwningLayer(), isContainer); |
} |
@@ -953,10 +953,10 @@ void CompositedLayerMapping::updateDrawsContent() |
// m_graphicsLayer only needs backing store if the non-scrolling parts (background, outlines, borders, shadows etc) need to paint. |
// m_scrollingLayer never has backing store. |
// m_scrollingContentsLayer only needs backing store if the scrolled contents need to paint. |
- bool hasNonScrollingPaintedContent = m_owningLayer->hasVisibleContent() && m_owningLayer->hasBoxDecorationsOrBackground(); |
+ bool hasNonScrollingPaintedContent = m_owningLayer.hasVisibleContent() && m_owningLayer.hasBoxDecorationsOrBackground(); |
m_graphicsLayer->setDrawsContent(hasNonScrollingPaintedContent); |
- bool hasScrollingPaintedContent = m_owningLayer->hasVisibleContent() && (renderer()->hasBackground() || paintsChildren()); |
+ bool hasScrollingPaintedContent = m_owningLayer.hasVisibleContent() && (renderer()->hasBackground() || paintsChildren()); |
m_scrollingContentsLayer->setDrawsContent(hasScrollingPaintedContent); |
return; |
} |
@@ -987,9 +987,9 @@ void CompositedLayerMapping::updateDrawsContent() |
void CompositedLayerMapping::updateChildrenTransform() |
{ |
if (GraphicsLayer* childTransformLayer = layerForChildrenTransform()) { |
- childTransformLayer->setTransform(owningLayer()->perspectiveTransform()); |
+ childTransformLayer->setTransform(owningLayer().perspectiveTransform()); |
bool hasPerspective = false; |
- if (RenderStyle* style = m_owningLayer->renderer()->style()) |
+ if (RenderStyle* style = m_owningLayer.renderer()->style()) |
hasPerspective = style->hasPerspective(); |
if (hasPerspective) |
childTransformLayer->setShouldFlattenTransform(false); |
@@ -1080,9 +1080,9 @@ bool CompositedLayerMapping::updateOverflowControlsLayers(bool needsHorizontalSc |
if (ScrollingCoordinator* scrollingCoordinator = scrollingCoordinatorFromLayer(m_owningLayer)) { |
if (horizontalScrollbarLayerChanged) |
- scrollingCoordinator->scrollableAreaScrollbarLayerDidChange(m_owningLayer->scrollableArea(), HorizontalScrollbar); |
+ scrollingCoordinator->scrollableAreaScrollbarLayerDidChange(m_owningLayer.scrollableArea(), HorizontalScrollbar); |
if (verticalScrollbarLayerChanged) |
- scrollingCoordinator->scrollableAreaScrollbarLayerDidChange(m_owningLayer->scrollableArea(), VerticalScrollbar); |
+ scrollingCoordinator->scrollableAreaScrollbarLayerDidChange(m_owningLayer.scrollableArea(), VerticalScrollbar); |
} |
return horizontalScrollbarLayerChanged || verticalScrollbarLayerChanged || scrollCornerLayerChanged; |
@@ -1092,7 +1092,7 @@ void CompositedLayerMapping::positionOverflowControlsLayers(const IntSize& offse |
{ |
IntSize offsetFromRenderer = m_graphicsLayer->offsetFromRenderer() - roundedIntSize(m_subpixelAccumulation); |
if (GraphicsLayer* layer = layerForHorizontalScrollbar()) { |
- Scrollbar* hBar = m_owningLayer->scrollableArea()->horizontalScrollbar(); |
+ Scrollbar* hBar = m_owningLayer.scrollableArea()->horizontalScrollbar(); |
if (hBar) { |
layer->setPosition(hBar->frameRect().location() - offsetFromRoot - offsetFromRenderer); |
layer->setSize(hBar->frameRect().size()); |
@@ -1103,7 +1103,7 @@ void CompositedLayerMapping::positionOverflowControlsLayers(const IntSize& offse |
} |
if (GraphicsLayer* layer = layerForVerticalScrollbar()) { |
- Scrollbar* vBar = m_owningLayer->scrollableArea()->verticalScrollbar(); |
+ Scrollbar* vBar = m_owningLayer.scrollableArea()->verticalScrollbar(); |
if (vBar) { |
layer->setPosition(vBar->frameRect().location() - offsetFromRoot - offsetFromRenderer); |
layer->setSize(vBar->frameRect().size()); |
@@ -1114,7 +1114,7 @@ void CompositedLayerMapping::positionOverflowControlsLayers(const IntSize& offse |
} |
if (GraphicsLayer* layer = layerForScrollCorner()) { |
- const LayoutRect& scrollCornerAndResizer = m_owningLayer->scrollableArea()->scrollCornerAndResizerRect(); |
+ const LayoutRect& scrollCornerAndResizer = m_owningLayer.scrollableArea()->scrollCornerAndResizerRect(); |
layer->setPosition(scrollCornerAndResizer.location() - offsetFromRenderer); |
layer->setSize(scrollCornerAndResizer.size()); |
layer->setDrawsContent(!scrollCornerAndResizer.isEmpty()); |
@@ -1212,7 +1212,7 @@ void CompositedLayerMapping::updateRenderingContext() |
// the context id other than the fact that they group a number of layers together for the |
// sake of 3d sorting. So instead we will ask the compositor to vend us an arbitrary, but |
// consistent id. |
- if (RenderLayer* root = m_owningLayer->renderingContextRoot()) { |
+ if (RenderLayer* root = m_owningLayer.renderingContextRoot()) { |
if (Node* node = root->renderer()->node()) |
id = static_cast<int>(WTF::PtrHash<Node*>::hash(node)); |
} |
@@ -1231,7 +1231,7 @@ void CompositedLayerMapping::updateShouldFlattenTransform() |
{ |
// All CLM-managed layers that could affect a descendant layer should update their |
// should-flatten-transform value (the other layers' transforms don't matter here). |
- UpdateShouldFlattenTransformFunctor functor = { m_owningLayer->shouldFlattenTransform() }; |
+ UpdateShouldFlattenTransformFunctor functor = { m_owningLayer.shouldFlattenTransform() }; |
ApplyToGraphicsLayersMode mode = ApplyToCoreLayers; |
ApplyToGraphicsLayers(this, functor, mode); |
} |
@@ -1284,7 +1284,7 @@ bool CompositedLayerMapping::updateBackgroundLayer(bool needsBackgroundLayer) |
} |
} |
- if (layerChanged && !m_owningLayer->renderer()->documentBeingDestroyed()) |
+ if (layerChanged && !m_owningLayer.renderer()->documentBeingDestroyed()) |
compositor()->rootFixedBackgroundsChanged(); |
return layerChanged; |
@@ -1351,14 +1351,14 @@ bool CompositedLayerMapping::updateScrollingLayers(bool needsScrollingLayers) |
layerChanged = true; |
if (scrollingCoordinator) |
- scrollingCoordinator->scrollableAreaScrollLayerDidChange(m_owningLayer->scrollableArea()); |
+ scrollingCoordinator->scrollableAreaScrollLayerDidChange(m_owningLayer.scrollableArea()); |
} |
} else if (m_scrollingLayer) { |
m_scrollingLayer = nullptr; |
m_scrollingContentsLayer = nullptr; |
layerChanged = true; |
if (scrollingCoordinator) |
- scrollingCoordinator->scrollableAreaScrollLayerDidChange(m_owningLayer->scrollableArea()); |
+ scrollingCoordinator->scrollableAreaScrollLayerDidChange(m_owningLayer.scrollableArea()); |
} |
if (layerChanged) { |
@@ -1366,7 +1366,7 @@ bool CompositedLayerMapping::updateScrollingLayers(bool needsScrollingLayers) |
m_graphicsLayer->setPaintingPhase(paintingPhaseForPrimaryLayer()); |
m_graphicsLayer->setNeedsDisplay(); |
if (renderer()->view()) |
- compositor()->scrollingLayerDidChange(m_owningLayer); |
+ compositor()->scrollingLayerDidChange(&m_owningLayer); |
} |
return layerChanged; |
@@ -1452,7 +1452,7 @@ GraphicsLayerPaintingPhase CompositedLayerMapping::paintingPhaseForPrimaryLayer( |
phase |= GraphicsLayerPaintCompositedScroll; |
} |
- if (m_owningLayer->compositingReasons() & CompositingReasonOverflowScrollingParent) |
+ if (m_owningLayer.compositingReasons() & CompositingReasonOverflowScrollingParent) |
phase |= GraphicsLayerPaintCompositedScroll; |
return static_cast<GraphicsLayerPaintingPhase>(phase); |
@@ -1462,7 +1462,7 @@ float CompositedLayerMapping::compositingOpacity(float rendererOpacity) const |
{ |
float finalOpacity = rendererOpacity; |
- for (RenderLayer* curr = m_owningLayer->parent(); curr; curr = curr->parent()) { |
+ for (RenderLayer* curr = m_owningLayer.parent(); curr; curr = curr->parent()) { |
// We only care about parents that are stacking contexts. |
// Recall that opacity creates stacking context. |
if (!curr->stackingNode()->isStackingContainer()) |
@@ -1502,7 +1502,7 @@ void CompositedLayerMapping::updateBackgroundColor() |
bool CompositedLayerMapping::paintsChildren() const |
{ |
- if (m_owningLayer->hasVisibleContent() && m_owningLayer->hasNonEmptyChildRenderers()) |
+ if (m_owningLayer.hasVisibleContent() && m_owningLayer.hasNonEmptyChildRenderers()) |
return true; |
if (hasVisibleNonCompositingDescendantLayers()) |
@@ -1545,12 +1545,12 @@ static bool hasVisibleNonCompositingDescendant(RenderLayer* parent) |
// don't paint into their own backing, and instead paint into this backing. |
bool CompositedLayerMapping::hasVisibleNonCompositingDescendantLayers() const |
{ |
- return hasVisibleNonCompositingDescendant(m_owningLayer); |
+ return hasVisibleNonCompositingDescendant(&m_owningLayer); |
} |
bool CompositedLayerMapping::containsPaintedContent() const |
{ |
- if (paintsIntoCompositedAncestor() || m_artificiallyInflatedBounds || m_owningLayer->isReflection()) |
+ if (paintsIntoCompositedAncestor() || m_artificiallyInflatedBounds || m_owningLayer.isReflection()) |
return false; |
if (isDirectlyCompositedImage()) |
@@ -1560,9 +1560,9 @@ bool CompositedLayerMapping::containsPaintedContent() const |
// FIXME: we could optimize cases where the image, video or canvas is known to fill the border box entirely, |
// and set background color on the layer in that case, instead of allocating backing store and painting. |
if (renderObject->isVideo() && toRenderVideo(renderer())->shouldDisplayVideo()) |
- return m_owningLayer->hasBoxDecorationsOrBackground(); |
+ return m_owningLayer.hasBoxDecorationsOrBackground(); |
- if (m_owningLayer->hasVisibleBoxDecorations()) |
+ if (m_owningLayer.hasVisibleBoxDecorations()) |
return true; |
if (renderObject->hasMask()) // masks require special treatment |
@@ -1599,7 +1599,7 @@ bool CompositedLayerMapping::isDirectlyCompositedImage() const |
{ |
RenderObject* renderObject = renderer(); |
- if (!renderObject->isImage() || m_owningLayer->hasBoxDecorationsOrBackground() || renderObject->hasClip()) |
+ if (!renderObject->isImage() || m_owningLayer.hasBoxDecorationsOrBackground() || renderObject->hasClip()) |
return false; |
RenderImage* imageRenderer = toRenderImage(renderObject); |
@@ -1750,11 +1750,11 @@ bool CompositedLayerMapping::updateRequiresOwnBackingStoreForIntrinsicReasons() |
{ |
bool previousRequiresOwnBackingStoreForIntrinsicReasons = m_requiresOwnBackingStoreForIntrinsicReasons; |
bool previousPaintsIntoCompositedAncestor = paintsIntoCompositedAncestor(); |
- RenderObject* renderer = m_owningLayer->renderer(); |
- m_requiresOwnBackingStoreForIntrinsicReasons = m_owningLayer->isRootLayer() |
- || (m_owningLayer->compositingReasons() & CompositingReasonComboReasonsThatRequireOwnBacking) |
- || m_owningLayer->transform() |
- || m_owningLayer->clipsCompositingDescendantsWithBorderRadius() // FIXME: Revisit this if the paintsIntoCompositedAncestor state is removed. |
+ RenderObject* renderer = m_owningLayer.renderer(); |
+ m_requiresOwnBackingStoreForIntrinsicReasons = m_owningLayer.isRootLayer() |
+ || (m_owningLayer.compositingReasons() & CompositingReasonComboReasonsThatRequireOwnBacking) |
+ || m_owningLayer.transform() |
+ || m_owningLayer.clipsCompositingDescendantsWithBorderRadius() // FIXME: Revisit this if the paintsIntoCompositedAncestor state is removed. |
|| renderer->isTransparent() |
|| renderer->hasMask() |
|| renderer->hasReflection() |
@@ -1769,10 +1769,10 @@ void CompositedLayerMapping::paintsIntoCompositedAncestorChanged() |
{ |
// The answer to paintsIntoCompositedAncestor() affects cached clip rects, so when |
// it changes we have to clear clip rects on descendants. |
- m_owningLayer->clipper().clearClipRectsIncludingDescendants(PaintingClipRects); |
- m_owningLayer->repainter().computeRepaintRectsIncludingDescendants(); |
+ m_owningLayer.clipper().clearClipRectsIncludingDescendants(PaintingClipRects); |
+ m_owningLayer.repainter().computeRepaintRectsIncludingDescendants(); |
- compositor()->repaintInCompositedAncestor(m_owningLayer, compositedBounds()); |
+ compositor()->repaintInCompositedAncestor(&m_owningLayer, compositedBounds()); |
} |
void CompositedLayerMapping::setBlendMode(blink::WebBlendMode blendMode) |
@@ -1789,7 +1789,7 @@ void CompositedLayerMapping::setNeedsGeometryUpdate() |
{ |
m_needToUpdateGeometryOfAllDecendants = true; |
- for (RenderLayer* current = m_owningLayer; current; current = current->ancestorCompositingLayer()) { |
+ for (RenderLayer* current = &m_owningLayer; current; current = current->ancestorCompositingLayer()) { |
// FIXME: We should be able to return early from this function once we |
// find a CompositedLayerMapping that has m_needToUpdateGeometry set. |
// However, we can't do that until we remove the incremental compositing |
@@ -1943,7 +1943,7 @@ void CompositedLayerMapping::paintContents(const GraphicsLayer* graphicsLayer, G |
if (Page* page = renderer()->frame()->page()) |
page->setIsPainting(true); |
#endif |
- InspectorInstrumentation::willPaint(m_owningLayer->renderer(), graphicsLayer); |
+ InspectorInstrumentation::willPaint(m_owningLayer.renderer(), graphicsLayer); |
if (graphicsLayer == m_graphicsLayer.get() |
|| graphicsLayer == m_foregroundLayer.get() |
@@ -1953,7 +1953,7 @@ void CompositedLayerMapping::paintContents(const GraphicsLayer* graphicsLayer, G |
|| graphicsLayer == m_scrollingContentsLayer.get()) { |
GraphicsLayerPaintInfo paintInfo; |
- paintInfo.renderLayer = m_owningLayer; |
+ paintInfo.renderLayer = &m_owningLayer; |
paintInfo.compositedBounds = compositedBounds(); |
paintInfo.offsetFromRenderer = graphicsLayer->offsetFromRenderer(); |
paintInfo.paintingPhase = paintingPhase; |
@@ -1966,20 +1966,20 @@ void CompositedLayerMapping::paintContents(const GraphicsLayer* graphicsLayer, G |
for (size_t i = 0; i < m_squashedLayers.size(); ++i) |
doPaintTask(m_squashedLayers[i], &context, clip); |
} else if (graphicsLayer == layerForHorizontalScrollbar()) { |
- paintScrollbar(m_owningLayer->scrollableArea()->horizontalScrollbar(), context, clip); |
+ paintScrollbar(m_owningLayer.scrollableArea()->horizontalScrollbar(), context, clip); |
} else if (graphicsLayer == layerForVerticalScrollbar()) { |
- paintScrollbar(m_owningLayer->scrollableArea()->verticalScrollbar(), context, clip); |
+ paintScrollbar(m_owningLayer.scrollableArea()->verticalScrollbar(), context, clip); |
} else if (graphicsLayer == layerForScrollCorner()) { |
- const IntRect& scrollCornerAndResizer = m_owningLayer->scrollableArea()->scrollCornerAndResizerRect(); |
+ const IntRect& scrollCornerAndResizer = m_owningLayer.scrollableArea()->scrollCornerAndResizerRect(); |
context.save(); |
context.translate(-scrollCornerAndResizer.x(), -scrollCornerAndResizer.y()); |
IntRect transformedClip = clip; |
transformedClip.moveBy(scrollCornerAndResizer.location()); |
- m_owningLayer->scrollableArea()->paintScrollCorner(&context, IntPoint(), transformedClip); |
- m_owningLayer->scrollableArea()->paintResizer(&context, IntPoint(), transformedClip); |
+ m_owningLayer.scrollableArea()->paintScrollCorner(&context, IntPoint(), transformedClip); |
+ m_owningLayer.scrollableArea()->paintResizer(&context, IntPoint(), transformedClip); |
context.restore(); |
} |
- InspectorInstrumentation::didPaint(m_owningLayer->renderer(), graphicsLayer, &context, clip); |
+ InspectorInstrumentation::didPaint(m_owningLayer.renderer(), graphicsLayer, &context, clip); |
#ifndef NDEBUG |
if (Page* page = renderer()->frame()->page()) |
page->setIsPainting(false); |
@@ -2085,7 +2085,7 @@ String CompositedLayerMapping::debugName(const GraphicsLayer* graphicsLayer) |
{ |
String name; |
if (graphicsLayer == m_graphicsLayer.get()) { |
- name = m_owningLayer->debugName(); |
+ name = m_owningLayer.debugName(); |
} else if (graphicsLayer == m_squashingContainmentLayer.get()) { |
name = "Squashing Containment Layer"; |
} else if (graphicsLayer == m_squashingLayer.get()) { |
@@ -2093,9 +2093,9 @@ String CompositedLayerMapping::debugName(const GraphicsLayer* graphicsLayer) |
} else if (graphicsLayer == m_ancestorClippingLayer.get()) { |
name = "Ancestor Clipping Layer"; |
} else if (graphicsLayer == m_foregroundLayer.get()) { |
- name = m_owningLayer->debugName() + " (foreground) Layer"; |
+ name = m_owningLayer.debugName() + " (foreground) Layer"; |
} else if (graphicsLayer == m_backgroundLayer.get()) { |
- name = m_owningLayer->debugName() + " (background) Layer"; |
+ name = m_owningLayer.debugName() + " (background) Layer"; |
} else if (graphicsLayer == m_childContainmentLayer.get()) { |
name = "Child Containment Layer"; |
} else if (graphicsLayer == m_childTransformLayer.get()) { |