| Index: cc/trees/property_tree_builder.cc
|
| diff --git a/cc/trees/property_tree_builder.cc b/cc/trees/property_tree_builder.cc
|
| index 8a47496ed92a00e651793897adcb9f8144641271..d30308c857e27e5ca70868a883acab450bde77c3 100644
|
| --- a/cc/trees/property_tree_builder.cc
|
| +++ b/cc/trees/property_tree_builder.cc
|
| @@ -758,10 +758,36 @@ bool AddTransformNodeIfNeeded(
|
| .AddNodeAffectedByOuterViewportBoundsDelta(node->id);
|
| }
|
| }
|
| + // TODO(smcgruer): Pass main thread sticky-shifting offsets of
|
| + // non-promoted ancestors, or promote all ancestor sticky elements.
|
| + // See http://crbug.com/702229
|
| sticky_data->main_thread_offset =
|
| layer->position().OffsetFromOrigin() -
|
| sticky_data->constraints.parent_relative_sticky_box_offset
|
| .OffsetFromOrigin();
|
| +
|
| + // Copy the ancestor nodes for later use. These layers are guaranteed to
|
| + // have transform nodes at this point because they are our ancestors (so
|
| + // have already been processed) and are sticky (so have transform nodes).
|
| + int shifting_sticky_box_layer_id =
|
| + sticky_data->constraints.nearest_layer_shifting_sticky_box;
|
| + if (shifting_sticky_box_layer_id != Layer::INVALID_ID) {
|
| + sticky_data->nearest_node_shifting_sticky_box =
|
| + data_for_children->property_trees->transform_tree
|
| + .FindNodeIndexFromOwningLayerId(shifting_sticky_box_layer_id);
|
| + DCHECK(sticky_data->nearest_node_shifting_sticky_box !=
|
| + TransformTree::kInvalidNodeId);
|
| + }
|
| + int shifting_containing_block_layer_id =
|
| + sticky_data->constraints.nearest_layer_shifting_containing_block;
|
| + if (shifting_containing_block_layer_id != Layer::INVALID_ID) {
|
| + sticky_data->nearest_node_shifting_containing_block =
|
| + data_for_children->property_trees->transform_tree
|
| + .FindNodeIndexFromOwningLayerId(
|
| + shifting_containing_block_layer_id);
|
| + DCHECK(sticky_data->nearest_node_shifting_containing_block !=
|
| + TransformTree::kInvalidNodeId);
|
| + }
|
| }
|
|
|
| node->needs_local_transform_update = true;
|
|
|