| Index: cc/trees/layer_tree_host_impl.cc
|
| diff --git a/cc/trees/layer_tree_host_impl.cc b/cc/trees/layer_tree_host_impl.cc
|
| index 9d01bd653cb692523f0cfccf3bcc9f098ad0f097..27584765da4fabb8edcdd4d765da2c4ff82a6d87 100644
|
| --- a/cc/trees/layer_tree_host_impl.cc
|
| +++ b/cc/trees/layer_tree_host_impl.cc
|
| @@ -3894,14 +3894,13 @@ void LayerTreeHostImpl::SetTreeLayerFilterMutated(
|
| if (!tree)
|
| return;
|
|
|
| - const int layer_id = tree->LayerIdByElementId(element_id);
|
| - DCHECK(tree->property_trees()->IsInIdToIndexMap(
|
| - PropertyTrees::TreeType::EFFECT, layer_id));
|
| - const int effect_id =
|
| - tree->property_trees()->effect_id_to_index_map[layer_id];
|
| - if (effect_id != EffectTree::kInvalidNodeId)
|
| - tree->property_trees()->effect_tree.OnFilterAnimated(filters, effect_id,
|
| - tree);
|
| + PropertyTrees* property_trees = tree->property_trees();
|
| + DCHECK_EQ(1u,
|
| + property_trees->element_id_to_effect_node_index.count(element_id));
|
| + const int effect_node_index =
|
| + property_trees->element_id_to_effect_node_index[element_id];
|
| + property_trees->effect_tree.OnFilterAnimated(filters, effect_node_index,
|
| + tree);
|
| }
|
|
|
| void LayerTreeHostImpl::SetTreeLayerOpacityMutated(ElementId element_id,
|
| @@ -3910,14 +3909,13 @@ void LayerTreeHostImpl::SetTreeLayerOpacityMutated(ElementId element_id,
|
| if (!tree)
|
| return;
|
|
|
| - const int layer_id = tree->LayerIdByElementId(element_id);
|
| - DCHECK(tree->property_trees()->IsInIdToIndexMap(
|
| - PropertyTrees::TreeType::EFFECT, layer_id));
|
| - const int effect_id =
|
| - tree->property_trees()->effect_id_to_index_map[layer_id];
|
| - if (effect_id != EffectTree::kInvalidNodeId)
|
| - tree->property_trees()->effect_tree.OnOpacityAnimated(opacity, effect_id,
|
| - tree);
|
| + PropertyTrees* property_trees = tree->property_trees();
|
| + DCHECK_EQ(1u,
|
| + property_trees->element_id_to_effect_node_index.count(element_id));
|
| + const int effect_node_index =
|
| + property_trees->element_id_to_effect_node_index[element_id];
|
| + property_trees->effect_tree.OnOpacityAnimated(opacity, effect_node_index,
|
| + tree);
|
| }
|
|
|
| void LayerTreeHostImpl::SetTreeLayerTransformMutated(
|
| @@ -3927,16 +3925,14 @@ void LayerTreeHostImpl::SetTreeLayerTransformMutated(
|
| if (!tree)
|
| return;
|
|
|
| - const int layer_id = tree->LayerIdByElementId(element_id);
|
| - DCHECK(tree->property_trees()->IsInIdToIndexMap(
|
| - PropertyTrees::TreeType::TRANSFORM, layer_id));
|
| - const int transform_id =
|
| - tree->property_trees()->transform_id_to_index_map[layer_id];
|
| - if (transform_id != TransformTree::kInvalidNodeId)
|
| - tree->property_trees()->transform_tree.OnTransformAnimated(
|
| - transform, transform_id, tree);
|
| - LayerImpl* layer = tree->LayerById(layer_id);
|
| - if (layer)
|
| + PropertyTrees* property_trees = tree->property_trees();
|
| + DCHECK_EQ(
|
| + 1u, property_trees->element_id_to_transform_node_index.count(element_id));
|
| + const int transform_node_index =
|
| + property_trees->element_id_to_transform_node_index[element_id];
|
| + property_trees->transform_tree.OnTransformAnimated(
|
| + transform, transform_node_index, tree);
|
| + if (LayerImpl* layer = tree->LayerByElementId(element_id))
|
| layer->set_was_ever_ready_since_last_transform_animation(false);
|
| }
|
|
|
| @@ -3948,18 +3944,20 @@ void LayerTreeHostImpl::SetTreeLayerScrollOffsetMutated(
|
| return;
|
|
|
| const int layer_id = tree->LayerIdByElementId(element_id);
|
| - DCHECK(tree->property_trees()->IsInIdToIndexMap(
|
| - PropertyTrees::TreeType::TRANSFORM, layer_id));
|
| - DCHECK(tree->property_trees()->IsInIdToIndexMap(
|
| - PropertyTrees::TreeType::SCROLL, layer_id));
|
| - const int transform_id =
|
| - tree->property_trees()->transform_id_to_index_map[layer_id];
|
| - const int scroll_id =
|
| - tree->property_trees()->scroll_id_to_index_map[layer_id];
|
| - if (transform_id != TransformTree::kInvalidNodeId &&
|
| - scroll_id != ScrollTree::kInvalidNodeId) {
|
| - tree->property_trees()->scroll_tree.OnScrollOffsetAnimated(
|
| - layer_id, transform_id, scroll_id, scroll_offset, tree);
|
| + PropertyTrees* property_trees = tree->property_trees();
|
| + DCHECK(property_trees->IsInIdToIndexMap(PropertyTrees::TreeType::SCROLL,
|
| + layer_id));
|
| + DCHECK_EQ(
|
| + 1u, property_trees->element_id_to_transform_node_index.count(element_id));
|
| + int transform_node_index =
|
| + property_trees->element_id_to_transform_node_index[element_id];
|
| + // TODO(wkorman): Build map from element id to scroll node in property tree
|
| + // builder and make use of it below.
|
| + const int scroll_node_index =
|
| + property_trees->scroll_id_to_index_map[layer_id];
|
| + if (scroll_node_index != ScrollTree::kInvalidNodeId) {
|
| + property_trees->scroll_tree.OnScrollOffsetAnimated(
|
| + layer_id, transform_node_index, scroll_node_index, scroll_offset, tree);
|
| // Run mutation callbacks to respond to updated scroll offset.
|
| Mutate(CurrentBeginFrameArgs().frame_time);
|
| }
|
|
|