Index: third_party/WebKit/Source/core/layout/LayoutBoxModelObject.cpp |
diff --git a/third_party/WebKit/Source/core/layout/LayoutBoxModelObject.cpp b/third_party/WebKit/Source/core/layout/LayoutBoxModelObject.cpp |
index b79d4d6bbb6958acc35faf9942a375174d0ed3c5..d21deb7083ce948b52ed4c1c716110006c4f8910 100644 |
--- a/third_party/WebKit/Source/core/layout/LayoutBoxModelObject.cpp |
+++ b/third_party/WebKit/Source/core/layout/LayoutBoxModelObject.cpp |
@@ -747,7 +747,7 @@ LayoutSize LayoutBoxModelObject::stickyPositionOffset() const |
return LayoutSize(scrollableArea->stickyConstraintsMap().get(layer()).computeStickyOffset(constrainingRect)); |
} |
-LayoutPoint LayoutBoxModelObject::adjustedPositionRelativeToOffsetParent(const LayoutPoint& startPoint) const |
+LayoutPoint LayoutBoxModelObject::adjustedPositionRelativeTo(const LayoutPoint& startPoint, const Element* element) const |
{ |
// If the element is the HTML body element or doesn't have a parent |
// return 0 and stop this algorithm. |
@@ -757,10 +757,8 @@ LayoutPoint LayoutBoxModelObject::adjustedPositionRelativeToOffsetParent(const L |
LayoutPoint referencePoint = startPoint; |
referencePoint.move(parent()->columnOffset(referencePoint)); |
- // If the offsetParent of the element is null, or is the HTML body element, |
- // return the distance between the canvas origin and the left border edge |
- // of the element and stop this algorithm. |
- Element* element = offsetParent(); |
+ // If the base element is null, return the distance between the canvas origin and |
+ // the left border edge of the element and stop this algorithm. |
if (!element) |
return referencePoint; |
@@ -800,28 +798,28 @@ LayoutSize LayoutBoxModelObject::offsetForInFlowPosition() const |
return LayoutSize(); |
} |
-LayoutUnit LayoutBoxModelObject::offsetLeft() const |
+LayoutUnit LayoutBoxModelObject::offsetLeft(const Element* parent) const |
{ |
// Note that LayoutInline and LayoutBox override this to pass a different |
- // startPoint to adjustedPositionRelativeToOffsetParent. |
- return adjustedPositionRelativeToOffsetParent(LayoutPoint()).x(); |
+ // startPoint to adjustedPositionRelativeTo. |
+ return adjustedPositionRelativeTo(LayoutPoint(), parent).x(); |
} |
-LayoutUnit LayoutBoxModelObject::offsetTop() const |
+LayoutUnit LayoutBoxModelObject::offsetTop(const Element* parent) const |
{ |
// Note that LayoutInline and LayoutBox override this to pass a different |
- // startPoint to adjustedPositionRelativeToOffsetParent. |
- return adjustedPositionRelativeToOffsetParent(LayoutPoint()).y(); |
+ // startPoint to adjustedPositionRelativeTo. |
+ return adjustedPositionRelativeTo(LayoutPoint(), parent).y(); |
} |
-int LayoutBoxModelObject::pixelSnappedOffsetWidth() const |
+int LayoutBoxModelObject::pixelSnappedOffsetWidth(const Element* parent) const |
{ |
- return snapSizeToPixel(offsetWidth(), offsetLeft()); |
+ return snapSizeToPixel(offsetWidth(), offsetLeft(parent)); |
} |
-int LayoutBoxModelObject::pixelSnappedOffsetHeight() const |
+int LayoutBoxModelObject::pixelSnappedOffsetHeight(const Element* parent) const |
{ |
- return snapSizeToPixel(offsetHeight(), offsetTop()); |
+ return snapSizeToPixel(offsetHeight(), offsetTop(parent)); |
} |
LayoutUnit LayoutBoxModelObject::computedCSSPadding(const Length& padding) const |