Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(440)

Unified Diff: third_party/WebKit/Source/core/paint/PaintLayerStackingNode.h

Issue 1798263002: Rename isTreatedAsOrStackingContext to isStacked (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Markdown, isStacked, paintAllPhasesAtomically Created 4 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: third_party/WebKit/Source/core/paint/PaintLayerStackingNode.h
diff --git a/third_party/WebKit/Source/core/paint/PaintLayerStackingNode.h b/third_party/WebKit/Source/core/paint/PaintLayerStackingNode.h
index 15a42259b6a14da477a716952d36812365143d2f..9193cbc968e8369d3ccc215fed52ebd90b23ce94 100644
--- a/third_party/WebKit/Source/core/paint/PaintLayerStackingNode.h
+++ b/third_party/WebKit/Source/core/paint/PaintLayerStackingNode.h
@@ -64,7 +64,7 @@ class LayoutBoxModelObject;
// Stacking contexts are the basis for the CSS painting algorithm. The paint
// order is determined by walking stacking contexts (or elements treated like a
// stacking context like positioned objects or floats) in an order defined by
-// ‘z-index’. This walk is interleaved with content that is not a stacking.
+// ‘z-index’. This walk is interleaved with content that is not a stacking
// context. See CSS 2.1 appendix E for the actual algorithm
// http://www.w3.org/TR/CSS21/zindex.html
// See also PaintLayerPainter (in particular paintLayerContents) for
@@ -105,8 +105,8 @@ public:
bool hasPositiveZOrderList() const { return posZOrderList() && posZOrderList()->size(); }
bool hasNegativeZOrderList() const { return negZOrderList() && negZOrderList()->size(); }
- bool isTreatedAsOrStackingContext() const { return m_isTreatedAsOrStackingContext; }
- void updateIsTreatedAsStackingContext();
+ bool isStacked() const { return m_isStacked; }
+ void updateIsStacked();
void updateStackingNodesAfterStyleChange(const ComputedStyle* oldStyle);
@@ -119,6 +119,18 @@ public:
void setLayerListMutationAllowed(bool flag) { m_layerListMutationAllowed = flag; }
#endif
+ // Stacking contexts and positioned elements[1] are stacked (sorted in negZOrderList
+ // and posZOrderList) in their enclosing stacking contexts.
+ //
+ // [1] According to CSS2.1, Appendix E.2.8 (https://www.w3.org/TR/CSS21/zindex.html),
+ // positioned elements with 'z-index: auto' are "treated as if it created a new
+ // stacking context" and z-ordered together with other elements with 'z-index: 0'.
+ // The difference of them from normal stacking contexts is that they don't determine
+ // the stacking of the elements underneath them.
+ // (Note: There are also other elements treated as stacking context during painting,
+ // but not managed in stacks. See ObjectPainter::paintAllPhasesAtomically().)
pdr. 2016/03/16 02:22:53 Optional, may want to add a link to the markdown t
Xianzhu 2016/03/16 18:10:24 Done.
+ static bool shouldStackObject(const LayoutObject& object) { return object.styleRef().isStackingContext() || object.isPositioned(); }
+
private:
friend class PaintLayerStackingNodeIterator;
friend class PaintLayerStackingNodeReverseIterator;
@@ -147,8 +159,6 @@ private:
void setStackingParent(PaintLayerStackingNode* stackingParent) { m_stackingParent = stackingParent; }
#endif
- bool shouldBeTreatedAsOrStackingContext() const { return layoutObject()->style()->isTreatedAsOrStackingContext(); }
-
bool isDirtyStackingContext() const { return m_zOrderListsDirty && isStackingContext(); }
PaintLayerCompositor* compositor() const;
@@ -158,7 +168,7 @@ private:
PaintLayer* m_layer;
// m_posZOrderList holds a sorted list of all the descendant nodes within
- // that have z-indices of 0 or greater (auto will count as 0).
+ // that have z-indices of 0 (or is treated as 0 for positioned objects) or greater.
// m_negZOrderList holds descendants within our stacking context with
// negative z-indices.
OwnPtr<Vector<PaintLayerStackingNode*>> m_posZOrderList;
@@ -169,11 +179,10 @@ private:
// have z-order lists.
unsigned m_zOrderListsDirty : 1;
- // This attribute caches whether the element was a stacking context or
- // was treated like a stacking context, so that we can do comparison against
+ // This attribute caches whether the element was stacked, so that we can do comparison against
// it during style change (styleDidChange in particular), as we have lost
// the previous style information.
- unsigned m_isTreatedAsOrStackingContext: 1;
+ unsigned m_isStacked: 1;
#if ENABLE(ASSERT)
unsigned m_layerListMutationAllowed : 1;

Powered by Google App Engine
This is Rietveld 408576698