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

Unified Diff: cc/trees/layer_tree_impl.cc

Issue 2729253003: Make LayerTreeImpl::SetCurrentlyScrollingNode use element ids over layer ids (Closed)
Patch Set: Created 3 years, 10 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
Index: cc/trees/layer_tree_impl.cc
diff --git a/cc/trees/layer_tree_impl.cc b/cc/trees/layer_tree_impl.cc
index f694b09eb3ca73fe23544b5580dfee764a8898f2..fa6f8add9f3a85eb5e83e5dc305686c9d73844b5 100644
--- a/cc/trees/layer_tree_impl.cc
+++ b/cc/trees/layer_tree_impl.cc
@@ -668,17 +668,28 @@ void LayerTreeImpl::SetCurrentlyScrollingNode(ScrollNode* node) {
ScrollTree& scroll_tree = property_trees()->scroll_tree;
ScrollNode* old_node = scroll_tree.CurrentlyScrollingNode();
- // TODO(pdr): Refactor these to not use owning_layer_id.
+
+ ElementId old_element_id = old_node ? old_node->element_id : ElementId();
+ ElementId new_element_id = node ? node->element_id : ElementId();
+
+#if DCHECK_IS_ON()
int old_layer_id = old_node ? old_node->owning_layer_id : Layer::INVALID_ID;
int new_layer_id = node ? node->owning_layer_id : Layer::INVALID_ID;
+ DCHECK(old_layer_id == LayerIdByElementId(old_element_id));
+ DCHECK(new_layer_id == LayerIdByElementId(new_element_id));
+#endif
- if (old_layer_id == new_layer_id)
+ if (old_element_id == new_element_id)
return;
+ // TODO(pdr): Make the scrollbar animation controller lookup based on
+ // element ids instead of layer ids.
ScrollbarAnimationController* old_animation_controller =
- layer_tree_host_impl_->ScrollbarAnimationControllerForId(old_layer_id);
+ layer_tree_host_impl_->ScrollbarAnimationControllerForId(
+ LayerIdByElementId(old_element_id));
ScrollbarAnimationController* new_animation_controller =
- layer_tree_host_impl_->ScrollbarAnimationControllerForId(new_layer_id);
+ layer_tree_host_impl_->ScrollbarAnimationControllerForId(
+ LayerIdByElementId(new_element_id));
if (old_animation_controller)
old_animation_controller->DidScrollEnd();
« cc/trees/layer_tree_host_impl_unittest.cc ('K') | « cc/trees/layer_tree_host_unittest_scroll.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698