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

Side by Side Diff: cc/trees/layer_tree_host_common_unittest.cc

Issue 1675963002: Move MaxScrollOffset to property_trees (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Remove comment. Created 4 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 unified diff | Download patch
« no previous file with comments | « cc/test/layer_tree_host_common_test.cc ('k') | cc/trees/layer_tree_host_impl_unittest.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2011 The Chromium Authors. All rights reserved. 1 // Copyright 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "cc/trees/layer_tree_host_common.h" 5 #include "cc/trees/layer_tree_host_common.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 8
9 #include <algorithm> 9 #include <algorithm>
10 #include <set> 10 #include <set>
(...skipping 9930 matching lines...) Expand 10 before | Expand all | Expand 10 after
9941 scroll_and_scale_set.ToProtobuf(&proto); 9941 scroll_and_scale_set.ToProtobuf(&proto);
9942 ScrollAndScaleSet new_scroll_and_scale_set; 9942 ScrollAndScaleSet new_scroll_and_scale_set;
9943 new_scroll_and_scale_set.FromProtobuf(proto); 9943 new_scroll_and_scale_set.FromProtobuf(proto);
9944 9944
9945 EXPECT_TRUE(scroll_and_scale_set.EqualsForTesting(new_scroll_and_scale_set)); 9945 EXPECT_TRUE(scroll_and_scale_set.EqualsForTesting(new_scroll_and_scale_set));
9946 } 9946 }
9947 9947
9948 TEST_F(LayerTreeHostCommonTest, ScrollTreeBuilderTest) { 9948 TEST_F(LayerTreeHostCommonTest, ScrollTreeBuilderTest) {
9949 // Test the behavior of scroll tree builder 9949 // Test the behavior of scroll tree builder
9950 // Topology: 9950 // Topology:
9951 // +root1(1) 9951 // +root1(1)[inner_viewport_container_layer]
9952 // +--parent2(2)[kHasBackgroundAttachmentFixedObjects|kScrollbarScrolling & 9952 // +-page_scale_layer
9953 // scrollable] 9953 // +----parent2(2)[kHasBackgroundAttachmentFixedObjects|kScrollbarScrolling &
9954 // +----child6(6)[kScrollbarScrolling] 9954 // scrollable, inner_viewport_scroll_layer]
9955 // +------grand_child10(10)[kScrollbarScrolling] 9955 // +------child6(6)[kScrollbarScrolling]
9956 // +--parent3(3) 9956 // +--------grand_child10(10)[kScrollbarScrolling]
9957 // +----child7(7)[scrollable] 9957 // +----parent3(3)
9958 // +----child8(8)[scroll_parent=7] 9958 // +------child7(7)[scrollable]
9959 // +------grand_child11(11)[scrollable] 9959 // +------child8(8)[scroll_parent=7]
9960 // +--parent4(4) 9960 // +--------grand_child11(11)[scrollable]
9961 // +----child9(9) 9961 // +----parent4(4)
9962 // +------grand_child12(12) 9962 // +------child9(9)
9963 // +--parent5(5)[contains_non_fast_scrollable_region] 9963 // +--------grand_child12(12)
9964 // +----parent5(5)[contains_non_fast_scrollable_region]
9964 // 9965 //
9965 // Expected scroll tree topology: 9966 // Expected scroll tree topology:
9966 // +property_tree_root---owner:-1 9967 // +property_tree_root---owner:-1
9967 // +--root---owner:1, id:1 9968 // +--root---owner:1, id:1
9968 // +----node---owner:2, id:2 9969 // +----node---owner:2, id:2
9969 // +------node---owner:6, id:3 9970 // +------node---owner:6, id:3
9970 // +----node---owner:7, id:4 9971 // +----node---owner:7, id:4
9971 // +------node---owner:11, id:5 9972 // +------node---owner:11, id:5
9972 // +----node---owner:5, id:6 9973 // +----node---owner:5, id:6
9973 // 9974 //
9974 // Extra check: 9975 // Extra check:
9975 // scroll_tree_index() of: 9976 // scroll_tree_index() of:
9976 // grand_child10:3 9977 // grand_child10:3
9977 // parent3:1 9978 // parent3:1
9978 // child8:4 9979 // child8:4
9979 // parent4:1 9980 // parent4:1
9980 // child9:1 9981 // child9:1
9981 // grand_child12:1 9982 // grand_child12:1
9982 scoped_refptr<Layer> root1 = Layer::Create(layer_settings()); 9983 scoped_refptr<Layer> root1 = Layer::Create(layer_settings());
9984 scoped_refptr<Layer> page_scale_layer = Layer::Create(layer_settings());
9983 scoped_refptr<Layer> parent2 = Layer::Create(layer_settings()); 9985 scoped_refptr<Layer> parent2 = Layer::Create(layer_settings());
9984 scoped_refptr<Layer> parent3 = Layer::Create(layer_settings()); 9986 scoped_refptr<Layer> parent3 = Layer::Create(layer_settings());
9985 scoped_refptr<Layer> parent4 = Layer::Create(layer_settings()); 9987 scoped_refptr<Layer> parent4 = Layer::Create(layer_settings());
9986 scoped_refptr<Layer> parent5 = Layer::Create(layer_settings()); 9988 scoped_refptr<Layer> parent5 = Layer::Create(layer_settings());
9987 scoped_refptr<Layer> child6 = Layer::Create(layer_settings()); 9989 scoped_refptr<Layer> child6 = Layer::Create(layer_settings());
9988 scoped_refptr<Layer> child7 = Layer::Create(layer_settings()); 9990 scoped_refptr<Layer> child7 = Layer::Create(layer_settings());
9989 scoped_refptr<Layer> child8 = Layer::Create(layer_settings()); 9991 scoped_refptr<Layer> child8 = Layer::Create(layer_settings());
9990 scoped_refptr<Layer> child9 = Layer::Create(layer_settings()); 9992 scoped_refptr<Layer> child9 = Layer::Create(layer_settings());
9991 scoped_refptr<Layer> grand_child10 = Layer::Create(layer_settings()); 9993 scoped_refptr<Layer> grand_child10 = Layer::Create(layer_settings());
9992 scoped_refptr<Layer> grand_child11 = Layer::Create(layer_settings()); 9994 scoped_refptr<Layer> grand_child11 = Layer::Create(layer_settings());
9993 scoped_refptr<Layer> grand_child12 = Layer::Create(layer_settings()); 9995 scoped_refptr<Layer> grand_child12 = Layer::Create(layer_settings());
9994 9996
9995 root1->AddChild(parent2); 9997 root1->AddChild(page_scale_layer);
9996 root1->AddChild(parent3); 9998 page_scale_layer->AddChild(parent2);
9997 root1->AddChild(parent4); 9999 page_scale_layer->AddChild(parent3);
9998 root1->AddChild(parent5); 10000 page_scale_layer->AddChild(parent4);
10001 page_scale_layer->AddChild(parent5);
9999 parent2->AddChild(child6); 10002 parent2->AddChild(child6);
10000 parent3->AddChild(child7); 10003 parent3->AddChild(child7);
10001 parent3->AddChild(child8); 10004 parent3->AddChild(child8);
10002 parent4->AddChild(child9); 10005 parent4->AddChild(child9);
10003 child6->AddChild(grand_child10); 10006 child6->AddChild(grand_child10);
10004 child8->AddChild(grand_child11); 10007 child8->AddChild(grand_child11);
10005 child9->AddChild(grand_child12); 10008 child9->AddChild(grand_child12);
10006 host()->SetRootLayer(root1); 10009 host()->SetRootLayer(root1);
10007 10010
10008 parent2->AddMainThreadScrollingReasons( 10011 parent2->AddMainThreadScrollingReasons(
10009 MainThreadScrollingReason::kHasBackgroundAttachmentFixedObjects); 10012 MainThreadScrollingReason::kHasBackgroundAttachmentFixedObjects);
10010 parent2->AddMainThreadScrollingReasons( 10013 parent2->AddMainThreadScrollingReasons(
10011 MainThreadScrollingReason::kScrollbarScrolling); 10014 MainThreadScrollingReason::kScrollbarScrolling);
10012 parent2->SetScrollClipLayerId(root1->id()); 10015 parent2->SetScrollClipLayerId(root1->id());
10013 child6->AddMainThreadScrollingReasons( 10016 child6->AddMainThreadScrollingReasons(
10014 MainThreadScrollingReason::kScrollbarScrolling); 10017 MainThreadScrollingReason::kScrollbarScrolling);
10015 grand_child10->AddMainThreadScrollingReasons( 10018 grand_child10->AddMainThreadScrollingReasons(
10016 MainThreadScrollingReason::kScrollbarScrolling); 10019 MainThreadScrollingReason::kScrollbarScrolling);
10017 10020
10018 child7->SetScrollClipLayerId(root1->id()); 10021 child7->SetScrollClipLayerId(parent3->id());
10022
10019 child8->SetScrollParent(child7.get()); 10023 child8->SetScrollParent(child7.get());
10020 grand_child11->SetScrollClipLayerId(root1->id()); 10024 grand_child11->SetScrollClipLayerId(parent3->id());
10021 10025
10022 parent5->SetNonFastScrollableRegion(gfx::Rect(0, 0, 50, 50)); 10026 parent5->SetNonFastScrollableRegion(gfx::Rect(0, 0, 50, 50));
10027 parent5->SetBounds(gfx::Size(10, 10));
10023 10028
10029 host()->RegisterViewportLayers(NULL, page_scale_layer, parent2, NULL);
10024 ExecuteCalculateDrawPropertiesWithPropertyTrees(root1.get()); 10030 ExecuteCalculateDrawPropertiesWithPropertyTrees(root1.get());
10025 10031
10026 const int kInvalidPropertyTreeNodeId = -1; 10032 const int kInvalidPropertyTreeNodeId = -1;
10027 const int kRootPropertyTreeNodeId = 0; 10033 const int kRootPropertyTreeNodeId = 0;
10028 10034
10029 // Property tree root 10035 // Property tree root
10030 ScrollTree scroll_tree = host()->property_trees()->scroll_tree; 10036 ScrollTree scroll_tree = host()->property_trees()->scroll_tree;
10031 ScrollTree expected_scroll_tree; 10037 ScrollTree expected_scroll_tree;
10032 ScrollNode* property_tree_root = expected_scroll_tree.Node(0); 10038 ScrollNode* property_tree_root = expected_scroll_tree.Node(0);
10033 property_tree_root->id = kRootPropertyTreeNodeId; 10039 property_tree_root->id = kRootPropertyTreeNodeId;
10034 property_tree_root->parent_id = kInvalidPropertyTreeNodeId; 10040 property_tree_root->parent_id = kInvalidPropertyTreeNodeId;
10035 property_tree_root->owner_id = kInvalidPropertyTreeNodeId; 10041 property_tree_root->owner_id = kInvalidPropertyTreeNodeId;
10036 property_tree_root->data.scrollable = false; 10042 property_tree_root->data.scrollable = false;
10037 property_tree_root->data.main_thread_scrolling_reasons = 10043 property_tree_root->data.main_thread_scrolling_reasons =
10038 MainThreadScrollingReason::kNotScrollingOnMain; 10044 MainThreadScrollingReason::kNotScrollingOnMain;
10039 property_tree_root->data.contains_non_fast_scrollable_region = false; 10045 property_tree_root->data.contains_non_fast_scrollable_region = false;
10040 property_tree_root->data.transform_id = kRootPropertyTreeNodeId;
10041 10046
10042 // The node owned by root1 10047 // The node owned by root1
10043 ScrollNode scroll_root1; 10048 ScrollNode scroll_root1;
10044 scroll_root1.id = 1; 10049 scroll_root1.id = 1;
10045 scroll_root1.owner_id = root1->id(); 10050 scroll_root1.owner_id = root1->id();
10046 scroll_root1.data.transform_id = root1->transform_tree_index();
10047 expected_scroll_tree.Insert(scroll_root1, 0); 10051 expected_scroll_tree.Insert(scroll_root1, 0);
10048 10052
10049 // The node owned by parent2 10053 // The node owned by parent2
10050 ScrollNode scroll_parent2; 10054 ScrollNode scroll_parent2;
10051 scroll_parent2.id = 2; 10055 scroll_parent2.id = 2;
10052 scroll_parent2.owner_id = parent2->id(); 10056 scroll_parent2.owner_id = parent2->id();
10053 scroll_parent2.data.scrollable = true; 10057 scroll_parent2.data.scrollable = true;
10054 scroll_parent2.data.main_thread_scrolling_reasons = 10058 scroll_parent2.data.main_thread_scrolling_reasons =
10055 parent2->main_thread_scrolling_reasons(); 10059 parent2->main_thread_scrolling_reasons();
10056 scroll_parent2.data.transform_id = parent2->transform_tree_index(); 10060 scroll_parent2.data.scroll_clip_layer_bounds = root1->bounds();
10061 scroll_parent2.data.bounds = parent2->bounds();
10062 scroll_parent2.data.max_scroll_offset_affected_by_page_scale = true;
10063 scroll_parent2.data.is_inner_viewport_scroll_layer = true;
10057 expected_scroll_tree.Insert(scroll_parent2, 1); 10064 expected_scroll_tree.Insert(scroll_parent2, 1);
10058 10065
10059 // The node owned by child6 10066 // The node owned by child6
10060 ScrollNode scroll_child6; 10067 ScrollNode scroll_child6;
10061 scroll_child6.id = 3; 10068 scroll_child6.id = 3;
10062 scroll_child6.owner_id = child6->id(); 10069 scroll_child6.owner_id = child6->id();
10063 scroll_child6.data.main_thread_scrolling_reasons = 10070 scroll_child6.data.main_thread_scrolling_reasons =
10064 child6->main_thread_scrolling_reasons(); 10071 child6->main_thread_scrolling_reasons();
10065 scroll_child6.data.transform_id = child6->transform_tree_index();
10066 expected_scroll_tree.Insert(scroll_child6, 2); 10072 expected_scroll_tree.Insert(scroll_child6, 2);
10067 10073
10068 // The node owned by child7, child7 also owns a transform node 10074 // The node owned by child7, child7 also owns a transform node
10069 ScrollNode scroll_child7; 10075 ScrollNode scroll_child7;
10070 scroll_child7.id = 4; 10076 scroll_child7.id = 4;
10071 scroll_child7.owner_id = child7->id(); 10077 scroll_child7.owner_id = child7->id();
10072 scroll_child7.data.scrollable = true; 10078 scroll_child7.data.scrollable = true;
10073 scroll_child7.data.transform_id = child7->transform_tree_index(); 10079 scroll_parent2.data.scroll_clip_layer_bounds = parent3->bounds();
10080 scroll_parent2.data.bounds = child7->bounds();
10074 expected_scroll_tree.Insert(scroll_child7, 1); 10081 expected_scroll_tree.Insert(scroll_child7, 1);
10075 10082
10076 // The node owned by grand_child11, grand_child11 also owns a transform node 10083 // The node owned by grand_child11, grand_child11 also owns a transform node
10077 ScrollNode scroll_grand_child11; 10084 ScrollNode scroll_grand_child11;
10078 scroll_grand_child11.id = 5; 10085 scroll_grand_child11.id = 5;
10079 scroll_grand_child11.owner_id = grand_child11->id(); 10086 scroll_grand_child11.owner_id = grand_child11->id();
10080 scroll_grand_child11.data.scrollable = true; 10087 scroll_grand_child11.data.scrollable = true;
10081 scroll_grand_child11.data.transform_id =
10082 grand_child11->transform_tree_index();
10083 expected_scroll_tree.Insert(scroll_grand_child11, 4); 10088 expected_scroll_tree.Insert(scroll_grand_child11, 4);
10084 10089
10085 // The node owned by parent5 10090 // The node owned by parent5
10086 ScrollNode scroll_parent5; 10091 ScrollNode scroll_parent5;
10087 scroll_parent5.id = 8; 10092 scroll_parent5.id = 8;
10088 scroll_parent5.owner_id = parent5->id(); 10093 scroll_parent5.owner_id = parent5->id();
10089 scroll_parent5.data.contains_non_fast_scrollable_region = true; 10094 scroll_parent5.data.contains_non_fast_scrollable_region = true;
10090 scroll_parent5.data.transform_id = parent5->transform_tree_index(); 10095 scroll_parent5.data.bounds = gfx::Size(10, 10);
10091 expected_scroll_tree.Insert(scroll_parent5, 1); 10096 expected_scroll_tree.Insert(scroll_parent5, 1);
10092 10097
10093 expected_scroll_tree.set_needs_update(false); 10098 expected_scroll_tree.set_needs_update(false);
10094 10099
10095 EXPECT_EQ(expected_scroll_tree, scroll_tree); 10100 EXPECT_EQ(expected_scroll_tree, scroll_tree);
10096 10101
10097 // Check other layers' scroll_tree_index 10102 // Check other layers' scroll_tree_index
10103 EXPECT_EQ(scroll_root1.id, page_scale_layer->scroll_tree_index());
10098 EXPECT_EQ(scroll_child6.id, grand_child10->scroll_tree_index()); 10104 EXPECT_EQ(scroll_child6.id, grand_child10->scroll_tree_index());
10099 EXPECT_EQ(scroll_root1.id, parent3->scroll_tree_index()); 10105 EXPECT_EQ(scroll_root1.id, parent3->scroll_tree_index());
10100 EXPECT_EQ(scroll_child7.id, child8->scroll_tree_index()); 10106 EXPECT_EQ(scroll_child7.id, child8->scroll_tree_index());
10101 EXPECT_EQ(scroll_root1.id, parent4->scroll_tree_index()); 10107 EXPECT_EQ(scroll_root1.id, parent4->scroll_tree_index());
10102 EXPECT_EQ(scroll_root1.id, child9->scroll_tree_index()); 10108 EXPECT_EQ(scroll_root1.id, child9->scroll_tree_index());
10103 EXPECT_EQ(scroll_root1.id, grand_child12->scroll_tree_index()); 10109 EXPECT_EQ(scroll_root1.id, grand_child12->scroll_tree_index());
10104 } 10110 }
10105 10111
10106 } // namespace 10112 } // namespace
10107 } // namespace cc 10113 } // namespace cc
OLDNEW
« no previous file with comments | « cc/test/layer_tree_host_common_test.cc ('k') | cc/trees/layer_tree_host_impl_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698