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

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

Issue 895853003: Update from https://crrev.com/314320 (Closed) Base URL: https://github.com/domokit/mojo.git@master
Patch Set: Created 5 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/layers/layer_impl.cc ('k') | cc/layers/painted_scrollbar_layer.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/layers/painted_scrollbar_layer_impl.h" 7 #include "cc/layers/painted_scrollbar_layer_impl.h"
8 #include "cc/layers/solid_color_scrollbar_layer_impl.h" 8 #include "cc/layers/solid_color_scrollbar_layer_impl.h"
9 #include "cc/output/filter_operation.h" 9 #include "cc/output/filter_operation.h"
10 #include "cc/output/filter_operations.h" 10 #include "cc/output/filter_operations.h"
(...skipping 145 matching lines...) Expand 10 before | Expand all | Expand 10 after
156 EXECUTE_AND_VERIFY_SUBTREE_CHANGED(root->SetContentsOpaque(true)); 156 EXECUTE_AND_VERIFY_SUBTREE_CHANGED(root->SetContentsOpaque(true));
157 EXECUTE_AND_VERIFY_SUBTREE_CHANGED( 157 EXECUTE_AND_VERIFY_SUBTREE_CHANGED(
158 root->SetReplicaLayer(LayerImpl::Create(host_impl.active_tree(), 10))); 158 root->SetReplicaLayer(LayerImpl::Create(host_impl.active_tree(), 10)));
159 EXECUTE_AND_VERIFY_SUBTREE_CHANGED(root->SetPosition(arbitrary_point_f)); 159 EXECUTE_AND_VERIFY_SUBTREE_CHANGED(root->SetPosition(arbitrary_point_f));
160 EXECUTE_AND_VERIFY_SUBTREE_CHANGED(root->SetShouldFlattenTransform(false)); 160 EXECUTE_AND_VERIFY_SUBTREE_CHANGED(root->SetShouldFlattenTransform(false));
161 EXECUTE_AND_VERIFY_SUBTREE_CHANGED(root->Set3dSortingContextId(1)); 161 EXECUTE_AND_VERIFY_SUBTREE_CHANGED(root->Set3dSortingContextId(1));
162 EXECUTE_AND_VERIFY_SUBTREE_CHANGED( 162 EXECUTE_AND_VERIFY_SUBTREE_CHANGED(
163 root->SetDoubleSided(false)); // constructor initializes it to "true". 163 root->SetDoubleSided(false)); // constructor initializes it to "true".
164 EXECUTE_AND_VERIFY_SUBTREE_CHANGED(root->ScrollBy(arbitrary_vector2d)); 164 EXECUTE_AND_VERIFY_SUBTREE_CHANGED(root->ScrollBy(arbitrary_vector2d));
165 EXECUTE_AND_VERIFY_SUBTREE_CHANGED(root->SetScrollDelta(gfx::Vector2d())); 165 EXECUTE_AND_VERIFY_SUBTREE_CHANGED(root->SetScrollDelta(gfx::Vector2d()));
166 EXECUTE_AND_VERIFY_SUBTREE_CHANGED( 166 EXECUTE_AND_VERIFY_SUBTREE_CHANGED(root->PushScrollOffsetFromMainThread(
167 root->SetScrollOffset(gfx::ScrollOffset(arbitrary_vector2d))); 167 gfx::ScrollOffset(arbitrary_vector2d)));
168 EXECUTE_AND_VERIFY_SUBTREE_CHANGED(root->SetHideLayerAndSubtree(true)); 168 EXECUTE_AND_VERIFY_SUBTREE_CHANGED(root->SetHideLayerAndSubtree(true));
169 EXECUTE_AND_VERIFY_SUBTREE_CHANGED(root->SetOpacity(arbitrary_number)); 169 EXECUTE_AND_VERIFY_SUBTREE_CHANGED(root->SetOpacity(arbitrary_number));
170 EXECUTE_AND_VERIFY_SUBTREE_CHANGED(root->SetBlendMode(arbitrary_blend_mode)); 170 EXECUTE_AND_VERIFY_SUBTREE_CHANGED(root->SetBlendMode(arbitrary_blend_mode));
171 EXECUTE_AND_VERIFY_SUBTREE_CHANGED(root->SetTransform(arbitrary_transform)); 171 EXECUTE_AND_VERIFY_SUBTREE_CHANGED(root->SetTransform(arbitrary_transform));
172 172
173 // Changing these properties only affects the layer itself. 173 // Changing these properties only affects the layer itself.
174 EXECUTE_AND_VERIFY_ONLY_LAYER_CHANGED(root->SetContentBounds(arbitrary_size)); 174 EXECUTE_AND_VERIFY_ONLY_LAYER_CHANGED(root->SetContentBounds(arbitrary_size));
175 EXECUTE_AND_VERIFY_ONLY_LAYER_CHANGED( 175 EXECUTE_AND_VERIFY_ONLY_LAYER_CHANGED(
176 root->SetContentsScale(arbitrary_number, arbitrary_number)); 176 root->SetContentsScale(arbitrary_number, arbitrary_number));
177 EXECUTE_AND_VERIFY_ONLY_LAYER_CHANGED(root->SetDrawsContent(true)); 177 EXECUTE_AND_VERIFY_ONLY_LAYER_CHANGED(root->SetDrawsContent(true));
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
216 EXECUTE_AND_VERIFY_SUBTREE_DID_NOT_CHANGE( 216 EXECUTE_AND_VERIFY_SUBTREE_DID_NOT_CHANGE(
217 root->SetShouldFlattenTransform(false)); 217 root->SetShouldFlattenTransform(false));
218 EXECUTE_AND_VERIFY_SUBTREE_DID_NOT_CHANGE(root->Set3dSortingContextId(1)); 218 EXECUTE_AND_VERIFY_SUBTREE_DID_NOT_CHANGE(root->Set3dSortingContextId(1));
219 EXECUTE_AND_VERIFY_SUBTREE_DID_NOT_CHANGE( 219 EXECUTE_AND_VERIFY_SUBTREE_DID_NOT_CHANGE(
220 root->SetTransform(arbitrary_transform)); 220 root->SetTransform(arbitrary_transform));
221 EXECUTE_AND_VERIFY_SUBTREE_DID_NOT_CHANGE( 221 EXECUTE_AND_VERIFY_SUBTREE_DID_NOT_CHANGE(
222 root->SetDoubleSided(false)); // constructor initializes it to "true". 222 root->SetDoubleSided(false)); // constructor initializes it to "true".
223 EXECUTE_AND_VERIFY_SUBTREE_DID_NOT_CHANGE( 223 EXECUTE_AND_VERIFY_SUBTREE_DID_NOT_CHANGE(
224 root->SetScrollDelta(gfx::Vector2d())); 224 root->SetScrollDelta(gfx::Vector2d()));
225 EXECUTE_AND_VERIFY_SUBTREE_DID_NOT_CHANGE( 225 EXECUTE_AND_VERIFY_SUBTREE_DID_NOT_CHANGE(
226 root->SetScrollOffset(gfx::ScrollOffset(arbitrary_vector2d))); 226 root->PushScrollOffsetFromMainThread(
227 gfx::ScrollOffset(arbitrary_vector2d)));
227 EXECUTE_AND_VERIFY_SUBTREE_DID_NOT_CHANGE( 228 EXECUTE_AND_VERIFY_SUBTREE_DID_NOT_CHANGE(
228 root->SetContentBounds(arbitrary_size)); 229 root->SetContentBounds(arbitrary_size));
229 EXECUTE_AND_VERIFY_SUBTREE_DID_NOT_CHANGE( 230 EXECUTE_AND_VERIFY_SUBTREE_DID_NOT_CHANGE(
230 root->SetContentsScale(arbitrary_number, arbitrary_number)); 231 root->SetContentsScale(arbitrary_number, arbitrary_number));
231 EXECUTE_AND_VERIFY_SUBTREE_DID_NOT_CHANGE(root->SetContentsOpaque(true)); 232 EXECUTE_AND_VERIFY_SUBTREE_DID_NOT_CHANGE(root->SetContentsOpaque(true));
232 EXECUTE_AND_VERIFY_SUBTREE_DID_NOT_CHANGE(root->SetOpacity(arbitrary_number)); 233 EXECUTE_AND_VERIFY_SUBTREE_DID_NOT_CHANGE(root->SetOpacity(arbitrary_number));
233 EXECUTE_AND_VERIFY_SUBTREE_DID_NOT_CHANGE( 234 EXECUTE_AND_VERIFY_SUBTREE_DID_NOT_CHANGE(
234 root->SetBlendMode(arbitrary_blend_mode)); 235 root->SetBlendMode(arbitrary_blend_mode));
235 EXECUTE_AND_VERIFY_SUBTREE_DID_NOT_CHANGE( 236 EXECUTE_AND_VERIFY_SUBTREE_DID_NOT_CHANGE(
236 root->SetIsRootForIsolatedGroup(true)); 237 root->SetIsRootForIsolatedGroup(true));
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
296 VERIFY_NEEDS_UPDATE_DRAW_PROPERTIES(layer->SetBounds(large_size)); 297 VERIFY_NEEDS_UPDATE_DRAW_PROPERTIES(layer->SetBounds(large_size));
297 VERIFY_NO_NEEDS_UPDATE_DRAW_PROPERTIES(layer->SetBounds(large_size)); 298 VERIFY_NO_NEEDS_UPDATE_DRAW_PROPERTIES(layer->SetBounds(large_size));
298 VERIFY_NEEDS_UPDATE_DRAW_PROPERTIES(layer->ScrollBy(arbitrary_vector2d)); 299 VERIFY_NEEDS_UPDATE_DRAW_PROPERTIES(layer->ScrollBy(arbitrary_vector2d));
299 VERIFY_NO_NEEDS_UPDATE_DRAW_PROPERTIES(layer->ScrollBy(gfx::Vector2d())); 300 VERIFY_NO_NEEDS_UPDATE_DRAW_PROPERTIES(layer->ScrollBy(gfx::Vector2d()));
300 layer->SetScrollDelta(gfx::Vector2d(0, 0)); 301 layer->SetScrollDelta(gfx::Vector2d(0, 0));
301 host_impl.ForcePrepareToDraw(); 302 host_impl.ForcePrepareToDraw();
302 VERIFY_NEEDS_UPDATE_DRAW_PROPERTIES( 303 VERIFY_NEEDS_UPDATE_DRAW_PROPERTIES(
303 layer->SetScrollDelta(arbitrary_vector2d)); 304 layer->SetScrollDelta(arbitrary_vector2d));
304 VERIFY_NO_NEEDS_UPDATE_DRAW_PROPERTIES( 305 VERIFY_NO_NEEDS_UPDATE_DRAW_PROPERTIES(
305 layer->SetScrollDelta(arbitrary_vector2d)); 306 layer->SetScrollDelta(arbitrary_vector2d));
306 VERIFY_NEEDS_UPDATE_DRAW_PROPERTIES( 307 VERIFY_NEEDS_UPDATE_DRAW_PROPERTIES(layer->PushScrollOffsetFromMainThread(
307 layer->SetScrollOffset(gfx::ScrollOffset(arbitrary_vector2d))); 308 gfx::ScrollOffset(arbitrary_vector2d)));
308 VERIFY_NO_NEEDS_UPDATE_DRAW_PROPERTIES( 309 VERIFY_NO_NEEDS_UPDATE_DRAW_PROPERTIES(layer->PushScrollOffsetFromMainThread(
309 layer->SetScrollOffset(gfx::ScrollOffset(arbitrary_vector2d))); 310 gfx::ScrollOffset(arbitrary_vector2d)));
310 311
311 // Unrelated functions, always set to new values, always set needs update. 312 // Unrelated functions, always set to new values, always set needs update.
312 VERIFY_NEEDS_UPDATE_DRAW_PROPERTIES( 313 VERIFY_NEEDS_UPDATE_DRAW_PROPERTIES(
313 layer->SetMaskLayer(LayerImpl::Create(host_impl.active_tree(), 4))); 314 layer->SetMaskLayer(LayerImpl::Create(host_impl.active_tree(), 4)));
314 VERIFY_NEEDS_UPDATE_DRAW_PROPERTIES(layer->SetMasksToBounds(true)); 315 VERIFY_NEEDS_UPDATE_DRAW_PROPERTIES(layer->SetMasksToBounds(true));
315 VERIFY_NEEDS_UPDATE_DRAW_PROPERTIES(layer->SetContentsOpaque(true)); 316 VERIFY_NEEDS_UPDATE_DRAW_PROPERTIES(layer->SetContentsOpaque(true));
316 VERIFY_NEEDS_UPDATE_DRAW_PROPERTIES( 317 VERIFY_NEEDS_UPDATE_DRAW_PROPERTIES(
317 layer->SetReplicaLayer(LayerImpl::Create(host_impl.active_tree(), 5))); 318 layer->SetReplicaLayer(LayerImpl::Create(host_impl.active_tree(), 5)));
318 VERIFY_NEEDS_UPDATE_DRAW_PROPERTIES(layer->SetPosition(arbitrary_point_f)); 319 VERIFY_NEEDS_UPDATE_DRAW_PROPERTIES(layer->SetPosition(arbitrary_point_f));
319 VERIFY_NEEDS_UPDATE_DRAW_PROPERTIES(layer->SetShouldFlattenTransform(false)); 320 VERIFY_NEEDS_UPDATE_DRAW_PROPERTIES(layer->SetShouldFlattenTransform(false));
(...skipping 140 matching lines...) Expand 10 before | Expand all | Expand 10 after
460 FakeImplProxy proxy_; 461 FakeImplProxy proxy_;
461 TestSharedBitmapManager shared_bitmap_manager_; 462 TestSharedBitmapManager shared_bitmap_manager_;
462 FakeLayerTreeHostImpl host_impl_; 463 FakeLayerTreeHostImpl host_impl_;
463 int root_id_; 464 int root_id_;
464 }; 465 };
465 466
466 TEST_F(LayerImplScrollTest, ScrollByWithZeroOffset) { 467 TEST_F(LayerImplScrollTest, ScrollByWithZeroOffset) {
467 // Test that LayerImpl::ScrollBy only affects ScrollDelta and total scroll 468 // Test that LayerImpl::ScrollBy only affects ScrollDelta and total scroll
468 // offset is bounded by the range [0, max scroll offset]. 469 // offset is bounded by the range [0, max scroll offset].
469 470
470 EXPECT_VECTOR_EQ(gfx::Vector2dF(), layer()->TotalScrollOffset()); 471 EXPECT_VECTOR_EQ(gfx::Vector2dF(), layer()->CurrentScrollOffset());
471 EXPECT_VECTOR_EQ(gfx::Vector2dF(), layer()->scroll_offset()); 472 EXPECT_VECTOR_EQ(gfx::Vector2dF(), layer()->BaseScrollOffset());
472 EXPECT_VECTOR_EQ(gfx::Vector2dF(), layer()->ScrollDelta()); 473 EXPECT_VECTOR_EQ(gfx::Vector2dF(), layer()->ScrollDelta());
473 474
474 layer()->ScrollBy(gfx::Vector2dF(-100, 100)); 475 layer()->ScrollBy(gfx::Vector2dF(-100, 100));
475 EXPECT_VECTOR_EQ(gfx::Vector2dF(0, 80), layer()->TotalScrollOffset()); 476 EXPECT_VECTOR_EQ(gfx::Vector2dF(0, 80), layer()->CurrentScrollOffset());
476 477
477 EXPECT_VECTOR_EQ(layer()->ScrollDelta(), layer()->TotalScrollOffset()); 478 EXPECT_VECTOR_EQ(layer()->ScrollDelta(), layer()->CurrentScrollOffset());
478 EXPECT_VECTOR_EQ(gfx::Vector2dF(), layer()->scroll_offset()); 479 EXPECT_VECTOR_EQ(gfx::Vector2dF(), layer()->BaseScrollOffset());
479 480
480 layer()->ScrollBy(gfx::Vector2dF(100, -100)); 481 layer()->ScrollBy(gfx::Vector2dF(100, -100));
481 EXPECT_VECTOR_EQ(gfx::Vector2dF(50, 0), layer()->TotalScrollOffset()); 482 EXPECT_VECTOR_EQ(gfx::Vector2dF(50, 0), layer()->CurrentScrollOffset());
482 483
483 EXPECT_VECTOR_EQ(layer()->ScrollDelta(), layer()->TotalScrollOffset()); 484 EXPECT_VECTOR_EQ(layer()->ScrollDelta(), layer()->CurrentScrollOffset());
484 EXPECT_VECTOR_EQ(gfx::Vector2dF(), layer()->scroll_offset()); 485 EXPECT_VECTOR_EQ(gfx::Vector2dF(), layer()->BaseScrollOffset());
485 } 486 }
486 487
487 TEST_F(LayerImplScrollTest, ScrollByWithNonZeroOffset) { 488 TEST_F(LayerImplScrollTest, ScrollByWithNonZeroOffset) {
488 gfx::ScrollOffset scroll_offset(10, 5); 489 gfx::ScrollOffset scroll_offset(10, 5);
489 layer()->SetScrollOffset(scroll_offset); 490 layer()->PushScrollOffsetFromMainThread(scroll_offset);
490 491
491 EXPECT_VECTOR_EQ(scroll_offset, layer()->TotalScrollOffset()); 492 EXPECT_VECTOR_EQ(scroll_offset, layer()->CurrentScrollOffset());
492 EXPECT_VECTOR_EQ(scroll_offset, layer()->scroll_offset()); 493 EXPECT_VECTOR_EQ(scroll_offset, layer()->BaseScrollOffset());
493 EXPECT_VECTOR_EQ(gfx::Vector2dF(), layer()->ScrollDelta()); 494 EXPECT_VECTOR_EQ(gfx::Vector2dF(), layer()->ScrollDelta());
494 495
495 layer()->ScrollBy(gfx::Vector2dF(-100, 100)); 496 layer()->ScrollBy(gfx::Vector2dF(-100, 100));
496 EXPECT_VECTOR_EQ(gfx::Vector2dF(0, 80), layer()->TotalScrollOffset()); 497 EXPECT_VECTOR_EQ(gfx::Vector2dF(0, 80), layer()->CurrentScrollOffset());
497 498
498 EXPECT_VECTOR_EQ(gfx::ScrollOffsetWithDelta(scroll_offset, 499 EXPECT_VECTOR_EQ(
499 layer()->ScrollDelta()), 500 gfx::ScrollOffsetWithDelta(scroll_offset, layer()->ScrollDelta()),
500 layer()->TotalScrollOffset()); 501 layer()->CurrentScrollOffset());
501 EXPECT_VECTOR_EQ(scroll_offset, layer()->scroll_offset()); 502 EXPECT_VECTOR_EQ(scroll_offset, layer()->BaseScrollOffset());
502 503
503 layer()->ScrollBy(gfx::Vector2dF(100, -100)); 504 layer()->ScrollBy(gfx::Vector2dF(100, -100));
504 EXPECT_VECTOR_EQ(gfx::Vector2dF(50, 0), layer()->TotalScrollOffset()); 505 EXPECT_VECTOR_EQ(gfx::Vector2dF(50, 0), layer()->CurrentScrollOffset());
505 506
506 EXPECT_VECTOR_EQ(gfx::ScrollOffsetWithDelta(scroll_offset, 507 EXPECT_VECTOR_EQ(
507 layer()->ScrollDelta()), 508 gfx::ScrollOffsetWithDelta(scroll_offset, layer()->ScrollDelta()),
508 layer()->TotalScrollOffset()); 509 layer()->CurrentScrollOffset());
509 EXPECT_VECTOR_EQ(scroll_offset, layer()->scroll_offset()); 510 EXPECT_VECTOR_EQ(scroll_offset, layer()->BaseScrollOffset());
510 } 511 }
511 512
512 class ScrollDelegateIgnore : public LayerImpl::ScrollOffsetDelegate { 513 class ScrollDelegateIgnore : public LayerImpl::ScrollOffsetDelegate {
513 public: 514 public:
514 void SetTotalScrollOffset(const gfx::ScrollOffset& new_value) override { 515 void SetCurrentScrollOffset(const gfx::ScrollOffset& new_value) override {
515 last_attempted_set_offset_ = new_value; 516 last_attempted_set_offset_ = new_value;
516 } 517 }
517 gfx::ScrollOffset last_attempted_set_offset() const { 518 gfx::ScrollOffset last_attempted_set_offset() const {
518 return last_attempted_set_offset_; 519 return last_attempted_set_offset_;
519 } 520 }
520 521
521 gfx::ScrollOffset GetTotalScrollOffset() override { 522 gfx::ScrollOffset GetCurrentScrollOffset() override {
522 return gfx::ScrollOffset(fixed_offset_); 523 return gfx::ScrollOffset(fixed_offset_);
523 } 524 }
524 bool IsExternalFlingActive() const override { return false; } 525 bool IsExternalFlingActive() const override { return false; }
525 void Update() const override { } 526 void Update() const override { }
526 527
527 void set_fixed_offset(const gfx::Vector2dF& fixed_offset) { 528 void set_fixed_offset(const gfx::Vector2dF& fixed_offset) {
528 fixed_offset_ = fixed_offset; 529 fixed_offset_ = fixed_offset;
529 } 530 }
530 531
531 private: 532 private:
532 gfx::ScrollOffset last_attempted_set_offset_; 533 gfx::ScrollOffset last_attempted_set_offset_;
533 gfx::Vector2dF fixed_offset_; 534 gfx::Vector2dF fixed_offset_;
534 }; 535 };
535 536
536 TEST_F(LayerImplScrollTest, ScrollByWithIgnoringDelegate) { 537 TEST_F(LayerImplScrollTest, ScrollByWithIgnoringDelegate) {
537 gfx::ScrollOffset scroll_offset(10, 5); 538 gfx::ScrollOffset scroll_offset(10, 5);
538 layer()->SetScrollOffset(scroll_offset); 539 layer()->PushScrollOffsetFromMainThread(scroll_offset);
539 540
540 EXPECT_VECTOR_EQ(scroll_offset, layer()->TotalScrollOffset()); 541 EXPECT_VECTOR_EQ(scroll_offset, layer()->CurrentScrollOffset());
541 EXPECT_VECTOR_EQ(scroll_offset, layer()->scroll_offset()); 542 EXPECT_VECTOR_EQ(scroll_offset, layer()->BaseScrollOffset());
542 EXPECT_VECTOR_EQ(gfx::Vector2dF(), layer()->ScrollDelta()); 543 EXPECT_VECTOR_EQ(gfx::Vector2dF(), layer()->ScrollDelta());
543 544
544 ScrollDelegateIgnore delegate; 545 ScrollDelegateIgnore delegate;
545 gfx::Vector2dF fixed_offset(32, 12); 546 gfx::Vector2dF fixed_offset(32, 12);
546 delegate.set_fixed_offset(fixed_offset); 547 delegate.set_fixed_offset(fixed_offset);
547 layer()->SetScrollOffsetDelegate(&delegate); 548 layer()->SetScrollOffsetDelegate(&delegate);
549 layer()->RefreshFromScrollDelegate();
548 550
549 EXPECT_VECTOR_EQ(fixed_offset, layer()->TotalScrollOffset()); 551 EXPECT_VECTOR_EQ(fixed_offset, layer()->CurrentScrollOffset());
550 EXPECT_VECTOR_EQ(scroll_offset, layer()->scroll_offset()); 552 EXPECT_VECTOR_EQ(scroll_offset, layer()->BaseScrollOffset());
551 553
552 layer()->ScrollBy(gfx::Vector2dF(-100, 100)); 554 layer()->ScrollBy(gfx::Vector2dF(-100, 100));
553 555
554 EXPECT_VECTOR_EQ(fixed_offset, layer()->TotalScrollOffset()); 556 EXPECT_VECTOR_EQ(fixed_offset, layer()->CurrentScrollOffset());
555 EXPECT_VECTOR_EQ(scroll_offset, layer()->scroll_offset()); 557 EXPECT_VECTOR_EQ(scroll_offset, layer()->BaseScrollOffset());
556 558
557 layer()->SetScrollOffsetDelegate(nullptr); 559 layer()->SetScrollOffsetDelegate(nullptr);
558 560
559 EXPECT_VECTOR_EQ(fixed_offset, layer()->TotalScrollOffset()); 561 EXPECT_VECTOR_EQ(fixed_offset, layer()->CurrentScrollOffset());
560 EXPECT_VECTOR_EQ(scroll_offset, layer()->scroll_offset()); 562 EXPECT_VECTOR_EQ(scroll_offset, layer()->BaseScrollOffset());
561 563
562 gfx::Vector2dF scroll_delta(1, 1); 564 gfx::Vector2dF scroll_delta(1, 1);
563 layer()->ScrollBy(scroll_delta); 565 layer()->ScrollBy(scroll_delta);
564 566
565 EXPECT_VECTOR_EQ(fixed_offset + scroll_delta, layer()->TotalScrollOffset()); 567 EXPECT_VECTOR_EQ(fixed_offset + scroll_delta, layer()->CurrentScrollOffset());
566 EXPECT_VECTOR_EQ(scroll_offset, layer()->scroll_offset()); 568 EXPECT_VECTOR_EQ(scroll_offset, layer()->BaseScrollOffset());
567 } 569 }
568 570
569 class ScrollDelegateAccept : public LayerImpl::ScrollOffsetDelegate { 571 class ScrollDelegateAccept : public LayerImpl::ScrollOffsetDelegate {
570 public: 572 public:
571 void SetTotalScrollOffset(const gfx::ScrollOffset& new_value) override { 573 void SetCurrentScrollOffset(const gfx::ScrollOffset& new_value) override {
572 current_offset_ = new_value; 574 current_offset_ = new_value;
573 } 575 }
574 gfx::ScrollOffset GetTotalScrollOffset() override { return current_offset_; } 576 gfx::ScrollOffset GetCurrentScrollOffset() override {
577 return current_offset_;
578 }
575 bool IsExternalFlingActive() const override { return false; } 579 bool IsExternalFlingActive() const override { return false; }
576 void Update() const override { } 580 void Update() const override { }
577 581
578 private: 582 private:
579 gfx::ScrollOffset current_offset_; 583 gfx::ScrollOffset current_offset_;
580 }; 584 };
581 585
582 TEST_F(LayerImplScrollTest, ScrollByWithAcceptingDelegate) { 586 TEST_F(LayerImplScrollTest, ScrollByWithAcceptingDelegate) {
583 gfx::ScrollOffset scroll_offset(10, 5); 587 gfx::ScrollOffset scroll_offset(10, 5);
584 layer()->SetScrollOffset(scroll_offset); 588 layer()->PushScrollOffsetFromMainThread(scroll_offset);
585 589
586 EXPECT_VECTOR_EQ(scroll_offset, layer()->TotalScrollOffset()); 590 EXPECT_VECTOR_EQ(scroll_offset, layer()->CurrentScrollOffset());
587 EXPECT_VECTOR_EQ(scroll_offset, layer()->scroll_offset()); 591 EXPECT_VECTOR_EQ(scroll_offset, layer()->BaseScrollOffset());
588 EXPECT_VECTOR_EQ(gfx::Vector2dF(), layer()->ScrollDelta()); 592 EXPECT_VECTOR_EQ(gfx::Vector2dF(), layer()->ScrollDelta());
589 593
590 ScrollDelegateAccept delegate; 594 ScrollDelegateAccept delegate;
591 layer()->SetScrollOffsetDelegate(&delegate); 595 layer()->SetScrollOffsetDelegate(&delegate);
592 596
593 EXPECT_VECTOR_EQ(scroll_offset, layer()->TotalScrollOffset()); 597 EXPECT_VECTOR_EQ(scroll_offset, layer()->CurrentScrollOffset());
594 EXPECT_VECTOR_EQ(scroll_offset, layer()->scroll_offset()); 598 EXPECT_VECTOR_EQ(scroll_offset, layer()->BaseScrollOffset());
595 EXPECT_VECTOR_EQ(gfx::Vector2dF(), layer()->ScrollDelta()); 599 EXPECT_VECTOR_EQ(gfx::Vector2dF(), layer()->ScrollDelta());
596 600
597 layer()->ScrollBy(gfx::Vector2dF(-100, 100)); 601 layer()->ScrollBy(gfx::Vector2dF(-100, 100));
598 602
599 EXPECT_VECTOR_EQ(gfx::Vector2dF(0, 80), layer()->TotalScrollOffset()); 603 EXPECT_VECTOR_EQ(gfx::Vector2dF(0, 80), layer()->CurrentScrollOffset());
600 EXPECT_VECTOR_EQ(scroll_offset, layer()->scroll_offset()); 604 EXPECT_VECTOR_EQ(scroll_offset, layer()->BaseScrollOffset());
601 605
602 layer()->SetScrollOffsetDelegate(nullptr); 606 layer()->SetScrollOffsetDelegate(nullptr);
603 607
604 EXPECT_VECTOR_EQ(gfx::Vector2dF(0, 80), layer()->TotalScrollOffset()); 608 EXPECT_VECTOR_EQ(gfx::Vector2dF(0, 80), layer()->CurrentScrollOffset());
605 EXPECT_VECTOR_EQ(scroll_offset, layer()->scroll_offset()); 609 EXPECT_VECTOR_EQ(scroll_offset, layer()->BaseScrollOffset());
606 610
607 gfx::Vector2dF scroll_delta(1, 1); 611 gfx::Vector2dF scroll_delta(1, 1);
608 layer()->ScrollBy(scroll_delta); 612 layer()->ScrollBy(scroll_delta);
609 613
610 EXPECT_VECTOR_EQ(gfx::Vector2dF(1, 80), layer()->TotalScrollOffset()); 614 EXPECT_VECTOR_EQ(gfx::Vector2dF(1, 80), layer()->CurrentScrollOffset());
611 EXPECT_VECTOR_EQ(scroll_offset, layer()->scroll_offset()); 615 EXPECT_VECTOR_EQ(scroll_offset, layer()->BaseScrollOffset());
612 } 616 }
613 617
614 TEST_F(LayerImplScrollTest, ApplySentScrollsNoDelegate) { 618 TEST_F(LayerImplScrollTest, ApplySentScrollsNoDelegate) {
615 gfx::ScrollOffset scroll_offset(10, 5); 619 gfx::ScrollOffset scroll_offset(10, 5);
616 gfx::Vector2dF scroll_delta(20.5f, 8.5f); 620 gfx::Vector2dF scroll_delta(20.5f, 8.5f);
617 gfx::Vector2d sent_scroll_delta(12, -3); 621 gfx::Vector2d sent_scroll_delta(12, -3);
618 622
619 layer()->SetScrollOffset(scroll_offset); 623 layer()->PushScrollOffsetFromMainThread(scroll_offset);
620 layer()->ScrollBy(scroll_delta); 624 layer()->ScrollBy(sent_scroll_delta);
621 layer()->SetSentScrollDelta(sent_scroll_delta); 625 layer()->PullDeltaForMainThread();
626 layer()->SetCurrentScrollOffset(scroll_offset +
627 gfx::ScrollOffset(scroll_delta));
622 628
623 EXPECT_VECTOR_EQ(gfx::ScrollOffsetWithDelta(scroll_offset, scroll_delta), 629 EXPECT_VECTOR_EQ(gfx::ScrollOffsetWithDelta(scroll_offset, scroll_delta),
624 layer()->TotalScrollOffset()); 630 layer()->CurrentScrollOffset());
625 EXPECT_VECTOR_EQ(scroll_delta, layer()->ScrollDelta()); 631 EXPECT_VECTOR_EQ(scroll_delta, layer()->ScrollDelta());
626 EXPECT_VECTOR_EQ(scroll_offset, layer()->scroll_offset()); 632 EXPECT_VECTOR_EQ(scroll_offset, layer()->BaseScrollOffset());
627 EXPECT_VECTOR_EQ(sent_scroll_delta, layer()->sent_scroll_delta());
628 633
629 layer()->ApplySentScrollDeltasFromAbortedCommit(); 634 layer()->ApplySentScrollDeltasFromAbortedCommit();
630 635
631 EXPECT_VECTOR_EQ(gfx::ScrollOffsetWithDelta(scroll_offset, scroll_delta), 636 EXPECT_VECTOR_EQ(gfx::ScrollOffsetWithDelta(scroll_offset, scroll_delta),
632 layer()->TotalScrollOffset()); 637 layer()->CurrentScrollOffset());
633 EXPECT_VECTOR_EQ(scroll_delta - sent_scroll_delta, layer()->ScrollDelta()); 638 EXPECT_VECTOR_EQ(scroll_delta - sent_scroll_delta, layer()->ScrollDelta());
634 EXPECT_VECTOR_EQ(gfx::ScrollOffsetWithDelta(scroll_offset, sent_scroll_delta), 639 EXPECT_VECTOR_EQ(gfx::ScrollOffsetWithDelta(scroll_offset, sent_scroll_delta),
635 layer()->scroll_offset()); 640 layer()->BaseScrollOffset());
636 EXPECT_VECTOR_EQ(gfx::Vector2d(), layer()->sent_scroll_delta());
637 } 641 }
638 642
639 TEST_F(LayerImplScrollTest, ApplySentScrollsWithIgnoringDelegate) { 643 TEST_F(LayerImplScrollTest, ApplySentScrollsWithIgnoringDelegate) {
640 gfx::ScrollOffset scroll_offset(10, 5); 644 gfx::ScrollOffset scroll_offset(10, 5);
641 gfx::Vector2d sent_scroll_delta(12, -3); 645 gfx::Vector2d sent_scroll_delta(12, -3);
642 gfx::Vector2dF fixed_offset(32, 12); 646 gfx::Vector2dF fixed_offset(32, 12);
643 647
644 layer()->SetScrollOffset(scroll_offset); 648 layer()->PushScrollOffsetFromMainThread(scroll_offset);
649 layer()->ScrollBy(sent_scroll_delta);
650 layer()->PullDeltaForMainThread();
651 layer()->SetCurrentScrollOffset(scroll_offset);
645 ScrollDelegateIgnore delegate; 652 ScrollDelegateIgnore delegate;
646 delegate.set_fixed_offset(fixed_offset); 653 delegate.set_fixed_offset(fixed_offset);
647 layer()->SetScrollOffsetDelegate(&delegate); 654 layer()->SetScrollOffsetDelegate(&delegate);
648 layer()->SetSentScrollDelta(sent_scroll_delta); 655 layer()->RefreshFromScrollDelegate();
649 656
650 EXPECT_VECTOR_EQ(fixed_offset, layer()->TotalScrollOffset()); 657 EXPECT_VECTOR_EQ(fixed_offset, layer()->CurrentScrollOffset());
651 EXPECT_VECTOR_EQ(scroll_offset, layer()->scroll_offset()); 658 EXPECT_VECTOR_EQ(scroll_offset, layer()->BaseScrollOffset());
652 EXPECT_VECTOR_EQ(sent_scroll_delta, layer()->sent_scroll_delta());
653 659
654 layer()->ApplySentScrollDeltasFromAbortedCommit(); 660 layer()->ApplySentScrollDeltasFromAbortedCommit();
655 661
656 EXPECT_VECTOR_EQ(fixed_offset, delegate.last_attempted_set_offset()); 662 EXPECT_VECTOR_EQ(fixed_offset, delegate.last_attempted_set_offset());
657 663
658 EXPECT_VECTOR_EQ(fixed_offset, layer()->TotalScrollOffset()); 664 EXPECT_VECTOR_EQ(fixed_offset, layer()->CurrentScrollOffset());
659 EXPECT_VECTOR_EQ(gfx::ScrollOffsetWithDelta(scroll_offset, sent_scroll_delta), 665 EXPECT_VECTOR_EQ(gfx::ScrollOffsetWithDelta(scroll_offset, sent_scroll_delta),
660 layer()->scroll_offset()); 666 layer()->BaseScrollOffset());
661 EXPECT_VECTOR_EQ(gfx::Vector2d(), layer()->sent_scroll_delta());
662 } 667 }
663 668
664 TEST_F(LayerImplScrollTest, ApplySentScrollsWithAcceptingDelegate) { 669 TEST_F(LayerImplScrollTest, ApplySentScrollsWithAcceptingDelegate) {
665 gfx::ScrollOffset scroll_offset(10, 5); 670 gfx::ScrollOffset scroll_offset(10, 5);
666 gfx::Vector2d sent_scroll_delta(12, -3); 671 gfx::Vector2d sent_scroll_delta(12, -3);
667 gfx::Vector2dF scroll_delta(20.5f, 8.5f); 672 gfx::Vector2dF scroll_delta(20.5f, 8.5f);
668 673
669 layer()->SetScrollOffset(scroll_offset); 674 layer()->PushScrollOffsetFromMainThread(scroll_offset);
675 layer()->ScrollBy(sent_scroll_delta);
676 layer()->PullDeltaForMainThread();
670 ScrollDelegateAccept delegate; 677 ScrollDelegateAccept delegate;
671 layer()->SetScrollOffsetDelegate(&delegate); 678 layer()->SetScrollOffsetDelegate(&delegate);
672 layer()->ScrollBy(scroll_delta); 679 layer()->SetCurrentScrollOffset(scroll_offset +
673 layer()->SetSentScrollDelta(sent_scroll_delta); 680 gfx::ScrollOffset(scroll_delta));
674 681
675 EXPECT_VECTOR_EQ(gfx::ScrollOffsetWithDelta(scroll_offset, scroll_delta), 682 EXPECT_VECTOR_EQ(gfx::ScrollOffsetWithDelta(scroll_offset, scroll_delta),
676 layer()->TotalScrollOffset()); 683 layer()->CurrentScrollOffset());
677 EXPECT_VECTOR_EQ(scroll_offset, layer()->scroll_offset()); 684 EXPECT_VECTOR_EQ(scroll_offset, layer()->BaseScrollOffset());
678 EXPECT_VECTOR_EQ(sent_scroll_delta, layer()->sent_scroll_delta());
679 685
680 layer()->ApplySentScrollDeltasFromAbortedCommit(); 686 layer()->ApplySentScrollDeltasFromAbortedCommit();
681 687
682 EXPECT_VECTOR_EQ(gfx::ScrollOffsetWithDelta(scroll_offset, scroll_delta), 688 EXPECT_VECTOR_EQ(gfx::ScrollOffsetWithDelta(scroll_offset, scroll_delta),
683 layer()->TotalScrollOffset()); 689 layer()->CurrentScrollOffset());
684 EXPECT_VECTOR_EQ(gfx::ScrollOffsetWithDelta(scroll_offset, sent_scroll_delta), 690 EXPECT_VECTOR_EQ(gfx::ScrollOffsetWithDelta(scroll_offset, sent_scroll_delta),
685 layer()->scroll_offset()); 691 layer()->BaseScrollOffset());
686 EXPECT_VECTOR_EQ(gfx::Vector2d(), layer()->sent_scroll_delta());
687 } 692 }
688 693
689 TEST_F(LayerImplScrollTest, ScrollUserUnscrollableLayer) { 694 TEST_F(LayerImplScrollTest, ScrollUserUnscrollableLayer) {
690 gfx::ScrollOffset scroll_offset(10, 5); 695 gfx::ScrollOffset scroll_offset(10, 5);
691 gfx::Vector2dF scroll_delta(20.5f, 8.5f); 696 gfx::Vector2dF scroll_delta(20.5f, 8.5f);
692 697
693 layer()->set_user_scrollable_vertical(false); 698 layer()->set_user_scrollable_vertical(false);
694 layer()->SetScrollOffset(scroll_offset); 699 layer()->PushScrollOffsetFromMainThread(scroll_offset);
695 gfx::Vector2dF unscrolled = layer()->ScrollBy(scroll_delta); 700 gfx::Vector2dF unscrolled = layer()->ScrollBy(scroll_delta);
696 701
697 EXPECT_VECTOR_EQ(gfx::Vector2dF(0, 8.5f), unscrolled); 702 EXPECT_VECTOR_EQ(gfx::Vector2dF(0, 8.5f), unscrolled);
698 EXPECT_VECTOR_EQ(gfx::Vector2dF(30.5f, 5), layer()->TotalScrollOffset()); 703 EXPECT_VECTOR_EQ(gfx::Vector2dF(30.5f, 5), layer()->CurrentScrollOffset());
699 } 704 }
700 705
701 TEST_F(LayerImplScrollTest, PushPropertiesToMirrorsTotalScrollOffset) { 706 TEST_F(LayerImplScrollTest, PushPropertiesToMirrorsCurrentScrollOffset) {
702 gfx::ScrollOffset scroll_offset(10, 5); 707 gfx::ScrollOffset scroll_offset(10, 5);
703 gfx::Vector2dF scroll_delta(12, 18); 708 gfx::Vector2dF scroll_delta(12, 18);
704 709
705 host_impl().CreatePendingTree(); 710 host_impl().CreatePendingTree();
706 711
707 layer()->SetScrollOffset(scroll_offset); 712 layer()->PushScrollOffsetFromMainThread(scroll_offset);
708 gfx::Vector2dF unscrolled = layer()->ScrollBy(scroll_delta); 713 gfx::Vector2dF unscrolled = layer()->ScrollBy(scroll_delta);
709 714
710 EXPECT_VECTOR_EQ(gfx::Vector2dF(0, 0), unscrolled); 715 EXPECT_VECTOR_EQ(gfx::Vector2dF(0, 0), unscrolled);
711 EXPECT_VECTOR_EQ(gfx::Vector2dF(22, 23), layer()->TotalScrollOffset()); 716 EXPECT_VECTOR_EQ(gfx::Vector2dF(22, 23), layer()->CurrentScrollOffset());
712 717
713 layer()->SetSentScrollDelta(scroll_delta); 718 layer()->PullDeltaForMainThread();
714 719
715 scoped_ptr<LayerImpl> pending_layer = 720 scoped_ptr<LayerImpl> pending_layer = LayerImpl::Create(
716 LayerImpl::Create(host_impl().sync_tree(), layer()->id()); 721 host_impl().sync_tree(), layer()->id(), layer()->synced_scroll_offset());
717 pending_layer->SetScrollOffset(layer()->TotalScrollOffset()); 722 pending_layer->PushScrollOffsetFromMainThread(layer()->CurrentScrollOffset());
718 723
719 pending_layer->PushPropertiesTo(layer()); 724 pending_layer->PushPropertiesTo(layer());
720 725
721 EXPECT_VECTOR_EQ(gfx::Vector2dF(22, 23), layer()->TotalScrollOffset()); 726 EXPECT_VECTOR_EQ(gfx::Vector2dF(22, 23), layer()->CurrentScrollOffset());
722 EXPECT_VECTOR_EQ(layer()->TotalScrollOffset(), 727 EXPECT_VECTOR_EQ(layer()->CurrentScrollOffset(),
723 pending_layer->TotalScrollOffset()); 728 pending_layer->CurrentScrollOffset());
724 } 729 }
725 730
726 TEST_F(LayerImplScrollTest, SetNewScrollbarParameters) { 731 TEST_F(LayerImplScrollTest, SetNewScrollbarParameters) {
727 gfx::ScrollOffset scroll_offset(10, 5); 732 gfx::ScrollOffset scroll_offset(10, 5);
728 layer()->SetScrollOffset(scroll_offset); 733 layer()->PushScrollOffsetFromMainThread(scroll_offset);
729 734
730 scoped_ptr<PaintedScrollbarLayerImpl> vertical_scrollbar( 735 scoped_ptr<PaintedScrollbarLayerImpl> vertical_scrollbar(
731 PaintedScrollbarLayerImpl::Create(tree(), 100, VERTICAL)); 736 PaintedScrollbarLayerImpl::Create(tree(), 100, VERTICAL));
732 vertical_scrollbar->SetScrollLayerAndClipLayerByIds( 737 vertical_scrollbar->SetScrollLayerAndClipLayerByIds(
733 layer()->id(), tree()->root_layer()->id()); 738 layer()->id(), tree()->root_layer()->id());
734 739
735 int expected_vertical_maximum = 740 int expected_vertical_maximum =
736 layer()->bounds().height() - tree()->root_layer()->bounds().height(); 741 layer()->bounds().height() - tree()->root_layer()->bounds().height();
737 EXPECT_EQ(expected_vertical_maximum, vertical_scrollbar->maximum()); 742 EXPECT_EQ(expected_vertical_maximum, vertical_scrollbar->maximum());
738 EXPECT_EQ(scroll_offset.y(), vertical_scrollbar->current_pos()); 743 EXPECT_EQ(scroll_offset.y(), vertical_scrollbar->current_pos());
(...skipping 130 matching lines...) Expand 10 before | Expand all | Expand 10 after
869 874
870 ASSERT_TRUE(layer(IV_SCROLL, ACTIVE)->scrollable()); 875 ASSERT_TRUE(layer(IV_SCROLL, ACTIVE)->scrollable());
871 876
872 ASSERT_TRUE(LayerHasScrollbar(OV_SCROLL, ACTIVE)); 877 ASSERT_TRUE(LayerHasScrollbar(OV_SCROLL, ACTIVE));
873 ASSERT_TRUE(LayerHasScrollbar(IV_CLIP, ACTIVE)); 878 ASSERT_TRUE(LayerHasScrollbar(IV_CLIP, ACTIVE));
874 ASSERT_TRUE(LayerHasScrollbar(IV_SCROLL, ACTIVE)); 879 ASSERT_TRUE(LayerHasScrollbar(IV_SCROLL, ACTIVE));
875 } 880 }
876 881
877 } // namespace 882 } // namespace
878 } // namespace cc 883 } // namespace cc
OLDNEW
« no previous file with comments | « cc/layers/layer_impl.cc ('k') | cc/layers/painted_scrollbar_layer.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698