| Index: third_party/WebKit/Source/core/layout/compositing/CompositedLayerMapping.cpp
|
| diff --git a/third_party/WebKit/Source/core/layout/compositing/CompositedLayerMapping.cpp b/third_party/WebKit/Source/core/layout/compositing/CompositedLayerMapping.cpp
|
| index c438cf02eb89b27ee507e657c12a2d6998906d3c..c4210b99139b9e7b071bcc5690ddbb2513571847 100644
|
| --- a/third_party/WebKit/Source/core/layout/compositing/CompositedLayerMapping.cpp
|
| +++ b/third_party/WebKit/Source/core/layout/compositing/CompositedLayerMapping.cpp
|
| @@ -317,8 +317,16 @@ void CompositedLayerMapping::UpdateStickyConstraints(
|
| // The enclosing layers offset returned from |convertToLayerCoords| must be
|
| // adjusted for both scroll and ancestor sticky elements.
|
| LayoutPoint enclosing_layer_offset;
|
| - compositing_container->ConvertToLayerCoords(ancestor_overflow_layer,
|
| - enclosing_layer_offset);
|
| + // The offset from the compositing_container to the ancestor_overflow_layer
|
| + // when we have a scroll parent is computed by the source_to_parent vector
|
| + // on the transform node.
|
| + // TODO(yigu): Eventually we want to remove the dependancy of
|
| + // source_to_parent from StickyPositionOffset in property_tree.cc.
|
| + if (!ScrollParent()) {
|
| + compositing_container->ConvertToLayerCoords(ancestor_overflow_layer,
|
| + enclosing_layer_offset);
|
| + }
|
| +
|
| DCHECK(!ScrollParent() || ScrollParent() == ancestor_overflow_layer);
|
| if (!ScrollParent() && compositing_container != ancestor_overflow_layer) {
|
| enclosing_layer_offset += LayoutSize(
|
| @@ -338,7 +346,9 @@ void CompositedLayerMapping::UpdateStickyConstraints(
|
| FloatPoint(-enclosing_layer_offset) -
|
| FloatSize(ContentOffsetInCompositingLayer()));
|
|
|
| - if (compositing_container != ancestor_overflow_layer) {
|
| + // When we have a scroll parent, the content offset is computed by
|
| + // source_offset on the transform node.
|
| + if (!ScrollParent() && compositing_container != ancestor_overflow_layer) {
|
| parent_relative_sticky_box_offset.MoveBy(
|
| FloatPoint(compositing_container->GetCompositedLayerMapping()
|
| ->ContentOffsetInCompositingLayer()));
|
|
|