Index: cc/layers/layer_impl_unittest.cc |
diff --git a/cc/layers/layer_impl_unittest.cc b/cc/layers/layer_impl_unittest.cc |
index 1dc36dd32ce2fb8d2e6af9ea1b0feaeb8a0e168e..f38809f309927447c09750672d468eb1147718d4 100644 |
--- a/cc/layers/layer_impl_unittest.cc |
+++ b/cc/layers/layer_impl_unittest.cc |
@@ -94,32 +94,28 @@ |
FakeImplProxy proxy; |
FakeLayerTreeHostImpl host_impl(&proxy); |
EXPECT_TRUE(host_impl.InitializeRenderer(CreateFakeOutputSurface())); |
- scoped_ptr<LayerImpl> root_clip = |
- LayerImpl::Create(host_impl.active_tree(), 1); |
- scoped_ptr<LayerImpl> root_ptr = |
+ scoped_ptr<LayerImpl> root = LayerImpl::Create(host_impl.active_tree(), 1); |
+ |
+ scoped_ptr<LayerImpl> scroll_parent = |
LayerImpl::Create(host_impl.active_tree(), 2); |
- LayerImpl* root = root_ptr.get(); |
- root_clip->AddChild(root_ptr.Pass()); |
- scoped_ptr<LayerImpl> scroll_parent = |
- LayerImpl::Create(host_impl.active_tree(), 3); |
- LayerImpl* scroll_child = LayerImpl::Create(host_impl.active_tree(), 4).get(); |
+ LayerImpl* scroll_child = LayerImpl::Create(host_impl.active_tree(), 3).get(); |
std::set<LayerImpl*>* scroll_children = new std::set<LayerImpl*>(); |
scroll_children->insert(scroll_child); |
- scroll_children->insert(root); |
+ scroll_children->insert(root.get()); |
scoped_ptr<LayerImpl> clip_parent = |
- LayerImpl::Create(host_impl.active_tree(), 5); |
- LayerImpl* clip_child = LayerImpl::Create(host_impl.active_tree(), 6).get(); |
+ LayerImpl::Create(host_impl.active_tree(), 4); |
+ LayerImpl* clip_child = LayerImpl::Create(host_impl.active_tree(), 5).get(); |
std::set<LayerImpl*>* clip_children = new std::set<LayerImpl*>(); |
clip_children->insert(clip_child); |
- clip_children->insert(root); |
- |
- root->AddChild(LayerImpl::Create(host_impl.active_tree(), 7)); |
+ clip_children->insert(root.get()); |
+ |
+ root->AddChild(LayerImpl::Create(host_impl.active_tree(), 6)); |
LayerImpl* child = root->children()[0]; |
- child->AddChild(LayerImpl::Create(host_impl.active_tree(), 8)); |
+ child->AddChild(LayerImpl::Create(host_impl.active_tree(), 7)); |
LayerImpl* grand_child = child->children()[0]; |
- root->SetScrollClipLayer(root_clip->id()); |
+ root->SetScrollable(true); |
// Adding children is an internal operation and should not mark layers as |
// changed. |
@@ -146,7 +142,8 @@ |
// they are used. |
EXECUTE_AND_VERIFY_NEEDS_PUSH_PROPERTIES_AND_SUBTREE_DID_NOT_CHANGE( |
root->SetUpdateRect(arbitrary_rect_f)); |
- EXECUTE_AND_VERIFY_ONLY_LAYER_CHANGED(root->SetBounds(arbitrary_size)); |
+ EXECUTE_AND_VERIFY_NEEDS_PUSH_PROPERTIES_AND_SUBTREE_DID_NOT_CHANGE( |
+ root->SetMaxScrollOffset(arbitrary_vector2d)); |
// Changing these properties affects the entire subtree of layers. |
EXECUTE_AND_VERIFY_SUBTREE_CHANGED(root->SetAnchorPoint(arbitrary_point_f)); |
@@ -154,11 +151,11 @@ |
EXECUTE_AND_VERIFY_SUBTREE_CHANGED(root->SetFilters(arbitrary_filters)); |
EXECUTE_AND_VERIFY_SUBTREE_CHANGED(root->SetFilters(FilterOperations())); |
EXECUTE_AND_VERIFY_SUBTREE_CHANGED( |
- root->SetMaskLayer(LayerImpl::Create(host_impl.active_tree(), 9))); |
+ root->SetMaskLayer(LayerImpl::Create(host_impl.active_tree(), 8))); |
EXECUTE_AND_VERIFY_SUBTREE_CHANGED(root->SetMasksToBounds(true)); |
EXECUTE_AND_VERIFY_SUBTREE_CHANGED(root->SetContentsOpaque(true)); |
EXECUTE_AND_VERIFY_SUBTREE_CHANGED( |
- root->SetReplicaLayer(LayerImpl::Create(host_impl.active_tree(), 10))); |
+ root->SetReplicaLayer(LayerImpl::Create(host_impl.active_tree(), 9))); |
EXECUTE_AND_VERIFY_SUBTREE_CHANGED(root->SetPosition(arbitrary_point_f)); |
EXECUTE_AND_VERIFY_SUBTREE_CHANGED(root->SetPreserves3d(true)); |
EXECUTE_AND_VERIFY_SUBTREE_CHANGED( |
@@ -260,18 +257,15 @@ |
FakeImplProxy proxy; |
FakeLayerTreeHostImpl host_impl(&proxy); |
EXPECT_TRUE(host_impl.InitializeRenderer(CreateFakeOutputSurface())); |
- scoped_ptr<LayerImpl> root_clip = |
- LayerImpl::Create(host_impl.active_tree(), 1); |
- root_clip->AddChild(LayerImpl::Create(host_impl.active_tree(), 2)); |
- LayerImpl* root = root_clip->children()[0]; |
- root->SetScrollClipLayer(root_clip->id()); |
+ scoped_ptr<LayerImpl> root = LayerImpl::Create(host_impl.active_tree(), 1); |
+ root->SetScrollable(true); |
gfx::PointF arbitrary_point_f = gfx::PointF(0.125f, 0.25f); |
float arbitrary_number = 0.352f; |
gfx::Size arbitrary_size = gfx::Size(111, 222); |
gfx::Point arbitrary_point = gfx::Point(333, 444); |
gfx::Vector2d arbitrary_vector2d = gfx::Vector2d(111, 222); |
- gfx::Size large_size = gfx::Size(1000, 1000); |
+ gfx::Vector2d large_vector2d = gfx::Vector2d(1000, 1000); |
gfx::Rect arbitrary_rect = gfx::Rect(arbitrary_point, arbitrary_size); |
gfx::RectF arbitrary_rect_f = |
gfx::RectF(arbitrary_point_f, gfx::SizeF(1.234f, 5.678f)); |
@@ -289,9 +283,9 @@ |
VERIFY_NEEDS_UPDATE_DRAW_PROPERTIES(root->SetFilters(arbitrary_filters)); |
// Related scrolling functions. |
- VERIFY_NEEDS_UPDATE_DRAW_PROPERTIES(root->SetBounds(large_size)); |
- VERIFY_NO_NEEDS_UPDATE_DRAW_PROPERTIES( |
- root->SetBounds(large_size)); |
+ VERIFY_NEEDS_UPDATE_DRAW_PROPERTIES(root->SetMaxScrollOffset(large_vector2d)); |
+ VERIFY_NO_NEEDS_UPDATE_DRAW_PROPERTIES( |
+ root->SetMaxScrollOffset(large_vector2d)); |
VERIFY_NEEDS_UPDATE_DRAW_PROPERTIES(root->ScrollBy(arbitrary_vector2d)); |
VERIFY_NO_NEEDS_UPDATE_DRAW_PROPERTIES(root->ScrollBy(gfx::Vector2d())); |
root->SetScrollDelta(gfx::Vector2d(0, 0)); |
@@ -397,20 +391,10 @@ |
LayerImplScrollTest() : host_impl_(&proxy_), root_id_(7) { |
host_impl_.active_tree() |
->SetRootLayer(LayerImpl::Create(host_impl_.active_tree(), root_id_)); |
- host_impl_.active_tree()->root_layer()->AddChild( |
- LayerImpl::Create(host_impl_.active_tree(), root_id_ + 1)); |
- layer()->SetScrollClipLayer(root_id_); |
- // Set the max scroll offset by noting that the root layer has bounds (1,1), |
- // thus whatever bounds are set for the layer will be the max scroll |
- // offset plus 1 in each direction. |
- host_impl_.active_tree()->root_layer()->SetBounds(gfx::Size(1, 1)); |
- gfx::Vector2d max_scroll_offset(51, 81); |
- layer()->SetBounds(gfx::Size(max_scroll_offset.x(), max_scroll_offset.y())); |
+ host_impl_.active_tree()->root_layer()->SetScrollable(true); |
} |
- LayerImpl* layer() { |
- return host_impl_.active_tree()->root_layer()->children()[0]; |
- } |
+ LayerImpl* layer() { return host_impl_.active_tree()->root_layer(); } |
private: |
FakeImplProxy proxy_; |
@@ -421,6 +405,8 @@ |
TEST_F(LayerImplScrollTest, ScrollByWithZeroOffset) { |
// Test that LayerImpl::ScrollBy only affects ScrollDelta and total scroll |
// offset is bounded by the range [0, max scroll offset]. |
+ gfx::Vector2d max_scroll_offset(50, 80); |
+ layer()->SetMaxScrollOffset(max_scroll_offset); |
EXPECT_VECTOR_EQ(gfx::Vector2dF(), layer()->TotalScrollOffset()); |
EXPECT_VECTOR_EQ(gfx::Vector2dF(), layer()->scroll_offset()); |
@@ -440,7 +426,9 @@ |
} |
TEST_F(LayerImplScrollTest, ScrollByWithNonZeroOffset) { |
+ gfx::Vector2d max_scroll_offset(50, 80); |
gfx::Vector2d scroll_offset(10, 5); |
+ layer()->SetMaxScrollOffset(max_scroll_offset); |
layer()->SetScrollOffset(scroll_offset); |
EXPECT_VECTOR_EQ(scroll_offset, layer()->TotalScrollOffset()); |
@@ -484,7 +472,9 @@ |
}; |
TEST_F(LayerImplScrollTest, ScrollByWithIgnoringDelegate) { |
+ gfx::Vector2d max_scroll_offset(50, 80); |
gfx::Vector2d scroll_offset(10, 5); |
+ layer()->SetMaxScrollOffset(max_scroll_offset); |
layer()->SetScrollOffset(scroll_offset); |
EXPECT_VECTOR_EQ(scroll_offset, layer()->TotalScrollOffset()); |
@@ -535,7 +525,9 @@ |
}; |
TEST_F(LayerImplScrollTest, ScrollByWithAcceptingDelegate) { |
+ gfx::Vector2d max_scroll_offset(50, 80); |
gfx::Vector2d scroll_offset(10, 5); |
+ layer()->SetMaxScrollOffset(max_scroll_offset); |
layer()->SetScrollOffset(scroll_offset); |
EXPECT_VECTOR_EQ(scroll_offset, layer()->TotalScrollOffset()); |
@@ -567,10 +559,12 @@ |
} |
TEST_F(LayerImplScrollTest, ApplySentScrollsNoDelegate) { |
+ gfx::Vector2d max_scroll_offset(50, 80); |
gfx::Vector2d scroll_offset(10, 5); |
gfx::Vector2dF scroll_delta(20.5f, 8.5f); |
gfx::Vector2d sent_scroll_delta(12, -3); |
+ layer()->SetMaxScrollOffset(max_scroll_offset); |
layer()->SetScrollOffset(scroll_offset); |
layer()->ScrollBy(scroll_delta); |
layer()->SetSentScrollDelta(sent_scroll_delta); |
@@ -589,10 +583,12 @@ |
} |
TEST_F(LayerImplScrollTest, ApplySentScrollsWithIgnoringDelegate) { |
+ gfx::Vector2d max_scroll_offset(50, 80); |
gfx::Vector2d scroll_offset(10, 5); |
gfx::Vector2d sent_scroll_delta(12, -3); |
gfx::Vector2dF fixed_offset(32, 12); |
+ layer()->SetMaxScrollOffset(max_scroll_offset); |
layer()->SetScrollOffset(scroll_offset); |
ScrollDelegateIgnore delegate; |
delegate.set_fixed_offset(fixed_offset); |
@@ -611,10 +607,12 @@ |
} |
TEST_F(LayerImplScrollTest, ApplySentScrollsWithAcceptingDelegate) { |
+ gfx::Vector2d max_scroll_offset(50, 80); |
gfx::Vector2d scroll_offset(10, 5); |
gfx::Vector2d sent_scroll_delta(12, -3); |
gfx::Vector2dF scroll_delta(20.5f, 8.5f); |
+ layer()->SetMaxScrollOffset(max_scroll_offset); |
layer()->SetScrollOffset(scroll_offset); |
ScrollDelegateAccept delegate; |
layer()->SetScrollOffsetDelegate(&delegate); |
@@ -635,10 +633,12 @@ |
// The user-scrollability breaks for zoomed-in pages. So disable this. |
// http://crbug.com/322223 |
TEST_F(LayerImplScrollTest, DISABLED_ScrollUserUnscrollableLayer) { |
+ gfx::Vector2d max_scroll_offset(50, 80); |
gfx::Vector2d scroll_offset(10, 5); |
gfx::Vector2dF scroll_delta(20.5f, 8.5f); |
layer()->set_user_scrollable_vertical(false); |
+ layer()->SetMaxScrollOffset(max_scroll_offset); |
layer()->SetScrollOffset(scroll_offset); |
gfx::Vector2dF unscrolled = layer()->ScrollBy(scroll_delta); |