Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(964)

Unified Diff: cc/trees/property_tree_builder.cc

Issue 2623313003: Add map from element id to scroll node index. (Closed)
Patch Set: Sync to head. Created 3 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « cc/trees/property_tree.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: cc/trees/property_tree_builder.cc
diff --git a/cc/trees/property_tree_builder.cc b/cc/trees/property_tree_builder.cc
index 763d50016bbe63119fb5fe2117a6b327cdf3b23f..1e6cb28607bfe429b8dcd044ed9608abe7bd11b3 100644
--- a/cc/trees/property_tree_builder.cc
+++ b/cc/trees/property_tree_builder.cc
@@ -1158,8 +1158,10 @@ void AddScrollNodeIfNeeded(
data_from_ancestor
.scroll_tree_parent_created_by_uninheritable_criteria));
+ int node_id;
if (!requires_node) {
- data_for_children->scroll_tree_parent = parent_id;
+ node_id = parent_id;
+ data_for_children->scroll_tree_parent = node_id;
} else {
ScrollNode node;
node.owning_layer_id = layer->id();
@@ -1194,15 +1196,21 @@ void AddScrollNodeIfNeeded(
node.transform_id =
data_for_children->transform_tree_parent->transform_tree_index();
- data_for_children->scroll_tree_parent =
+ node_id =
data_for_children->property_trees->scroll_tree.Insert(node, parent_id);
+ data_for_children->scroll_tree_parent = node_id;
data_for_children->main_thread_scrolling_reasons =
node.main_thread_scrolling_reasons;
data_for_children->scroll_tree_parent_created_by_uninheritable_criteria =
scroll_node_uninheritable_criteria;
data_for_children->property_trees
- ->layer_id_to_scroll_node_index[layer->id()] =
- data_for_children->scroll_tree_parent;
+ ->layer_id_to_scroll_node_index[layer->id()] = node_id;
+ // For animation subsystem purposes, if this layer has a compositor element
+ // id, we build a map from that id to this scroll node.
+ if (layer->element_id()) {
+ data_for_children->property_trees
+ ->element_id_to_scroll_node_index[layer->element_id()] = node_id;
+ }
if (node.scrollable) {
data_for_children->property_trees->scroll_tree.SetBaseScrollOffset(
@@ -1210,7 +1218,7 @@ void AddScrollNodeIfNeeded(
}
}
- layer->SetScrollTreeIndex(data_for_children->scroll_tree_parent);
+ layer->SetScrollTreeIndex(node_id);
}
template <typename LayerType>
« no previous file with comments | « cc/trees/property_tree.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698