| OLD | NEW |
| 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 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 54 namespace blink { | 54 namespace blink { |
| 55 | 55 |
| 56 class DeprecatedPaintLayer; | 56 class DeprecatedPaintLayer; |
| 57 class DeprecatedPaintLayerCompositor; | 57 class DeprecatedPaintLayerCompositor; |
| 58 class ComputedStyle; | 58 class ComputedStyle; |
| 59 class LayoutBoxModelObject; | 59 class LayoutBoxModelObject; |
| 60 | 60 |
| 61 class CORE_EXPORT DeprecatedPaintLayerStackingNode { | 61 class CORE_EXPORT DeprecatedPaintLayerStackingNode { |
| 62 WTF_MAKE_NONCOPYABLE(DeprecatedPaintLayerStackingNode); | 62 WTF_MAKE_NONCOPYABLE(DeprecatedPaintLayerStackingNode); |
| 63 public: | 63 public: |
| 64 explicit DeprecatedPaintLayerStackingNode(DeprecatedPaintLayer*); | 64 explicit DeprecatedPaintLayerStackingNode(LayoutBoxModelObject&); |
| 65 ~DeprecatedPaintLayerStackingNode(); | 65 ~DeprecatedPaintLayerStackingNode(); |
| 66 | 66 |
| 67 int zIndex() const { return layoutObject()->style()->zIndex(); } | 67 int zIndex() const { return layoutObject().style()->zIndex(); } |
| 68 | 68 |
| 69 bool isStackingContext() const { return layoutObject()->style()->isStackingC
ontext(); } | 69 bool isStackingContext() const { return layoutObject().style()->isStackingCo
ntext(); } |
| 70 | 70 |
| 71 // Update our normal and z-index lists. | 71 // Update our normal and z-index lists. |
| 72 void updateLayerListsIfNeeded(); | 72 void updateLayerListsIfNeeded(); |
| 73 | 73 |
| 74 bool zOrderListsDirty() const { return m_zOrderListsDirty; } | 74 bool zOrderListsDirty() const { return m_zOrderListsDirty; } |
| 75 void dirtyZOrderLists(); | 75 void dirtyZOrderLists(); |
| 76 void updateZOrderLists(); | 76 void updateZOrderLists(); |
| 77 void clearZOrderLists(); | 77 void clearZOrderLists(); |
| 78 void dirtyStackingContextZOrderLists(); | 78 void dirtyStackingContextZOrderLists(); |
| 79 | 79 |
| 80 bool hasPositiveZOrderList() const { return posZOrderList() && posZOrderList
()->size(); } | 80 bool hasPositiveZOrderList() const { return posZOrderList() && posZOrderList
()->size(); } |
| 81 bool hasNegativeZOrderList() const { return negZOrderList() && negZOrderList
()->size(); } | 81 bool hasNegativeZOrderList() const { return negZOrderList() && negZOrderList
()->size(); } |
| 82 | 82 |
| 83 // FIXME: should check for dirtiness here? | 83 // FIXME: should check for dirtiness here? |
| 84 bool isNormalFlowOnly() const { return !isTreatedAsStackingContextForPaintin
g(); } | 84 bool isNormalFlowOnly() const { return !isTreatedAsStackingContextForPaintin
g(); } |
| 85 bool isTreatedAsStackingContextForPainting() const { return m_isTreatedAsSta
ckingContextForPainting; } | 85 bool isTreatedAsStackingContextForPainting() const { return m_isTreatedAsSta
ckingContextForPainting; } |
| 86 void updateIsTreatedAsStackingContextForPainting(); | 86 void updateIsTreatedAsStackingContextForPainting(); |
| 87 bool normalFlowListDirty() const { return m_normalFlowListDirty; } | 87 bool normalFlowListDirty() const { return m_normalFlowListDirty; } |
| 88 void dirtyNormalFlowList(); | 88 void dirtyNormalFlowList(); |
| 89 | 89 |
| 90 void updateStackingNodesAfterStyleChange(const ComputedStyle* oldStyle); | 90 void updateStackingNodesAfterStyleChange(const ComputedStyle* oldStyle); |
| 91 | 91 |
| 92 DeprecatedPaintLayerStackingNode* ancestorStackingContextNode() const; | 92 DeprecatedPaintLayerStackingNode* ancestorStackingContextNode() const; |
| 93 | 93 |
| 94 DeprecatedPaintLayer* layer() const { return m_layer; } | 94 // FIXME: A lot of code depends on this function but shouldn't. We should |
| 95 // build our code on top of LayoutBoxModelObject, not DeprecatedPaintLayer. |
| 96 DeprecatedPaintLayer* layer() const; |
| 95 | 97 |
| 96 #if ENABLE(ASSERT) | 98 #if ENABLE(ASSERT) |
| 97 bool layerListMutationAllowed() const { return m_layerListMutationAllowed; } | 99 bool layerListMutationAllowed() const { return m_layerListMutationAllowed; } |
| 98 void setLayerListMutationAllowed(bool flag) { m_layerListMutationAllowed = f
lag; } | 100 void setLayerListMutationAllowed(bool flag) { m_layerListMutationAllowed = f
lag; } |
| 99 #endif | 101 #endif |
| 100 | 102 |
| 101 private: | 103 private: |
| 102 friend class DeprecatedPaintLayerStackingNodeIterator; | 104 friend class DeprecatedPaintLayerStackingNodeIterator; |
| 103 friend class DeprecatedPaintLayerStackingNodeReverseIterator; | 105 friend class DeprecatedPaintLayerStackingNodeReverseIterator; |
| 104 friend class LayoutTreeAsText; | 106 friend class LayoutTreeAsText; |
| (...skipping 12 matching lines...) Expand all Loading... |
| 117 } | 119 } |
| 118 | 120 |
| 119 Vector<DeprecatedPaintLayerStackingNode*>* negZOrderList() const | 121 Vector<DeprecatedPaintLayerStackingNode*>* negZOrderList() const |
| 120 { | 122 { |
| 121 ASSERT(!m_zOrderListsDirty); | 123 ASSERT(!m_zOrderListsDirty); |
| 122 ASSERT(isStackingContext() || !m_negZOrderList); | 124 ASSERT(isStackingContext() || !m_negZOrderList); |
| 123 return m_negZOrderList.get(); | 125 return m_negZOrderList.get(); |
| 124 } | 126 } |
| 125 | 127 |
| 126 void rebuildZOrderLists(); | 128 void rebuildZOrderLists(); |
| 127 void collectLayers(OwnPtr<Vector<DeprecatedPaintLayerStackingNode*>>& posZOr
derList, OwnPtr<Vector<DeprecatedPaintLayerStackingNode*>>& negZOrderList); | |
| 128 | 129 |
| 129 #if ENABLE(ASSERT) | 130 #if ENABLE(ASSERT) |
| 130 bool isInStackingParentZOrderLists() const; | 131 bool isInStackingParentZOrderLists() const; |
| 131 bool isInStackingParentNormalFlowList() const; | 132 bool isInStackingParentNormalFlowList() const; |
| 132 void updateStackingParentForZOrderLists(DeprecatedPaintLayerStackingNode* st
ackingParent); | 133 void updateStackingParentForZOrderLists(DeprecatedPaintLayerStackingNode* st
ackingParent); |
| 133 void updateStackingParentForNormalFlowList(DeprecatedPaintLayerStackingNode*
stackingParent); | 134 void updateStackingParentForNormalFlowList(DeprecatedPaintLayerStackingNode*
stackingParent); |
| 134 void setStackingParent(DeprecatedPaintLayerStackingNode* stackingParent) { m
_stackingParent = stackingParent; } | 135 void setStackingParent(DeprecatedPaintLayerStackingNode* stackingParent) { m
_stackingParent = stackingParent; } |
| 135 #endif | 136 #endif |
| 136 | 137 |
| 137 bool shouldBeTreatedAsStackingContextForPainting() const { return layoutObje
ct()->style()->isTreatedAsStackingContextForPainting(); } | 138 bool shouldBeTreatedAsStackingContextForPainting() const { return layoutObje
ct().style()->isTreatedAsStackingContextForPainting(); } |
| 138 | 139 |
| 139 void updateNormalFlowList(); | 140 void updateNormalFlowList(); |
| 140 | 141 |
| 141 bool isDirtyStackingContext() const { return m_zOrderListsDirty && isStackin
gContext(); } | 142 bool isDirtyStackingContext() const { return m_zOrderListsDirty && isStackin
gContext(); } |
| 142 | 143 |
| 143 DeprecatedPaintLayerCompositor* compositor() const; | 144 DeprecatedPaintLayerCompositor* compositor() const; |
| 144 // We can't return a LayoutBox as LayoutInline can be a stacking context. | 145 // We can't return a LayoutBox as LayoutInline can be a stacking context. |
| 145 LayoutBoxModelObject* layoutObject() const; | 146 LayoutBoxModelObject& layoutObject() const { return m_layoutObject; } |
| 146 | 147 |
| 147 DeprecatedPaintLayer* m_layer; | 148 LayoutBoxModelObject& m_layoutObject; |
| 148 | 149 |
| 149 // m_posZOrderList holds a sorted list of all the descendant nodes within | 150 // m_posZOrderList holds a sorted list of all the descendant nodes within |
| 150 // that have z-indices of 0 or greater (auto will count as 0). | 151 // that have z-indices of 0 or greater (auto will count as 0). |
| 151 // m_negZOrderList holds descendants within our stacking context with | 152 // m_negZOrderList holds descendants within our stacking context with |
| 152 // negative z-indices. | 153 // negative z-indices. |
| 153 OwnPtr<Vector<DeprecatedPaintLayerStackingNode*>> m_posZOrderList; | 154 OwnPtr<Vector<DeprecatedPaintLayerStackingNode*>> m_posZOrderList; |
| 154 OwnPtr<Vector<DeprecatedPaintLayerStackingNode*>> m_negZOrderList; | 155 OwnPtr<Vector<DeprecatedPaintLayerStackingNode*>> m_negZOrderList; |
| 155 | 156 |
| 156 // This list contains child nodes that cannot create stacking contexts. | 157 // This list contains child nodes that cannot create stacking contexts. |
| 157 OwnPtr<Vector<DeprecatedPaintLayerStackingNode*>> m_normalFlowList; | 158 OwnPtr<Vector<DeprecatedPaintLayerStackingNode*>> m_normalFlowList; |
| (...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 209 | 210 |
| 210 private: | 211 private: |
| 211 DeprecatedPaintLayerStackingNode* m_stackingNode; | 212 DeprecatedPaintLayerStackingNode* m_stackingNode; |
| 212 bool m_previousMutationAllowedState; | 213 bool m_previousMutationAllowedState; |
| 213 }; | 214 }; |
| 214 #endif | 215 #endif |
| 215 | 216 |
| 216 } // namespace blink | 217 } // namespace blink |
| 217 | 218 |
| 218 #endif // DeprecatedPaintLayerStackingNode_h | 219 #endif // DeprecatedPaintLayerStackingNode_h |
| OLD | NEW |