| Index: Source/core/rendering/RenderLayerStackingNode.cpp
|
| diff --git a/Source/core/rendering/RenderLayerStackingNode.cpp b/Source/core/rendering/RenderLayerStackingNode.cpp
|
| index 646ae859de8addd77cad46558f916e73f9fb8831..8d123e990c8660e6b3dcad24280e5704f5d5f22d 100644
|
| --- a/Source/core/rendering/RenderLayerStackingNode.cpp
|
| +++ b/Source/core/rendering/RenderLayerStackingNode.cpp
|
| @@ -183,7 +183,6 @@ void RenderLayerStackingNode::updateNormalFlowList()
|
| ASSERT(m_layerListMutationAllowed);
|
|
|
| for (RenderLayer* child = layer()->firstChild(); child; child = child->nextSibling()) {
|
| - // Ignore non-overflow layers and reflections.
|
| if (child->stackingNode()->isNormalFlowOnly() && (!layer()->reflectionInfo() || layer()->reflectionInfo()->reflectionLayer() != child)) {
|
| if (!m_normalFlowList)
|
| m_normalFlowList = adoptPtr(new Vector<RenderLayerStackingNode*>);
|
| @@ -205,23 +204,15 @@ void RenderLayerStackingNode::collectLayers(OwnPtr<Vector<RenderLayerStackingNod
|
|
|
| layer()->updateDescendantDependentFlags();
|
|
|
| - // Overflow layers are just painted by their enclosing layers, so they don't get put in zorder lists.
|
| if (!isNormalFlowOnly()) {
|
| - // Determine which buffer the child should be in.
|
| OwnPtr<Vector<RenderLayerStackingNode*> >& buffer = (zIndex() >= 0) ? posBuffer : negBuffer;
|
| -
|
| - // Create the buffer if it doesn't exist yet.
|
| if (!buffer)
|
| buffer = adoptPtr(new Vector<RenderLayerStackingNode*>);
|
| -
|
| - // Append ourselves at the end of the appropriate buffer.
|
| buffer->append(this);
|
| }
|
|
|
| - // Recur into our children to collect more layers, but only if we don't establish a stacking context.
|
| if (!isStackingContext()) {
|
| for (RenderLayer* child = layer()->firstChild(); child; child = child->nextSibling()) {
|
| - // Ignore reflections.
|
| if (!layer()->reflectionInfo() || layer()->reflectionInfo()->reflectionLayer() != child)
|
| child->stackingNode()->collectLayers(posBuffer, negBuffer);
|
| }
|
| @@ -303,27 +294,11 @@ void RenderLayerStackingNode::updateStackingNodesAfterStyleChange(const RenderSt
|
| clearZOrderLists();
|
| }
|
|
|
| +// FIXME: Rename shouldBeNormalFlowOnly to something more accurate now that CSS
|
| +// 2.1 defines the term "normal flow".
|
| bool RenderLayerStackingNode::shouldBeNormalFlowOnly() const
|
| {
|
| - RenderLayerModelObject* renderer = this->renderer();
|
| -
|
| - const bool couldBeNormalFlow = renderer->hasOverflowClip()
|
| - || renderer->hasReflection()
|
| - || renderer->hasMask()
|
| - || renderer->isCanvas()
|
| - || renderer->isVideo()
|
| - || renderer->isEmbeddedObject()
|
| - || renderer->isRenderIFrame()
|
| - || (renderer->style()->specifiesColumns() && !layer()->isRootLayer());
|
| -
|
| - const bool preventsElementFromBeingNormalFlow = renderer->isPositioned()
|
| - || renderer->hasTransform()
|
| - || renderer->hasClipPath()
|
| - || renderer->hasFilter()
|
| - || renderer->hasBlendMode()
|
| - || layer()->isTransparent();
|
| -
|
| - return couldBeNormalFlow && !preventsElementFromBeingNormalFlow;
|
| + return !isStackingContext() && !renderer()->isPositioned();
|
| }
|
|
|
| void RenderLayerStackingNode::updateIsNormalFlowOnly()
|
|
|