| Index: Source/WebCore/rendering/RenderLayer.h
|
| diff --git a/Source/WebCore/rendering/RenderLayer.h b/Source/WebCore/rendering/RenderLayer.h
|
| index 21a6c919dc01fd742dd8ee8f5dc6b7e0f7ca60b8..5bb7fe34d15e20d896ec4d2def198cdcde31eda3 100644
|
| --- a/Source/WebCore/rendering/RenderLayer.h
|
| +++ b/Source/WebCore/rendering/RenderLayer.h
|
| @@ -62,6 +62,7 @@ class FilterOperations;
|
| class HitTestRequest;
|
| class HitTestResult;
|
| class HitTestingTransformState;
|
| +class PaintOrderLists;
|
| class RenderFlowThread;
|
| class RenderGeometryMap;
|
| class RenderLayerBacking;
|
| @@ -834,12 +835,17 @@ public:
|
|
|
| bool isOutOfFlowRenderFlowThread() const { return renderer()->isOutOfFlowRenderFlowThread(); }
|
|
|
| + String paintOrderListsAsText();
|
| + PassRefPtr<PaintOrderLists> paintOrderLists();
|
| +
|
| 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
|
| + // layerToForceAsStackingContext parameter.
|
| + void rebuildZOrderLists(CollectLayersBehavior, OwnPtr<Vector<RenderLayer*> >&, OwnPtr<Vector<RenderLayer*> >&, const RenderLayer* layerToForceAsStackingContext = 0);
|
| void clearZOrderLists();
|
|
|
| void updateNormalFlowList();
|
| @@ -854,6 +860,16 @@ private:
|
| bool acceleratedCompositingForOverflowScrollEnabled() const;
|
| void updateDescendantsAreContiguousInStackingOrder();
|
| void updateDescendantsAreContiguousInStackingOrderRecursive(const HashMap<const RenderLayer*, int>&, int& minIndex, int& maxIndex, int& count, bool firstIteration);
|
| + void collectBeforeAfterPromotionZOrderLists(RenderLayer* ancestorStackingContext,
|
| + OwnPtr<Vector<RenderLayer*> >& posZOrderListBeforePromote,
|
| + OwnPtr<Vector<RenderLayer*> >& negZOrderListBeforePromote,
|
| + OwnPtr<Vector<RenderLayer*> >& posZOrderListAfterPromote,
|
| + OwnPtr<Vector<RenderLayer*> >& negZOrderListAfterPromote);
|
| + void getPaintOrderLists(RenderLayer* ancestorStackingContext,
|
| + OwnPtr<Vector<RenderLayer*> >& posZOrderListBeforePromote,
|
| + OwnPtr<Vector<RenderLayer*> >& negZOrderListBeforePromote,
|
| + OwnPtr<Vector<RenderLayer*> >& posZOrderListAfterPromote,
|
| + OwnPtr<Vector<RenderLayer*> >& negZOrderListAfterPromote);
|
|
|
| void computeRepaintRects(const RenderLayerModelObject* repaintContainer, const RenderGeometryMap* = 0);
|
| void computeRepaintRectsIncludingDescendants();
|
| @@ -875,6 +891,7 @@ private:
|
| void dirtyAncestorChainHasOutOfFlowPositionedDescendantStatus();
|
| void updateOutOfFlowPositioned(const RenderStyle* oldStyle);
|
|
|
| + void updateIsNormalFlowOnly();
|
| void updateNeedsCompositedScrolling();
|
|
|
| // Returns true if the position changed.
|
| @@ -908,7 +925,11 @@ private:
|
|
|
| LayoutPoint renderBoxLocation() const { return renderer()->isBox() ? toRenderBox(renderer())->location() : LayoutPoint(); }
|
|
|
| - void collectLayers(bool includeHiddenLayers, CollectLayersBehavior, OwnPtr<Vector<RenderLayer*> >&, OwnPtr<Vector<RenderLayer*> >&);
|
| + // layerToForceAsStackingContext 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* layerToForceAsStackingContext = 0);
|
|
|
| void updateCompositingAndLayerListsIfNeeded();
|
|
|
|
|