| Index: cc/trees/draw_property_utils.cc
|
| diff --git a/cc/trees/draw_property_utils.cc b/cc/trees/draw_property_utils.cc
|
| index 4dde99d6ac9ee6aebf98ffabd0b380b71dad764c..e0b40d8c3b9d0108d775dc82c3b2bd14c70d746b 100644
|
| --- a/cc/trees/draw_property_utils.cc
|
| +++ b/cc/trees/draw_property_utils.cc
|
| @@ -1438,16 +1438,21 @@ static void UpdateElasticOverscrollInternal(
|
| const LayerType* overscroll_elasticity_layer,
|
| const gfx::Vector2dF& elastic_overscroll) {
|
| if (!overscroll_elasticity_layer) {
|
| - DCHECK(elastic_overscroll.IsZero());
|
| + // When only the viewport has elasticity, elastic_overscroll should be zero
|
| + // here, but for now elasticity doesn't bubble up, only down. So, that won't
|
| + // be the case if a sublayer has its own overscroll.
|
| + // TODO(tapted): Give the viewport overscroll and completely remove
|
| + // overscroll_elasticity_layer.
|
| return;
|
| }
|
|
|
| TransformNode* node = property_trees->transform_tree.Node(
|
| overscroll_elasticity_layer->transform_tree_index());
|
| - if (node->scroll_offset == gfx::ScrollOffset(elastic_overscroll))
|
| + if (node->scroll_offset_with_overscroll ==
|
| + gfx::ScrollOffset(elastic_overscroll))
|
| return;
|
|
|
| - node->scroll_offset = gfx::ScrollOffset(elastic_overscroll);
|
| + node->scroll_offset_with_overscroll = gfx::ScrollOffset(elastic_overscroll);
|
| node->needs_local_transform_update = true;
|
| property_trees->transform_tree.set_needs_update(true);
|
| }
|
|
|