Chromium Code Reviews| Index: Source/core/rendering/RenderLayer.h |
| diff --git a/Source/core/rendering/RenderLayer.h b/Source/core/rendering/RenderLayer.h |
| index 91a54b16ab209b57dd77d59461463ea790aae5b5..a9acf7a00141d94de60c75178c0b734ec26c9a48 100644 |
| --- a/Source/core/rendering/RenderLayer.h |
| +++ b/Source/core/rendering/RenderLayer.h |
| @@ -813,12 +813,20 @@ public: |
| bool isOutOfFlowRenderFlowThread() const { return renderer()->isOutOfFlowRenderFlowThread(); } |
| +#ifndef NDEBUG |
| + String paintOrderListsAsText(); |
| +#endif |
| + enum PaintOrderListType {BeforePromote, AfterPromote}; |
| + PassRefPtr<NodeList> paintOrderList(PaintOrderListType type); |
| + |
| private: |
| enum CollectLayersBehavior { StopAtStackingContexts, StopAtStackingContainers }; |
| void updateZOrderLists(); |
| void rebuildZOrderLists(); |
| - void rebuildZOrderLists(CollectLayersBehavior, OwnPtr<Vector<RenderLayer*> >&, OwnPtr<Vector<RenderLayer*> >&); |
| + // See the comment for collectLayers for information about the |
| + // layerToForceAsStackingContainer parameter. |
|
Julien - ping for review
2013/04/24 15:44:01
Nit: You don't need to wrap at 80 columns in Blink
hartmanng
2013/04/24 17:02:41
Done.
|
| + void rebuildZOrderLists(CollectLayersBehavior, OwnPtr<Vector<RenderLayer*> >&, OwnPtr<Vector<RenderLayer*> >&, const RenderLayer* layerToForceAsStackingContainer = 0); |
| void clearZOrderLists(); |
| void updateNormalFlowList(); |
| @@ -833,6 +841,8 @@ private: |
| bool acceleratedCompositingForOverflowScrollEnabled() const; |
| void updateDescendantsAreContiguousInStackingOrder(); |
| void updateDescendantsAreContiguousInStackingOrderRecursive(const HashMap<const RenderLayer*, int>&, int& minIndex, int& maxIndex, int& count, bool firstIteration); |
| + void collectBeforePromotionZOrderList(RenderLayer* ancestorStackingContext, OwnPtr<Vector<RenderLayer*> >& posZOrderListBeforePromote, OwnPtr<Vector<RenderLayer*> >& negZOrderListBeforePromote, size_t& posZOrderListSizeBeforePromote, size_t& negZOrderListSizeBeforePromote); |
| + void collectAfterPromotionZOrderList(RenderLayer* ancestorStackingContext, OwnPtr<Vector<RenderLayer*> >& posZOrderListAfterPromote, OwnPtr<Vector<RenderLayer*> >& negZOrderListAfterPromote, size_t& posZOrderListSizeAfterPromote, size_t& negZOrderListSizeAfterPromote); |
| void computeRepaintRects(const RenderLayerModelObject* repaintContainer, const RenderGeometryMap* = 0); |
| void computeRepaintRectsIncludingDescendants(); |
| @@ -889,7 +899,11 @@ private: |
| LayoutPoint renderBoxLocation() const { return renderer()->isBox() ? toRenderBox(renderer())->location() : LayoutPoint(); } |
| - void collectLayers(bool includeHiddenLayers, CollectLayersBehavior, OwnPtr<Vector<RenderLayer*> >&, OwnPtr<Vector<RenderLayer*> >&); |
| + // layerToForceAsStackingContainer allows us to build pre-promotion and |
| + // post-promotion layer lists, by allowing us to treat a layer as if it is a |
| + // stacking context, without adding a new member to RenderLayer or modifying |
| + // the style (which could cause extra allocations). |
| + void collectLayers(bool includeHiddenLayers, CollectLayersBehavior, OwnPtr<Vector<RenderLayer*> >&, OwnPtr<Vector<RenderLayer*> >&, const RenderLayer* layerToForceAsStackingContainer = 0); |
| struct LayerPaintingInfo { |
| LayerPaintingInfo(RenderLayer* inRootLayer, const LayoutRect& inDirtyRect, PaintBehavior inPaintBehavior, const LayoutSize& inSubPixelAccumulation, RenderObject* inPaintingRoot = 0, RenderRegion*inRegion = 0, OverlapTestRequestMap* inOverlapTestRequests = 0) |