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

Side by Side Diff: third_party/WebKit/Source/core/paint/PaintLayerStackingNode.h

Issue 2692853016: Change PaintLayer::m_layoutObject to a reference. (Closed)
Patch Set: Added TODO Created 3 years, 10 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 unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2003, 2009, 2012 Apple Inc. All rights reserved. 2 * Copyright (C) 2003, 2009, 2012 Apple Inc. All rights reserved.
3 * Copyright (C) 2013 Intel Corporation. All rights reserved. 3 * Copyright (C) 2013 Intel Corporation. All rights reserved.
4 * 4 *
5 * Portions are Copyright (C) 1998 Netscape Communications Corporation. 5 * Portions are Copyright (C) 1998 Netscape Communications Corporation.
6 * 6 *
7 * Other contributors: 7 * Other contributors:
8 * Robert O'Callahan <roc+@cs.cmu.edu> 8 * Robert O'Callahan <roc+@cs.cmu.edu>
9 * David Baron <dbaron@fas.harvard.edu> 9 * David Baron <dbaron@fas.harvard.edu>
10 * Christian Biesinger <cbiesinger@web.de> 10 * Christian Biesinger <cbiesinger@web.de>
(...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after
91 // A real stacking context can also be a leaf if it doesn't contain any stacked 91 // A real stacking context can also be a leaf if it doesn't contain any stacked
92 // elements. 92 // elements.
93 class CORE_EXPORT PaintLayerStackingNode { 93 class CORE_EXPORT PaintLayerStackingNode {
94 USING_FAST_MALLOC(PaintLayerStackingNode); 94 USING_FAST_MALLOC(PaintLayerStackingNode);
95 WTF_MAKE_NONCOPYABLE(PaintLayerStackingNode); 95 WTF_MAKE_NONCOPYABLE(PaintLayerStackingNode);
96 96
97 public: 97 public:
98 explicit PaintLayerStackingNode(PaintLayer*); 98 explicit PaintLayerStackingNode(PaintLayer*);
99 ~PaintLayerStackingNode(); 99 ~PaintLayerStackingNode();
100 100
101 int zIndex() const { return layoutObject()->style()->zIndex(); } 101 int zIndex() const { return layoutObject().style()->zIndex(); }
102 102
103 bool isStackingContext() const { 103 bool isStackingContext() const {
104 return layoutObject()->style()->isStackingContext(); 104 return layoutObject().style()->isStackingContext();
105 } 105 }
106 106
107 // Whether the node is stacked. See documentation for the class about 107 // Whether the node is stacked. See documentation for the class about
108 // "stacked". For now every PaintLayer has a PaintLayerStackingNode, even if 108 // "stacked". For now every PaintLayer has a PaintLayerStackingNode, even if
109 // the layer is not stacked (e.g. a scrollable layer which is statically 109 // the layer is not stacked (e.g. a scrollable layer which is statically
110 // positioned and is not a stacking context). 110 // positioned and is not a stacking context).
111 bool isStacked() const { return m_isStacked; } 111 bool isStacked() const { return m_isStacked; }
112 112
113 // Update our normal and z-index lists. 113 // Update our normal and z-index lists.
114 void updateLayerListsIfNeeded(); 114 void updateLayerListsIfNeeded();
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after
169 m_stackingParent = stackingParent; 169 m_stackingParent = stackingParent;
170 } 170 }
171 #endif 171 #endif
172 172
173 bool isDirtyStackingContext() const { 173 bool isDirtyStackingContext() const {
174 return m_zOrderListsDirty && isStackingContext(); 174 return m_zOrderListsDirty && isStackingContext();
175 } 175 }
176 176
177 PaintLayerCompositor* compositor() const; 177 PaintLayerCompositor* compositor() const;
178 // We can't return a LayoutBox as LayoutInline can be a stacking context. 178 // We can't return a LayoutBox as LayoutInline can be a stacking context.
179 LayoutBoxModelObject* layoutObject() const; 179 LayoutBoxModelObject& layoutObject() const;
180 180
181 PaintLayer* m_layer; 181 PaintLayer* m_layer;
182 182
183 // m_posZOrderList holds a sorted list of all the descendant nodes within 183 // m_posZOrderList holds a sorted list of all the descendant nodes within
184 // that have z-indices of 0 (or is treated as 0 for positioned objects) or 184 // that have z-indices of 0 (or is treated as 0 for positioned objects) or
185 // greater. 185 // greater.
186 std::unique_ptr<Vector<PaintLayerStackingNode*>> m_posZOrderList; 186 std::unique_ptr<Vector<PaintLayerStackingNode*>> m_posZOrderList;
187 // m_negZOrderList holds descendants within our stacking context with 187 // m_negZOrderList holds descendants within our stacking context with
188 // negative z-indices. 188 // negative z-indices.
189 std::unique_ptr<Vector<PaintLayerStackingNode*>> m_negZOrderList; 189 std::unique_ptr<Vector<PaintLayerStackingNode*>> m_negZOrderList;
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
245 245
246 private: 246 private:
247 PaintLayerStackingNode* m_stackingNode; 247 PaintLayerStackingNode* m_stackingNode;
248 bool m_previousMutationAllowedState; 248 bool m_previousMutationAllowedState;
249 }; 249 };
250 #endif 250 #endif
251 251
252 } // namespace blink 252 } // namespace blink
253 253
254 #endif // PaintLayerStackingNode_h 254 #endif // PaintLayerStackingNode_h
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698