Chromium Code Reviews| Index: Source/core/rendering/RenderLayer.cpp |
| diff --git a/Source/core/rendering/RenderLayer.cpp b/Source/core/rendering/RenderLayer.cpp |
| index 014321da993929f0e43b8c59ba9dad1d5a444a5b..01ce52c7b959a4521cadcb92f0de4ed5c63de1c0 100644 |
| --- a/Source/core/rendering/RenderLayer.cpp |
| +++ b/Source/core/rendering/RenderLayer.cpp |
| @@ -51,6 +51,7 @@ |
| #include "core/css/PseudoStyleRequest.h" |
| #include "core/dom/Document.h" |
| #include "core/dom/DocumentEventQueue.h" |
| +#include "core/dom/PseudoElement.h" |
| #include "core/dom/WebCoreMemoryInstrumentation.h" |
| #include "core/dom/shadow/ShadowRoot.h" |
| #include "core/editing/FrameSelection.h" |
| @@ -4281,15 +4282,6 @@ bool RenderLayer::isInTopLayer() const |
| return node && node->isElementNode() && toElement(node)->isInTopLayer(); |
| } |
| -bool RenderLayer::isInTopLayerSubtree() const |
| -{ |
| - for (const RenderLayer* layer = this; layer; layer = layer->parent()) { |
| - if (layer->isInTopLayer()) |
| - return true; |
| - } |
| - return false; |
| -} |
| - |
| // Compute the z-offset of the point in the transformState. |
| // This is effectively projecting a ray normal to the plane of ancestor, finding where that |
| // ray intersects target, and computing the z delta between those two points. |
| @@ -5633,8 +5625,9 @@ void RenderLayer::rebuildZOrderLists(OwnPtr<Vector<RenderLayer*> >& posZOrderLis |
| for (RenderObject* child = view->firstChild(); child; child = child->nextSibling()) { |
| Element* childElement = (child->node() && child->node()->isElementNode()) ? toElement(child->node()) : 0; |
| if (childElement && childElement->isInTopLayer()) { |
| - RenderLayer* layer = toRenderLayerModelObject(child)->layer(); |
| - posZOrderList->append(layer); |
| + if (Element* backdrop = childElement->pseudoElement(BACKDROP)) |
| + posZOrderList->append(toRenderLayerModelObject(backdrop->renderer())->layer()); |
|
Julien - ping for review
2013/06/27 22:49:00
I haven't seen why it's a fine assumption to assum
falken
2013/06/28 08:06:52
Done. ::backdrop gets a non-auto z-index now, like
|
| + posZOrderList->append(toRenderLayerModelObject(child)->layer()); |
|
Julien - ping for review
2013/06/27 22:49:00
The ordering is wrong as |backdrop| should be *bel
falken
2013/06/28 08:06:52
It's correct. The layer list is ordered from botto
|
| } |
| } |
| } |
| @@ -5661,7 +5654,7 @@ void RenderLayer::updateNormalFlowList() |
| void RenderLayer::collectLayers(bool includeHiddenLayers, OwnPtr<Vector<RenderLayer*> >& posBuffer, OwnPtr<Vector<RenderLayer*> >& negBuffer, const RenderLayer* layerToForceAsStackingContainer, CollectLayersBehavior collectLayersBehavior) |
| { |
| - if (isInTopLayer()) |
| + if (isInTopLayer() || isBackdrop()) |
| return; |
| updateDescendantDependentFlags(); |