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

Side by Side Diff: cc/layers/layer_impl_unittest.cc

Issue 146713002: Revert of Pinch/Zoom Infrastructure & Plumbing CL (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « cc/layers/layer_impl.cc ('k') | cc/layers/layer_perftest.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/layers/layer_impl.h" 5 #include "cc/layers/layer_impl.h"
6 6
7 #include "cc/output/filter_operation.h" 7 #include "cc/output/filter_operation.h"
8 #include "cc/output/filter_operations.h" 8 #include "cc/output/filter_operations.h"
9 #include "cc/test/fake_impl_proxy.h" 9 #include "cc/test/fake_impl_proxy.h"
10 #include "cc/test/fake_layer_tree_host_impl.h" 10 #include "cc/test/fake_layer_tree_host_impl.h"
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after
87 TEST(LayerImplTest, VerifyLayerChangesAreTrackedProperly) { 87 TEST(LayerImplTest, VerifyLayerChangesAreTrackedProperly) {
88 // 88 //
89 // This test checks that layerPropertyChanged() has the correct behavior. 89 // This test checks that layerPropertyChanged() has the correct behavior.
90 // 90 //
91 91
92 // The constructor on this will fake that we are on the correct thread. 92 // The constructor on this will fake that we are on the correct thread.
93 // Create a simple LayerImpl tree: 93 // Create a simple LayerImpl tree:
94 FakeImplProxy proxy; 94 FakeImplProxy proxy;
95 FakeLayerTreeHostImpl host_impl(&proxy); 95 FakeLayerTreeHostImpl host_impl(&proxy);
96 EXPECT_TRUE(host_impl.InitializeRenderer(CreateFakeOutputSurface())); 96 EXPECT_TRUE(host_impl.InitializeRenderer(CreateFakeOutputSurface()));
97 scoped_ptr<LayerImpl> root_clip = 97 scoped_ptr<LayerImpl> root = LayerImpl::Create(host_impl.active_tree(), 1);
98 LayerImpl::Create(host_impl.active_tree(), 1); 98
99 scoped_ptr<LayerImpl> root_ptr = 99 scoped_ptr<LayerImpl> scroll_parent =
100 LayerImpl::Create(host_impl.active_tree(), 2); 100 LayerImpl::Create(host_impl.active_tree(), 2);
101 LayerImpl* root = root_ptr.get(); 101 LayerImpl* scroll_child = LayerImpl::Create(host_impl.active_tree(), 3).get();
102 root_clip->AddChild(root_ptr.Pass());
103 scoped_ptr<LayerImpl> scroll_parent =
104 LayerImpl::Create(host_impl.active_tree(), 3);
105 LayerImpl* scroll_child = LayerImpl::Create(host_impl.active_tree(), 4).get();
106 std::set<LayerImpl*>* scroll_children = new std::set<LayerImpl*>(); 102 std::set<LayerImpl*>* scroll_children = new std::set<LayerImpl*>();
107 scroll_children->insert(scroll_child); 103 scroll_children->insert(scroll_child);
108 scroll_children->insert(root); 104 scroll_children->insert(root.get());
109 105
110 scoped_ptr<LayerImpl> clip_parent = 106 scoped_ptr<LayerImpl> clip_parent =
111 LayerImpl::Create(host_impl.active_tree(), 5); 107 LayerImpl::Create(host_impl.active_tree(), 4);
112 LayerImpl* clip_child = LayerImpl::Create(host_impl.active_tree(), 6).get(); 108 LayerImpl* clip_child = LayerImpl::Create(host_impl.active_tree(), 5).get();
113 std::set<LayerImpl*>* clip_children = new std::set<LayerImpl*>(); 109 std::set<LayerImpl*>* clip_children = new std::set<LayerImpl*>();
114 clip_children->insert(clip_child); 110 clip_children->insert(clip_child);
115 clip_children->insert(root); 111 clip_children->insert(root.get());
116 112
117 root->AddChild(LayerImpl::Create(host_impl.active_tree(), 7)); 113 root->AddChild(LayerImpl::Create(host_impl.active_tree(), 6));
118 LayerImpl* child = root->children()[0]; 114 LayerImpl* child = root->children()[0];
119 child->AddChild(LayerImpl::Create(host_impl.active_tree(), 8)); 115 child->AddChild(LayerImpl::Create(host_impl.active_tree(), 7));
120 LayerImpl* grand_child = child->children()[0]; 116 LayerImpl* grand_child = child->children()[0];
121 117
122 root->SetScrollClipLayer(root_clip->id()); 118 root->SetScrollable(true);
123 119
124 // Adding children is an internal operation and should not mark layers as 120 // Adding children is an internal operation and should not mark layers as
125 // changed. 121 // changed.
126 EXPECT_FALSE(root->LayerPropertyChanged()); 122 EXPECT_FALSE(root->LayerPropertyChanged());
127 EXPECT_FALSE(child->LayerPropertyChanged()); 123 EXPECT_FALSE(child->LayerPropertyChanged());
128 EXPECT_FALSE(grand_child->LayerPropertyChanged()); 124 EXPECT_FALSE(grand_child->LayerPropertyChanged());
129 125
130 gfx::PointF arbitrary_point_f = gfx::PointF(0.125f, 0.25f); 126 gfx::PointF arbitrary_point_f = gfx::PointF(0.125f, 0.25f);
131 float arbitrary_number = 0.352f; 127 float arbitrary_number = 0.352f;
132 gfx::Size arbitrary_size = gfx::Size(111, 222); 128 gfx::Size arbitrary_size = gfx::Size(111, 222);
133 gfx::Point arbitrary_point = gfx::Point(333, 444); 129 gfx::Point arbitrary_point = gfx::Point(333, 444);
134 gfx::Vector2d arbitrary_vector2d = gfx::Vector2d(111, 222); 130 gfx::Vector2d arbitrary_vector2d = gfx::Vector2d(111, 222);
135 gfx::Rect arbitrary_rect = gfx::Rect(arbitrary_point, arbitrary_size); 131 gfx::Rect arbitrary_rect = gfx::Rect(arbitrary_point, arbitrary_size);
136 gfx::RectF arbitrary_rect_f = 132 gfx::RectF arbitrary_rect_f =
137 gfx::RectF(arbitrary_point_f, gfx::SizeF(1.234f, 5.678f)); 133 gfx::RectF(arbitrary_point_f, gfx::SizeF(1.234f, 5.678f));
138 SkColor arbitrary_color = SkColorSetRGB(10, 20, 30); 134 SkColor arbitrary_color = SkColorSetRGB(10, 20, 30);
139 gfx::Transform arbitrary_transform; 135 gfx::Transform arbitrary_transform;
140 arbitrary_transform.Scale3d(0.1f, 0.2f, 0.3f); 136 arbitrary_transform.Scale3d(0.1f, 0.2f, 0.3f);
141 FilterOperations arbitrary_filters; 137 FilterOperations arbitrary_filters;
142 arbitrary_filters.Append(FilterOperation::CreateOpacityFilter(0.5f)); 138 arbitrary_filters.Append(FilterOperation::CreateOpacityFilter(0.5f));
143 SkXfermode::Mode arbitrary_blend_mode = SkXfermode::kMultiply_Mode; 139 SkXfermode::Mode arbitrary_blend_mode = SkXfermode::kMultiply_Mode;
144 140
145 // These properties are internal, and should not be considered "change" when 141 // These properties are internal, and should not be considered "change" when
146 // they are used. 142 // they are used.
147 EXECUTE_AND_VERIFY_NEEDS_PUSH_PROPERTIES_AND_SUBTREE_DID_NOT_CHANGE( 143 EXECUTE_AND_VERIFY_NEEDS_PUSH_PROPERTIES_AND_SUBTREE_DID_NOT_CHANGE(
148 root->SetUpdateRect(arbitrary_rect_f)); 144 root->SetUpdateRect(arbitrary_rect_f));
149 EXECUTE_AND_VERIFY_ONLY_LAYER_CHANGED(root->SetBounds(arbitrary_size)); 145 EXECUTE_AND_VERIFY_NEEDS_PUSH_PROPERTIES_AND_SUBTREE_DID_NOT_CHANGE(
146 root->SetMaxScrollOffset(arbitrary_vector2d));
150 147
151 // Changing these properties affects the entire subtree of layers. 148 // Changing these properties affects the entire subtree of layers.
152 EXECUTE_AND_VERIFY_SUBTREE_CHANGED(root->SetAnchorPoint(arbitrary_point_f)); 149 EXECUTE_AND_VERIFY_SUBTREE_CHANGED(root->SetAnchorPoint(arbitrary_point_f));
153 EXECUTE_AND_VERIFY_SUBTREE_CHANGED(root->SetAnchorPointZ(arbitrary_number)); 150 EXECUTE_AND_VERIFY_SUBTREE_CHANGED(root->SetAnchorPointZ(arbitrary_number));
154 EXECUTE_AND_VERIFY_SUBTREE_CHANGED(root->SetFilters(arbitrary_filters)); 151 EXECUTE_AND_VERIFY_SUBTREE_CHANGED(root->SetFilters(arbitrary_filters));
155 EXECUTE_AND_VERIFY_SUBTREE_CHANGED(root->SetFilters(FilterOperations())); 152 EXECUTE_AND_VERIFY_SUBTREE_CHANGED(root->SetFilters(FilterOperations()));
156 EXECUTE_AND_VERIFY_SUBTREE_CHANGED( 153 EXECUTE_AND_VERIFY_SUBTREE_CHANGED(
157 root->SetMaskLayer(LayerImpl::Create(host_impl.active_tree(), 9))); 154 root->SetMaskLayer(LayerImpl::Create(host_impl.active_tree(), 8)));
158 EXECUTE_AND_VERIFY_SUBTREE_CHANGED(root->SetMasksToBounds(true)); 155 EXECUTE_AND_VERIFY_SUBTREE_CHANGED(root->SetMasksToBounds(true));
159 EXECUTE_AND_VERIFY_SUBTREE_CHANGED(root->SetContentsOpaque(true)); 156 EXECUTE_AND_VERIFY_SUBTREE_CHANGED(root->SetContentsOpaque(true));
160 EXECUTE_AND_VERIFY_SUBTREE_CHANGED( 157 EXECUTE_AND_VERIFY_SUBTREE_CHANGED(
161 root->SetReplicaLayer(LayerImpl::Create(host_impl.active_tree(), 10))); 158 root->SetReplicaLayer(LayerImpl::Create(host_impl.active_tree(), 9)));
162 EXECUTE_AND_VERIFY_SUBTREE_CHANGED(root->SetPosition(arbitrary_point_f)); 159 EXECUTE_AND_VERIFY_SUBTREE_CHANGED(root->SetPosition(arbitrary_point_f));
163 EXECUTE_AND_VERIFY_SUBTREE_CHANGED(root->SetPreserves3d(true)); 160 EXECUTE_AND_VERIFY_SUBTREE_CHANGED(root->SetPreserves3d(true));
164 EXECUTE_AND_VERIFY_SUBTREE_CHANGED( 161 EXECUTE_AND_VERIFY_SUBTREE_CHANGED(
165 root->SetDoubleSided(false)); // constructor initializes it to "true". 162 root->SetDoubleSided(false)); // constructor initializes it to "true".
166 EXECUTE_AND_VERIFY_SUBTREE_CHANGED(root->ScrollBy(arbitrary_vector2d)); 163 EXECUTE_AND_VERIFY_SUBTREE_CHANGED(root->ScrollBy(arbitrary_vector2d));
167 EXECUTE_AND_VERIFY_SUBTREE_CHANGED(root->SetScrollDelta(gfx::Vector2d())); 164 EXECUTE_AND_VERIFY_SUBTREE_CHANGED(root->SetScrollDelta(gfx::Vector2d()));
168 EXECUTE_AND_VERIFY_SUBTREE_CHANGED(root->SetScrollOffset(arbitrary_vector2d)); 165 EXECUTE_AND_VERIFY_SUBTREE_CHANGED(root->SetScrollOffset(arbitrary_vector2d));
169 EXECUTE_AND_VERIFY_SUBTREE_CHANGED(root->SetHideLayerAndSubtree(true)); 166 EXECUTE_AND_VERIFY_SUBTREE_CHANGED(root->SetHideLayerAndSubtree(true));
170 EXECUTE_AND_VERIFY_SUBTREE_CHANGED(root->SetOpacity(arbitrary_number)); 167 EXECUTE_AND_VERIFY_SUBTREE_CHANGED(root->SetOpacity(arbitrary_number));
171 EXECUTE_AND_VERIFY_SUBTREE_CHANGED(root->SetBlendMode(arbitrary_blend_mode)); 168 EXECUTE_AND_VERIFY_SUBTREE_CHANGED(root->SetBlendMode(arbitrary_blend_mode));
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after
253 EXECUTE_AND_VERIFY_SUBTREE_DID_NOT_CHANGE( 250 EXECUTE_AND_VERIFY_SUBTREE_DID_NOT_CHANGE(
254 root->SetClipParent(clip_parent.get())); 251 root->SetClipParent(clip_parent.get()));
255 EXECUTE_AND_VERIFY_SUBTREE_DID_NOT_CHANGE( 252 EXECUTE_AND_VERIFY_SUBTREE_DID_NOT_CHANGE(
256 root->SetClipChildren(clip_children)); 253 root->SetClipChildren(clip_children));
257 } 254 }
258 255
259 TEST(LayerImplTest, VerifyNeedsUpdateDrawProperties) { 256 TEST(LayerImplTest, VerifyNeedsUpdateDrawProperties) {
260 FakeImplProxy proxy; 257 FakeImplProxy proxy;
261 FakeLayerTreeHostImpl host_impl(&proxy); 258 FakeLayerTreeHostImpl host_impl(&proxy);
262 EXPECT_TRUE(host_impl.InitializeRenderer(CreateFakeOutputSurface())); 259 EXPECT_TRUE(host_impl.InitializeRenderer(CreateFakeOutputSurface()));
263 scoped_ptr<LayerImpl> root_clip = 260 scoped_ptr<LayerImpl> root = LayerImpl::Create(host_impl.active_tree(), 1);
264 LayerImpl::Create(host_impl.active_tree(), 1); 261 root->SetScrollable(true);
265 root_clip->AddChild(LayerImpl::Create(host_impl.active_tree(), 2));
266 LayerImpl* root = root_clip->children()[0];
267 root->SetScrollClipLayer(root_clip->id());
268 262
269 gfx::PointF arbitrary_point_f = gfx::PointF(0.125f, 0.25f); 263 gfx::PointF arbitrary_point_f = gfx::PointF(0.125f, 0.25f);
270 float arbitrary_number = 0.352f; 264 float arbitrary_number = 0.352f;
271 gfx::Size arbitrary_size = gfx::Size(111, 222); 265 gfx::Size arbitrary_size = gfx::Size(111, 222);
272 gfx::Point arbitrary_point = gfx::Point(333, 444); 266 gfx::Point arbitrary_point = gfx::Point(333, 444);
273 gfx::Vector2d arbitrary_vector2d = gfx::Vector2d(111, 222); 267 gfx::Vector2d arbitrary_vector2d = gfx::Vector2d(111, 222);
274 gfx::Size large_size = gfx::Size(1000, 1000); 268 gfx::Vector2d large_vector2d = gfx::Vector2d(1000, 1000);
275 gfx::Rect arbitrary_rect = gfx::Rect(arbitrary_point, arbitrary_size); 269 gfx::Rect arbitrary_rect = gfx::Rect(arbitrary_point, arbitrary_size);
276 gfx::RectF arbitrary_rect_f = 270 gfx::RectF arbitrary_rect_f =
277 gfx::RectF(arbitrary_point_f, gfx::SizeF(1.234f, 5.678f)); 271 gfx::RectF(arbitrary_point_f, gfx::SizeF(1.234f, 5.678f));
278 SkColor arbitrary_color = SkColorSetRGB(10, 20, 30); 272 SkColor arbitrary_color = SkColorSetRGB(10, 20, 30);
279 gfx::Transform arbitrary_transform; 273 gfx::Transform arbitrary_transform;
280 arbitrary_transform.Scale3d(0.1f, 0.2f, 0.3f); 274 arbitrary_transform.Scale3d(0.1f, 0.2f, 0.3f);
281 FilterOperations arbitrary_filters; 275 FilterOperations arbitrary_filters;
282 arbitrary_filters.Append(FilterOperation::CreateOpacityFilter(0.5f)); 276 arbitrary_filters.Append(FilterOperation::CreateOpacityFilter(0.5f));
283 SkXfermode::Mode arbitrary_blend_mode = SkXfermode::kMultiply_Mode; 277 SkXfermode::Mode arbitrary_blend_mode = SkXfermode::kMultiply_Mode;
284 278
285 // Related filter functions. 279 // Related filter functions.
286 VERIFY_NEEDS_UPDATE_DRAW_PROPERTIES(root->SetFilters(arbitrary_filters)); 280 VERIFY_NEEDS_UPDATE_DRAW_PROPERTIES(root->SetFilters(arbitrary_filters));
287 VERIFY_NO_NEEDS_UPDATE_DRAW_PROPERTIES(root->SetFilters(arbitrary_filters)); 281 VERIFY_NO_NEEDS_UPDATE_DRAW_PROPERTIES(root->SetFilters(arbitrary_filters));
288 VERIFY_NEEDS_UPDATE_DRAW_PROPERTIES(root->SetFilters(FilterOperations())); 282 VERIFY_NEEDS_UPDATE_DRAW_PROPERTIES(root->SetFilters(FilterOperations()));
289 VERIFY_NEEDS_UPDATE_DRAW_PROPERTIES(root->SetFilters(arbitrary_filters)); 283 VERIFY_NEEDS_UPDATE_DRAW_PROPERTIES(root->SetFilters(arbitrary_filters));
290 284
291 // Related scrolling functions. 285 // Related scrolling functions.
292 VERIFY_NEEDS_UPDATE_DRAW_PROPERTIES(root->SetBounds(large_size)); 286 VERIFY_NEEDS_UPDATE_DRAW_PROPERTIES(root->SetMaxScrollOffset(large_vector2d));
293 VERIFY_NO_NEEDS_UPDATE_DRAW_PROPERTIES( 287 VERIFY_NO_NEEDS_UPDATE_DRAW_PROPERTIES(
294 root->SetBounds(large_size)); 288 root->SetMaxScrollOffset(large_vector2d));
295 VERIFY_NEEDS_UPDATE_DRAW_PROPERTIES(root->ScrollBy(arbitrary_vector2d)); 289 VERIFY_NEEDS_UPDATE_DRAW_PROPERTIES(root->ScrollBy(arbitrary_vector2d));
296 VERIFY_NO_NEEDS_UPDATE_DRAW_PROPERTIES(root->ScrollBy(gfx::Vector2d())); 290 VERIFY_NO_NEEDS_UPDATE_DRAW_PROPERTIES(root->ScrollBy(gfx::Vector2d()));
297 root->SetScrollDelta(gfx::Vector2d(0, 0)); 291 root->SetScrollDelta(gfx::Vector2d(0, 0));
298 host_impl.ForcePrepareToDraw(); 292 host_impl.ForcePrepareToDraw();
299 VERIFY_NEEDS_UPDATE_DRAW_PROPERTIES(root->SetScrollDelta(arbitrary_vector2d)); 293 VERIFY_NEEDS_UPDATE_DRAW_PROPERTIES(root->SetScrollDelta(arbitrary_vector2d));
300 VERIFY_NO_NEEDS_UPDATE_DRAW_PROPERTIES( 294 VERIFY_NO_NEEDS_UPDATE_DRAW_PROPERTIES(
301 root->SetScrollDelta(arbitrary_vector2d)); 295 root->SetScrollDelta(arbitrary_vector2d));
302 VERIFY_NEEDS_UPDATE_DRAW_PROPERTIES( 296 VERIFY_NEEDS_UPDATE_DRAW_PROPERTIES(
303 root->SetScrollOffset(arbitrary_vector2d)); 297 root->SetScrollOffset(arbitrary_vector2d));
304 VERIFY_NO_NEEDS_UPDATE_DRAW_PROPERTIES( 298 VERIFY_NO_NEEDS_UPDATE_DRAW_PROPERTIES(
(...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after
390 } 384 }
391 } 385 }
392 } 386 }
393 } 387 }
394 388
395 class LayerImplScrollTest : public testing::Test { 389 class LayerImplScrollTest : public testing::Test {
396 public: 390 public:
397 LayerImplScrollTest() : host_impl_(&proxy_), root_id_(7) { 391 LayerImplScrollTest() : host_impl_(&proxy_), root_id_(7) {
398 host_impl_.active_tree() 392 host_impl_.active_tree()
399 ->SetRootLayer(LayerImpl::Create(host_impl_.active_tree(), root_id_)); 393 ->SetRootLayer(LayerImpl::Create(host_impl_.active_tree(), root_id_));
400 host_impl_.active_tree()->root_layer()->AddChild( 394 host_impl_.active_tree()->root_layer()->SetScrollable(true);
401 LayerImpl::Create(host_impl_.active_tree(), root_id_ + 1));
402 layer()->SetScrollClipLayer(root_id_);
403 // Set the max scroll offset by noting that the root layer has bounds (1,1),
404 // thus whatever bounds are set for the layer will be the max scroll
405 // offset plus 1 in each direction.
406 host_impl_.active_tree()->root_layer()->SetBounds(gfx::Size(1, 1));
407 gfx::Vector2d max_scroll_offset(51, 81);
408 layer()->SetBounds(gfx::Size(max_scroll_offset.x(), max_scroll_offset.y()));
409 } 395 }
410 396
411 LayerImpl* layer() { 397 LayerImpl* layer() { return host_impl_.active_tree()->root_layer(); }
412 return host_impl_.active_tree()->root_layer()->children()[0];
413 }
414 398
415 private: 399 private:
416 FakeImplProxy proxy_; 400 FakeImplProxy proxy_;
417 FakeLayerTreeHostImpl host_impl_; 401 FakeLayerTreeHostImpl host_impl_;
418 int root_id_; 402 int root_id_;
419 }; 403 };
420 404
421 TEST_F(LayerImplScrollTest, ScrollByWithZeroOffset) { 405 TEST_F(LayerImplScrollTest, ScrollByWithZeroOffset) {
422 // Test that LayerImpl::ScrollBy only affects ScrollDelta and total scroll 406 // Test that LayerImpl::ScrollBy only affects ScrollDelta and total scroll
423 // offset is bounded by the range [0, max scroll offset]. 407 // offset is bounded by the range [0, max scroll offset].
408 gfx::Vector2d max_scroll_offset(50, 80);
409 layer()->SetMaxScrollOffset(max_scroll_offset);
424 410
425 EXPECT_VECTOR_EQ(gfx::Vector2dF(), layer()->TotalScrollOffset()); 411 EXPECT_VECTOR_EQ(gfx::Vector2dF(), layer()->TotalScrollOffset());
426 EXPECT_VECTOR_EQ(gfx::Vector2dF(), layer()->scroll_offset()); 412 EXPECT_VECTOR_EQ(gfx::Vector2dF(), layer()->scroll_offset());
427 EXPECT_VECTOR_EQ(gfx::Vector2dF(), layer()->ScrollDelta()); 413 EXPECT_VECTOR_EQ(gfx::Vector2dF(), layer()->ScrollDelta());
428 414
429 layer()->ScrollBy(gfx::Vector2dF(-100, 100)); 415 layer()->ScrollBy(gfx::Vector2dF(-100, 100));
430 EXPECT_VECTOR_EQ(gfx::Vector2dF(0, 80), layer()->TotalScrollOffset()); 416 EXPECT_VECTOR_EQ(gfx::Vector2dF(0, 80), layer()->TotalScrollOffset());
431 417
432 EXPECT_VECTOR_EQ(layer()->ScrollDelta(), layer()->TotalScrollOffset()); 418 EXPECT_VECTOR_EQ(layer()->ScrollDelta(), layer()->TotalScrollOffset());
433 EXPECT_VECTOR_EQ(gfx::Vector2dF(), layer()->scroll_offset()); 419 EXPECT_VECTOR_EQ(gfx::Vector2dF(), layer()->scroll_offset());
434 420
435 layer()->ScrollBy(gfx::Vector2dF(100, -100)); 421 layer()->ScrollBy(gfx::Vector2dF(100, -100));
436 EXPECT_VECTOR_EQ(gfx::Vector2dF(50, 0), layer()->TotalScrollOffset()); 422 EXPECT_VECTOR_EQ(gfx::Vector2dF(50, 0), layer()->TotalScrollOffset());
437 423
438 EXPECT_VECTOR_EQ(layer()->ScrollDelta(), layer()->TotalScrollOffset()); 424 EXPECT_VECTOR_EQ(layer()->ScrollDelta(), layer()->TotalScrollOffset());
439 EXPECT_VECTOR_EQ(gfx::Vector2dF(), layer()->scroll_offset()); 425 EXPECT_VECTOR_EQ(gfx::Vector2dF(), layer()->scroll_offset());
440 } 426 }
441 427
442 TEST_F(LayerImplScrollTest, ScrollByWithNonZeroOffset) { 428 TEST_F(LayerImplScrollTest, ScrollByWithNonZeroOffset) {
429 gfx::Vector2d max_scroll_offset(50, 80);
443 gfx::Vector2d scroll_offset(10, 5); 430 gfx::Vector2d scroll_offset(10, 5);
431 layer()->SetMaxScrollOffset(max_scroll_offset);
444 layer()->SetScrollOffset(scroll_offset); 432 layer()->SetScrollOffset(scroll_offset);
445 433
446 EXPECT_VECTOR_EQ(scroll_offset, layer()->TotalScrollOffset()); 434 EXPECT_VECTOR_EQ(scroll_offset, layer()->TotalScrollOffset());
447 EXPECT_VECTOR_EQ(scroll_offset, layer()->scroll_offset()); 435 EXPECT_VECTOR_EQ(scroll_offset, layer()->scroll_offset());
448 EXPECT_VECTOR_EQ(gfx::Vector2dF(), layer()->ScrollDelta()); 436 EXPECT_VECTOR_EQ(gfx::Vector2dF(), layer()->ScrollDelta());
449 437
450 layer()->ScrollBy(gfx::Vector2dF(-100, 100)); 438 layer()->ScrollBy(gfx::Vector2dF(-100, 100));
451 EXPECT_VECTOR_EQ(gfx::Vector2dF(0, 80), layer()->TotalScrollOffset()); 439 EXPECT_VECTOR_EQ(gfx::Vector2dF(0, 80), layer()->TotalScrollOffset());
452 440
453 EXPECT_VECTOR_EQ(layer()->ScrollDelta() + scroll_offset, 441 EXPECT_VECTOR_EQ(layer()->ScrollDelta() + scroll_offset,
(...skipping 23 matching lines...) Expand all
477 } 465 }
478 466
479 virtual void SetTotalPageScaleFactor(float page_scale_factor) OVERRIDE {} 467 virtual void SetTotalPageScaleFactor(float page_scale_factor) OVERRIDE {}
480 virtual void SetScrollableSize(const gfx::SizeF& scrollable_size) OVERRIDE {} 468 virtual void SetScrollableSize(const gfx::SizeF& scrollable_size) OVERRIDE {}
481 469
482 private: 470 private:
483 gfx::Vector2dF fixed_offset_; 471 gfx::Vector2dF fixed_offset_;
484 }; 472 };
485 473
486 TEST_F(LayerImplScrollTest, ScrollByWithIgnoringDelegate) { 474 TEST_F(LayerImplScrollTest, ScrollByWithIgnoringDelegate) {
475 gfx::Vector2d max_scroll_offset(50, 80);
487 gfx::Vector2d scroll_offset(10, 5); 476 gfx::Vector2d scroll_offset(10, 5);
477 layer()->SetMaxScrollOffset(max_scroll_offset);
488 layer()->SetScrollOffset(scroll_offset); 478 layer()->SetScrollOffset(scroll_offset);
489 479
490 EXPECT_VECTOR_EQ(scroll_offset, layer()->TotalScrollOffset()); 480 EXPECT_VECTOR_EQ(scroll_offset, layer()->TotalScrollOffset());
491 EXPECT_VECTOR_EQ(scroll_offset, layer()->scroll_offset()); 481 EXPECT_VECTOR_EQ(scroll_offset, layer()->scroll_offset());
492 EXPECT_VECTOR_EQ(gfx::Vector2dF(), layer()->ScrollDelta()); 482 EXPECT_VECTOR_EQ(gfx::Vector2dF(), layer()->ScrollDelta());
493 483
494 ScrollDelegateIgnore delegate; 484 ScrollDelegateIgnore delegate;
495 gfx::Vector2dF fixed_offset(32, 12); 485 gfx::Vector2dF fixed_offset(32, 12);
496 delegate.set_fixed_offset(fixed_offset); 486 delegate.set_fixed_offset(fixed_offset);
497 layer()->SetScrollOffsetDelegate(&delegate); 487 layer()->SetScrollOffsetDelegate(&delegate);
(...skipping 30 matching lines...) Expand all
528 } 518 }
529 virtual bool IsExternalFlingActive() const OVERRIDE { return false; } 519 virtual bool IsExternalFlingActive() const OVERRIDE { return false; }
530 virtual void SetTotalPageScaleFactor(float page_scale_factor) OVERRIDE {} 520 virtual void SetTotalPageScaleFactor(float page_scale_factor) OVERRIDE {}
531 virtual void SetScrollableSize(const gfx::SizeF& scrollable_size) OVERRIDE {} 521 virtual void SetScrollableSize(const gfx::SizeF& scrollable_size) OVERRIDE {}
532 522
533 private: 523 private:
534 gfx::Vector2dF current_offset_; 524 gfx::Vector2dF current_offset_;
535 }; 525 };
536 526
537 TEST_F(LayerImplScrollTest, ScrollByWithAcceptingDelegate) { 527 TEST_F(LayerImplScrollTest, ScrollByWithAcceptingDelegate) {
528 gfx::Vector2d max_scroll_offset(50, 80);
538 gfx::Vector2d scroll_offset(10, 5); 529 gfx::Vector2d scroll_offset(10, 5);
530 layer()->SetMaxScrollOffset(max_scroll_offset);
539 layer()->SetScrollOffset(scroll_offset); 531 layer()->SetScrollOffset(scroll_offset);
540 532
541 EXPECT_VECTOR_EQ(scroll_offset, layer()->TotalScrollOffset()); 533 EXPECT_VECTOR_EQ(scroll_offset, layer()->TotalScrollOffset());
542 EXPECT_VECTOR_EQ(scroll_offset, layer()->scroll_offset()); 534 EXPECT_VECTOR_EQ(scroll_offset, layer()->scroll_offset());
543 EXPECT_VECTOR_EQ(gfx::Vector2dF(), layer()->ScrollDelta()); 535 EXPECT_VECTOR_EQ(gfx::Vector2dF(), layer()->ScrollDelta());
544 536
545 ScrollDelegateAccept delegate; 537 ScrollDelegateAccept delegate;
546 layer()->SetScrollOffsetDelegate(&delegate); 538 layer()->SetScrollOffsetDelegate(&delegate);
547 539
548 EXPECT_VECTOR_EQ(scroll_offset, layer()->TotalScrollOffset()); 540 EXPECT_VECTOR_EQ(scroll_offset, layer()->TotalScrollOffset());
(...skipping 11 matching lines...) Expand all
560 EXPECT_VECTOR_EQ(scroll_offset, layer()->scroll_offset()); 552 EXPECT_VECTOR_EQ(scroll_offset, layer()->scroll_offset());
561 553
562 gfx::Vector2dF scroll_delta(1, 1); 554 gfx::Vector2dF scroll_delta(1, 1);
563 layer()->ScrollBy(scroll_delta); 555 layer()->ScrollBy(scroll_delta);
564 556
565 EXPECT_VECTOR_EQ(gfx::Vector2dF(1, 80), layer()->TotalScrollOffset()); 557 EXPECT_VECTOR_EQ(gfx::Vector2dF(1, 80), layer()->TotalScrollOffset());
566 EXPECT_VECTOR_EQ(scroll_offset, layer()->scroll_offset()); 558 EXPECT_VECTOR_EQ(scroll_offset, layer()->scroll_offset());
567 } 559 }
568 560
569 TEST_F(LayerImplScrollTest, ApplySentScrollsNoDelegate) { 561 TEST_F(LayerImplScrollTest, ApplySentScrollsNoDelegate) {
562 gfx::Vector2d max_scroll_offset(50, 80);
570 gfx::Vector2d scroll_offset(10, 5); 563 gfx::Vector2d scroll_offset(10, 5);
571 gfx::Vector2dF scroll_delta(20.5f, 8.5f); 564 gfx::Vector2dF scroll_delta(20.5f, 8.5f);
572 gfx::Vector2d sent_scroll_delta(12, -3); 565 gfx::Vector2d sent_scroll_delta(12, -3);
573 566
567 layer()->SetMaxScrollOffset(max_scroll_offset);
574 layer()->SetScrollOffset(scroll_offset); 568 layer()->SetScrollOffset(scroll_offset);
575 layer()->ScrollBy(scroll_delta); 569 layer()->ScrollBy(scroll_delta);
576 layer()->SetSentScrollDelta(sent_scroll_delta); 570 layer()->SetSentScrollDelta(sent_scroll_delta);
577 571
578 EXPECT_VECTOR_EQ(scroll_offset + scroll_delta, layer()->TotalScrollOffset()); 572 EXPECT_VECTOR_EQ(scroll_offset + scroll_delta, layer()->TotalScrollOffset());
579 EXPECT_VECTOR_EQ(scroll_delta, layer()->ScrollDelta()); 573 EXPECT_VECTOR_EQ(scroll_delta, layer()->ScrollDelta());
580 EXPECT_VECTOR_EQ(scroll_offset, layer()->scroll_offset()); 574 EXPECT_VECTOR_EQ(scroll_offset, layer()->scroll_offset());
581 EXPECT_VECTOR_EQ(sent_scroll_delta, layer()->sent_scroll_delta()); 575 EXPECT_VECTOR_EQ(sent_scroll_delta, layer()->sent_scroll_delta());
582 576
583 layer()->ApplySentScrollDeltasFromAbortedCommit(); 577 layer()->ApplySentScrollDeltasFromAbortedCommit();
584 578
585 EXPECT_VECTOR_EQ(scroll_offset + scroll_delta, layer()->TotalScrollOffset()); 579 EXPECT_VECTOR_EQ(scroll_offset + scroll_delta, layer()->TotalScrollOffset());
586 EXPECT_VECTOR_EQ(scroll_delta - sent_scroll_delta, layer()->ScrollDelta()); 580 EXPECT_VECTOR_EQ(scroll_delta - sent_scroll_delta, layer()->ScrollDelta());
587 EXPECT_VECTOR_EQ(scroll_offset + sent_scroll_delta, layer()->scroll_offset()); 581 EXPECT_VECTOR_EQ(scroll_offset + sent_scroll_delta, layer()->scroll_offset());
588 EXPECT_VECTOR_EQ(gfx::Vector2d(), layer()->sent_scroll_delta()); 582 EXPECT_VECTOR_EQ(gfx::Vector2d(), layer()->sent_scroll_delta());
589 } 583 }
590 584
591 TEST_F(LayerImplScrollTest, ApplySentScrollsWithIgnoringDelegate) { 585 TEST_F(LayerImplScrollTest, ApplySentScrollsWithIgnoringDelegate) {
586 gfx::Vector2d max_scroll_offset(50, 80);
592 gfx::Vector2d scroll_offset(10, 5); 587 gfx::Vector2d scroll_offset(10, 5);
593 gfx::Vector2d sent_scroll_delta(12, -3); 588 gfx::Vector2d sent_scroll_delta(12, -3);
594 gfx::Vector2dF fixed_offset(32, 12); 589 gfx::Vector2dF fixed_offset(32, 12);
595 590
591 layer()->SetMaxScrollOffset(max_scroll_offset);
596 layer()->SetScrollOffset(scroll_offset); 592 layer()->SetScrollOffset(scroll_offset);
597 ScrollDelegateIgnore delegate; 593 ScrollDelegateIgnore delegate;
598 delegate.set_fixed_offset(fixed_offset); 594 delegate.set_fixed_offset(fixed_offset);
599 layer()->SetScrollOffsetDelegate(&delegate); 595 layer()->SetScrollOffsetDelegate(&delegate);
600 layer()->SetSentScrollDelta(sent_scroll_delta); 596 layer()->SetSentScrollDelta(sent_scroll_delta);
601 597
602 EXPECT_VECTOR_EQ(fixed_offset, layer()->TotalScrollOffset()); 598 EXPECT_VECTOR_EQ(fixed_offset, layer()->TotalScrollOffset());
603 EXPECT_VECTOR_EQ(scroll_offset, layer()->scroll_offset()); 599 EXPECT_VECTOR_EQ(scroll_offset, layer()->scroll_offset());
604 EXPECT_VECTOR_EQ(sent_scroll_delta, layer()->sent_scroll_delta()); 600 EXPECT_VECTOR_EQ(sent_scroll_delta, layer()->sent_scroll_delta());
605 601
606 layer()->ApplySentScrollDeltasFromAbortedCommit(); 602 layer()->ApplySentScrollDeltasFromAbortedCommit();
607 603
608 EXPECT_VECTOR_EQ(fixed_offset, layer()->TotalScrollOffset()); 604 EXPECT_VECTOR_EQ(fixed_offset, layer()->TotalScrollOffset());
609 EXPECT_VECTOR_EQ(scroll_offset + sent_scroll_delta, layer()->scroll_offset()); 605 EXPECT_VECTOR_EQ(scroll_offset + sent_scroll_delta, layer()->scroll_offset());
610 EXPECT_VECTOR_EQ(gfx::Vector2d(), layer()->sent_scroll_delta()); 606 EXPECT_VECTOR_EQ(gfx::Vector2d(), layer()->sent_scroll_delta());
611 } 607 }
612 608
613 TEST_F(LayerImplScrollTest, ApplySentScrollsWithAcceptingDelegate) { 609 TEST_F(LayerImplScrollTest, ApplySentScrollsWithAcceptingDelegate) {
610 gfx::Vector2d max_scroll_offset(50, 80);
614 gfx::Vector2d scroll_offset(10, 5); 611 gfx::Vector2d scroll_offset(10, 5);
615 gfx::Vector2d sent_scroll_delta(12, -3); 612 gfx::Vector2d sent_scroll_delta(12, -3);
616 gfx::Vector2dF scroll_delta(20.5f, 8.5f); 613 gfx::Vector2dF scroll_delta(20.5f, 8.5f);
617 614
615 layer()->SetMaxScrollOffset(max_scroll_offset);
618 layer()->SetScrollOffset(scroll_offset); 616 layer()->SetScrollOffset(scroll_offset);
619 ScrollDelegateAccept delegate; 617 ScrollDelegateAccept delegate;
620 layer()->SetScrollOffsetDelegate(&delegate); 618 layer()->SetScrollOffsetDelegate(&delegate);
621 layer()->ScrollBy(scroll_delta); 619 layer()->ScrollBy(scroll_delta);
622 layer()->SetSentScrollDelta(sent_scroll_delta); 620 layer()->SetSentScrollDelta(sent_scroll_delta);
623 621
624 EXPECT_VECTOR_EQ(scroll_offset + scroll_delta, layer()->TotalScrollOffset()); 622 EXPECT_VECTOR_EQ(scroll_offset + scroll_delta, layer()->TotalScrollOffset());
625 EXPECT_VECTOR_EQ(scroll_offset, layer()->scroll_offset()); 623 EXPECT_VECTOR_EQ(scroll_offset, layer()->scroll_offset());
626 EXPECT_VECTOR_EQ(sent_scroll_delta, layer()->sent_scroll_delta()); 624 EXPECT_VECTOR_EQ(sent_scroll_delta, layer()->sent_scroll_delta());
627 625
628 layer()->ApplySentScrollDeltasFromAbortedCommit(); 626 layer()->ApplySentScrollDeltasFromAbortedCommit();
629 627
630 EXPECT_VECTOR_EQ(scroll_offset + scroll_delta, layer()->TotalScrollOffset()); 628 EXPECT_VECTOR_EQ(scroll_offset + scroll_delta, layer()->TotalScrollOffset());
631 EXPECT_VECTOR_EQ(scroll_offset + sent_scroll_delta, layer()->scroll_offset()); 629 EXPECT_VECTOR_EQ(scroll_offset + sent_scroll_delta, layer()->scroll_offset());
632 EXPECT_VECTOR_EQ(gfx::Vector2d(), layer()->sent_scroll_delta()); 630 EXPECT_VECTOR_EQ(gfx::Vector2d(), layer()->sent_scroll_delta());
633 } 631 }
634 632
635 // The user-scrollability breaks for zoomed-in pages. So disable this. 633 // The user-scrollability breaks for zoomed-in pages. So disable this.
636 // http://crbug.com/322223 634 // http://crbug.com/322223
637 TEST_F(LayerImplScrollTest, DISABLED_ScrollUserUnscrollableLayer) { 635 TEST_F(LayerImplScrollTest, DISABLED_ScrollUserUnscrollableLayer) {
636 gfx::Vector2d max_scroll_offset(50, 80);
638 gfx::Vector2d scroll_offset(10, 5); 637 gfx::Vector2d scroll_offset(10, 5);
639 gfx::Vector2dF scroll_delta(20.5f, 8.5f); 638 gfx::Vector2dF scroll_delta(20.5f, 8.5f);
640 639
641 layer()->set_user_scrollable_vertical(false); 640 layer()->set_user_scrollable_vertical(false);
641 layer()->SetMaxScrollOffset(max_scroll_offset);
642 layer()->SetScrollOffset(scroll_offset); 642 layer()->SetScrollOffset(scroll_offset);
643 gfx::Vector2dF unscrolled = layer()->ScrollBy(scroll_delta); 643 gfx::Vector2dF unscrolled = layer()->ScrollBy(scroll_delta);
644 644
645 EXPECT_VECTOR_EQ(gfx::Vector2dF(0, 8.5f), unscrolled); 645 EXPECT_VECTOR_EQ(gfx::Vector2dF(0, 8.5f), unscrolled);
646 EXPECT_VECTOR_EQ(gfx::Vector2dF(30.5f, 5), layer()->TotalScrollOffset()); 646 EXPECT_VECTOR_EQ(gfx::Vector2dF(30.5f, 5), layer()->TotalScrollOffset());
647 } 647 }
648 648
649 } // namespace 649 } // namespace
650 } // namespace cc 650 } // namespace cc
OLDNEW
« no previous file with comments | « cc/layers/layer_impl.cc ('k') | cc/layers/layer_perftest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698