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

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

Issue 1365343002: Ensure the viewport is always represented by the inner viewport layer. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix more tests. Created 5 years, 2 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/trees/layer_tree_host_impl.cc ('k') | cc/trees/layer_tree_host_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_impl.h" 5 #include "cc/trees/layer_tree_host_impl.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <cmath> 8 #include <cmath>
9 9
10 #include "base/bind.h" 10 #include "base/bind.h"
(...skipping 3650 matching lines...) Expand 10 before | Expand all | Expand 10 after
3661 3661
3662 EXPECT_EQ(top_controls_height_, 3662 EXPECT_EQ(top_controls_height_,
3663 host_impl_->top_controls_manager()->ContentTopOffset()); 3663 host_impl_->top_controls_manager()->ContentTopOffset());
3664 3664
3665 // Send a gesture scroll that will scroll the outer viewport, make sure the 3665 // Send a gesture scroll that will scroll the outer viewport, make sure the
3666 // top controls get scrolled. 3666 // top controls get scrolled.
3667 gfx::Vector2dF scroll_delta(0.f, 15.f); 3667 gfx::Vector2dF scroll_delta(0.f, 15.f);
3668 EXPECT_EQ(InputHandler::SCROLL_STARTED, 3668 EXPECT_EQ(InputHandler::SCROLL_STARTED,
3669 host_impl_->ScrollBegin(gfx::Point(), InputHandler::GESTURE)); 3669 host_impl_->ScrollBegin(gfx::Point(), InputHandler::GESTURE));
3670 host_impl_->ScrollBy(gfx::Point(), scroll_delta); 3670 host_impl_->ScrollBy(gfx::Point(), scroll_delta);
3671 EXPECT_EQ(host_impl_->OuterViewportScrollLayer(), 3671 EXPECT_EQ(host_impl_->InnerViewportScrollLayer(),
3672 host_impl_->CurrentlyScrollingLayer()); 3672 host_impl_->CurrentlyScrollingLayer());
3673 host_impl_->ScrollEnd(); 3673 host_impl_->ScrollEnd();
3674 3674
3675 EXPECT_FLOAT_EQ(scroll_delta.y(), 3675 EXPECT_FLOAT_EQ(scroll_delta.y(),
3676 top_controls_height_ - 3676 top_controls_height_ -
3677 host_impl_->top_controls_manager()->ContentTopOffset()); 3677 host_impl_->top_controls_manager()->ContentTopOffset());
3678 3678
3679 scroll_delta = gfx::Vector2dF(0.f, 50.f); 3679 scroll_delta = gfx::Vector2dF(0.f, 50.f);
3680 EXPECT_EQ(InputHandler::SCROLL_STARTED, 3680 EXPECT_EQ(InputHandler::SCROLL_STARTED,
3681 host_impl_->ScrollBegin(gfx::Point(), InputHandler::GESTURE)); 3681 host_impl_->ScrollBegin(gfx::Point(), InputHandler::GESTURE));
3682 host_impl_->ScrollBy(gfx::Point(), scroll_delta); 3682 host_impl_->ScrollBy(gfx::Point(), scroll_delta);
3683 3683
3684 EXPECT_EQ(0, host_impl_->top_controls_manager()->ContentTopOffset()); 3684 EXPECT_EQ(0, host_impl_->top_controls_manager()->ContentTopOffset());
3685 EXPECT_EQ(host_impl_->OuterViewportScrollLayer(), 3685 EXPECT_EQ(host_impl_->InnerViewportScrollLayer(),
3686 host_impl_->CurrentlyScrollingLayer()); 3686 host_impl_->CurrentlyScrollingLayer());
3687 3687
3688 host_impl_->ScrollEnd(); 3688 host_impl_->ScrollEnd();
3689 3689
3690 // Position the viewports such that the inner viewport will be scrolled. 3690 // Position the viewports such that the inner viewport will be scrolled.
3691 gfx::Vector2dF inner_viewport_offset(0.f, 25.f); 3691 gfx::Vector2dF inner_viewport_offset(0.f, 25.f);
3692 host_impl_->OuterViewportScrollLayer()->SetScrollDelta(gfx::Vector2dF()); 3692 host_impl_->OuterViewportScrollLayer()->SetScrollDelta(gfx::Vector2dF());
3693 host_impl_->InnerViewportScrollLayer()->SetScrollDelta(inner_viewport_offset); 3693 host_impl_->InnerViewportScrollLayer()->SetScrollDelta(inner_viewport_offset);
3694 3694
3695 scroll_delta = gfx::Vector2dF(0.f, -65.f); 3695 scroll_delta = gfx::Vector2dF(0.f, -65.f);
(...skipping 4047 matching lines...) Expand 10 before | Expand all | Expand 10 after
7743 { 7743 {
7744 gfx::Vector2dF inner_expected; 7744 gfx::Vector2dF inner_expected;
7745 gfx::Vector2dF outer_expected; 7745 gfx::Vector2dF outer_expected;
7746 EXPECT_VECTOR_EQ(inner_expected, inner_scroll->CurrentScrollOffset()); 7746 EXPECT_VECTOR_EQ(inner_expected, inner_scroll->CurrentScrollOffset());
7747 EXPECT_VECTOR_EQ(outer_expected, outer_scroll->CurrentScrollOffset()); 7747 EXPECT_VECTOR_EQ(outer_expected, outer_scroll->CurrentScrollOffset());
7748 7748
7749 // Scrolling the viewport always sets the outer scroll layer as the 7749 // Scrolling the viewport always sets the outer scroll layer as the
7750 // currently scrolling layer. 7750 // currently scrolling layer.
7751 EXPECT_EQ(InputHandler::SCROLL_STARTED, 7751 EXPECT_EQ(InputHandler::SCROLL_STARTED,
7752 host_impl_->ScrollBegin(gfx::Point(), InputHandler::GESTURE)); 7752 host_impl_->ScrollBegin(gfx::Point(), InputHandler::GESTURE));
7753 EXPECT_EQ(outer_scroll, host_impl_->CurrentlyScrollingLayer()); 7753 EXPECT_EQ(inner_scroll, host_impl_->CurrentlyScrollingLayer());
7754 EXPECT_EQ(InputHandler::SCROLL_STARTED, host_impl_->FlingScrollBegin()); 7754 EXPECT_EQ(InputHandler::SCROLL_STARTED, host_impl_->FlingScrollBegin());
7755 EXPECT_EQ(outer_scroll, host_impl_->CurrentlyScrollingLayer()); 7755 EXPECT_EQ(inner_scroll, host_impl_->CurrentlyScrollingLayer());
7756 7756
7757 gfx::Vector2d scroll_delta(inner_viewport.width() / 2.f, 7757 gfx::Vector2d scroll_delta(inner_viewport.width() / 2.f,
7758 inner_viewport.height() / 2.f); 7758 inner_viewport.height() / 2.f);
7759 host_impl_->ScrollBy(gfx::Point(), scroll_delta); 7759 host_impl_->ScrollBy(gfx::Point(), scroll_delta);
7760 inner_expected += gfx::Vector2dF(scroll_delta.x(), scroll_delta.y()); 7760 inner_expected += gfx::Vector2dF(scroll_delta.x(), scroll_delta.y());
7761 EXPECT_EQ(host_impl_->CurrentlyScrollingLayer(), outer_scroll); 7761 EXPECT_EQ(inner_scroll, host_impl_->CurrentlyScrollingLayer());
7762 7762
7763 host_impl_->ScrollEnd(); 7763 host_impl_->ScrollEnd();
7764 EXPECT_EQ(nullptr, host_impl_->CurrentlyScrollingLayer()); 7764 EXPECT_EQ(nullptr, host_impl_->CurrentlyScrollingLayer());
7765 7765
7766 EXPECT_VECTOR_EQ(inner_expected, inner_scroll->CurrentScrollOffset()); 7766 EXPECT_VECTOR_EQ(inner_expected, inner_scroll->CurrentScrollOffset());
7767 EXPECT_VECTOR_EQ(outer_expected, outer_scroll->CurrentScrollOffset()); 7767 EXPECT_VECTOR_EQ(outer_expected, outer_scroll->CurrentScrollOffset());
7768 7768
7769 // Fling past the inner viewport boundry, make sure outer viewport scrolls. 7769 // Fling past the inner viewport boundry, make sure outer viewport scrolls.
7770 EXPECT_EQ(InputHandler::SCROLL_STARTED, 7770 EXPECT_EQ(InputHandler::SCROLL_STARTED,
7771 host_impl_->ScrollBegin(gfx::Point(), InputHandler::GESTURE)); 7771 host_impl_->ScrollBegin(gfx::Point(), InputHandler::GESTURE));
7772 EXPECT_EQ(outer_scroll, host_impl_->CurrentlyScrollingLayer()); 7772 EXPECT_EQ(inner_scroll, host_impl_->CurrentlyScrollingLayer());
7773 EXPECT_EQ(InputHandler::SCROLL_STARTED, host_impl_->FlingScrollBegin()); 7773 EXPECT_EQ(InputHandler::SCROLL_STARTED, host_impl_->FlingScrollBegin());
7774 EXPECT_EQ(outer_scroll, host_impl_->CurrentlyScrollingLayer()); 7774 EXPECT_EQ(inner_scroll, host_impl_->CurrentlyScrollingLayer());
7775 7775
7776 host_impl_->ScrollBy(gfx::Point(), scroll_delta); 7776 host_impl_->ScrollBy(gfx::Point(), scroll_delta);
7777 inner_expected += gfx::Vector2dF(scroll_delta.x(), scroll_delta.y()); 7777 inner_expected += gfx::Vector2dF(scroll_delta.x(), scroll_delta.y());
7778 EXPECT_EQ(outer_scroll, host_impl_->CurrentlyScrollingLayer()); 7778 EXPECT_EQ(inner_scroll, host_impl_->CurrentlyScrollingLayer());
7779 7779
7780 host_impl_->ScrollBy(gfx::Point(), scroll_delta); 7780 host_impl_->ScrollBy(gfx::Point(), scroll_delta);
7781 outer_expected += gfx::Vector2dF(scroll_delta.x(), scroll_delta.y()); 7781 outer_expected += gfx::Vector2dF(scroll_delta.x(), scroll_delta.y());
7782 EXPECT_EQ(outer_scroll, host_impl_->CurrentlyScrollingLayer()); 7782 EXPECT_EQ(inner_scroll, host_impl_->CurrentlyScrollingLayer());
7783 7783
7784 host_impl_->ScrollEnd(); 7784 host_impl_->ScrollEnd();
7785 EXPECT_EQ(nullptr, host_impl_->CurrentlyScrollingLayer()); 7785 EXPECT_EQ(nullptr, host_impl_->CurrentlyScrollingLayer());
7786 7786
7787 EXPECT_VECTOR_EQ(inner_expected, inner_scroll->CurrentScrollOffset()); 7787 EXPECT_VECTOR_EQ(inner_expected, inner_scroll->CurrentScrollOffset());
7788 EXPECT_VECTOR_EQ(outer_expected, outer_scroll->CurrentScrollOffset()); 7788 EXPECT_VECTOR_EQ(outer_expected, outer_scroll->CurrentScrollOffset());
7789 } 7789 }
7790 } 7790 }
7791 7791
7792 TEST_F(LayerTreeHostImplVirtualViewportTest, 7792 TEST_F(LayerTreeHostImplVirtualViewportTest,
(...skipping 763 matching lines...) Expand 10 before | Expand all | Expand 10 after
8556 // Hold an unowned pointer to the output surface to use for mock expectations. 8556 // Hold an unowned pointer to the output surface to use for mock expectations.
8557 MockReclaimResourcesOutputSurface* mock_output_surface = output_surface.get(); 8557 MockReclaimResourcesOutputSurface* mock_output_surface = output_surface.get();
8558 8558
8559 CreateHostImpl(DefaultSettings(), output_surface.Pass()); 8559 CreateHostImpl(DefaultSettings(), output_surface.Pass());
8560 EXPECT_CALL(*mock_output_surface, ForceReclaimResources()).Times(1); 8560 EXPECT_CALL(*mock_output_surface, ForceReclaimResources()).Times(1);
8561 host_impl_->BeginCommit(); 8561 host_impl_->BeginCommit();
8562 } 8562 }
8563 8563
8564 } // namespace 8564 } // namespace
8565 } // namespace cc 8565 } // namespace cc
OLDNEW
« no previous file with comments | « cc/trees/layer_tree_host_impl.cc ('k') | cc/trees/layer_tree_host_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698