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 3f7a58cdc7346e28159fd34c773fd4ea38c416e9..540edb7ca137c11d4ae8dc3bdf9831b81c603d02 100644 |
--- a/third_party/WebKit/Source/core/layout/compositing/CompositedLayerMapping.cpp |
+++ b/third_party/WebKit/Source/core/layout/compositing/CompositedLayerMapping.cpp |
@@ -316,8 +316,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( |