Chromium Code Reviews| 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 121 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 132 | 132 |
| 133 const DeprecatedPaintLayer* root() const | 133 const DeprecatedPaintLayer* root() const |
| 134 { | 134 { |
| 135 const DeprecatedPaintLayer* curr = this; | 135 const DeprecatedPaintLayer* curr = this; |
| 136 while (curr->parent()) | 136 while (curr->parent()) |
| 137 curr = curr->parent(); | 137 curr = curr->parent(); |
| 138 return curr; | 138 return curr; |
| 139 } | 139 } |
| 140 | 140 |
| 141 const LayoutPoint& location() const { ASSERT(!m_needsPositionUpdate); return m_location; } | 141 const LayoutPoint& location() const { ASSERT(!m_needsPositionUpdate); return m_location; } |
| 142 // Note: This function is only needed during the transition period to SPv2. | |
| 143 // Once we have eliminated layer-based hit testing and clipping, | |
| 144 // we can cache the unscrolled location instead. | |
| 145 LayoutPoint locationSansOverflowScroll() const; | |
|
pdr.
2015/08/25 20:47:55
Super nit: locationWithoutOverflowScroll.
trchen
2015/08/26 07:39:04
Acknowledged. Probably will de-dupe the function a
| |
| 142 // FIXME: size() should ASSERT(!m_needsPositionUpdate) as well, but that fai ls in some tests, | 146 // FIXME: size() should ASSERT(!m_needsPositionUpdate) as well, but that fai ls in some tests, |
| 143 // for example, fast/repaint/clipped-relative.html. | 147 // for example, fast/repaint/clipped-relative.html. |
| 144 const IntSize& size() const { return m_size; } | 148 const IntSize& size() const { return m_size; } |
| 145 void setSizeHackForLayoutTreeAsText(const IntSize& size) { m_size = size; } | 149 void setSizeHackForLayoutTreeAsText(const IntSize& size) { m_size = size; } |
| 146 | 150 |
| 147 LayoutRect rect() const { return LayoutRect(location(), LayoutSize(size())); } | 151 LayoutRect rect() const { return LayoutRect(location(), LayoutSize(size())); } |
| 148 | 152 |
| 149 bool isRootLayer() const { return m_isRootLayer; } | 153 bool isRootLayer() const { return m_isRootLayer; } |
| 150 | 154 |
| 151 DeprecatedPaintLayerCompositor* compositor() const; | 155 DeprecatedPaintLayerCompositor* compositor() const; |
| (...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 217 | 221 |
| 218 bool hasAncestorWithFilterOutsets() const; | 222 bool hasAncestorWithFilterOutsets() const; |
| 219 | 223 |
| 220 bool canUseConvertToLayerCoords() const | 224 bool canUseConvertToLayerCoords() const |
| 221 { | 225 { |
| 222 // These LayoutObjects have an impact on their layers without the layout Objects knowing about it. | 226 // These LayoutObjects have an impact on their layers without the layout Objects knowing about it. |
| 223 return !layoutObject()->hasTransformRelatedProperty() && !layoutObject() ->isSVGRoot(); | 227 return !layoutObject()->hasTransformRelatedProperty() && !layoutObject() ->isSVGRoot(); |
| 224 } | 228 } |
| 225 | 229 |
| 226 void convertToLayerCoords(const DeprecatedPaintLayer* ancestorLayer, LayoutP oint&) const; | 230 void convertToLayerCoords(const DeprecatedPaintLayer* ancestorLayer, LayoutP oint&) const; |
| 231 void convertToLayerCoordsSansOverflowScroll(const DeprecatedPaintLayer* ance storLayer, LayoutPoint&) const; | |
| 227 void convertToLayerCoords(const DeprecatedPaintLayer* ancestorLayer, LayoutR ect&) const; | 232 void convertToLayerCoords(const DeprecatedPaintLayer* ancestorLayer, LayoutR ect&) const; |
| 228 | 233 |
| 229 // Does the same as convertToLayerCoords() when not in multicol. For multico l, however, | 234 // Does the same as convertToLayerCoords() when not in multicol. For multico l, however, |
| 230 // convertToLayerCoords() calculates the offset in flow-thread coordinates ( what the layout | 235 // convertToLayerCoords() calculates the offset in flow-thread coordinates ( what the layout |
| 231 // engine uses internally), while this method calculates the visual coordina tes; i.e. it figures | 236 // engine uses internally), while this method calculates the visual coordina tes; i.e. it figures |
| 232 // out which column the layer starts in and adds in the offset. See | 237 // out which column the layer starts in and adds in the offset. See |
| 233 // http://www.chromium.org/developers/design-documents/multi-column-layout f or more info. | 238 // http://www.chromium.org/developers/design-documents/multi-column-layout f or more info. |
| 234 LayoutPoint visualOffsetFromAncestor(const DeprecatedPaintLayer* ancestorLay er) const; | 239 LayoutPoint visualOffsetFromAncestor(const DeprecatedPaintLayer* ancestorLay er) const; |
| 235 | 240 |
| 236 // The hitTest() method looks for mouse events by walking layers that inters ect the point from front to back. | 241 // The hitTest() method looks for mouse events by walking layers that inters ect the point from front to back. |
| 237 bool hitTest(HitTestResult&); | 242 bool hitTest(HitTestResult&); |
| 238 | 243 |
| 239 // Pass offsetFromRoot if known. | 244 // Pass offsetFromRoot if known. |
| 240 bool intersectsDamageRect(const LayoutRect& layerBounds, const LayoutRect& d amageRect, const DeprecatedPaintLayer* rootLayer, const LayoutPoint* offsetFromR oot = 0) const; | 245 bool intersectsDamageRect(const LayoutRect& layerBounds, const LayoutRect& d amageRect, const DeprecatedPaintLayer* rootLayer, const LayoutPoint* offsetFromR oot = 0) const; |
| 241 | 246 |
| 242 // Bounding box relative to some ancestor layer. Pass offsetFromRoot if know n. | 247 // Bounding box relative to some ancestor layer. Pass offsetFromRoot if know n. |
| 243 LayoutRect physicalBoundingBox(const DeprecatedPaintLayer* ancestorLayer, co nst LayoutPoint* offsetFromRoot = 0) const; | 248 LayoutRect physicalBoundingBox(const DeprecatedPaintLayer* ancestorLayer, co nst LayoutPoint* offsetFromRoot = 0) const; |
| 244 LayoutRect physicalBoundingBoxIncludingReflectionAndStackingChildren(const D eprecatedPaintLayer* ancestorLayer, const LayoutPoint& offsetFromRoot) const; | 249 LayoutRect physicalBoundingBoxIncludingReflectionAndStackingChildren(const L ayoutPoint& offsetFromRoot) const; |
| 245 LayoutRect fragmentsBoundingBox(const DeprecatedPaintLayer* ancestorLayer) c onst; | 250 LayoutRect fragmentsBoundingBox(const DeprecatedPaintLayer* ancestorLayer) c onst; |
| 246 | 251 |
| 247 LayoutRect boundingBoxForCompositingOverlapTest() const; | 252 LayoutRect boundingBoxForCompositingOverlapTest() const; |
| 248 | 253 |
| 249 // If true, this layer's children are included in its bounds for overlap tes ting. | 254 // If true, this layer's children are included in its bounds for overlap tes ting. |
| 250 // We can't rely on the children's positions if this layer has a filter that could have moved the children's pixels around. | 255 // We can't rely on the children's positions if this layer has a filter that could have moved the children's pixels around. |
| 251 bool overlapBoundsIncludeChildren() const { return hasFilter() && layoutObje ct()->style()->filter().hasFilterThatMovesPixels(); } | 256 bool overlapBoundsIncludeChildren() const { return hasFilter() && layoutObje ct()->style()->filter().hasFilterThatMovesPixels(); } |
| 252 | 257 |
| 253 enum CalculateBoundsOptions { | 258 enum CalculateBoundsOptions { |
| 254 ApplyBoundsChickenEggHacks, | 259 ApplyBoundsChickenEggHacks, |
| (...skipping 464 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 719 | 724 |
| 720 } // namespace blink | 725 } // namespace blink |
| 721 | 726 |
| 722 #ifndef NDEBUG | 727 #ifndef NDEBUG |
| 723 // Outside the WebCore namespace for ease of invocation from gdb. | 728 // Outside the WebCore namespace for ease of invocation from gdb. |
| 724 void showLayerTree(const blink::DeprecatedPaintLayer*); | 729 void showLayerTree(const blink::DeprecatedPaintLayer*); |
| 725 void showLayerTree(const blink::LayoutObject*); | 730 void showLayerTree(const blink::LayoutObject*); |
| 726 #endif | 731 #endif |
| 727 | 732 |
| 728 #endif // Layer_h | 733 #endif // Layer_h |
| OLD | NEW |