| Index: cc/trees/layer_tree_host_impl_unittest.cc
|
| diff --git a/cc/trees/layer_tree_host_impl_unittest.cc b/cc/trees/layer_tree_host_impl_unittest.cc
|
| index cb33686994eb0189f68ae46929aee297b4113d44..2c03574d514496bc65b1ebdfce176c98287fec0b 100644
|
| --- a/cc/trees/layer_tree_host_impl_unittest.cc
|
| +++ b/cc/trees/layer_tree_host_impl_unittest.cc
|
| @@ -2302,10 +2302,7 @@ class LayerTreeHostImplTopControlsTest : public LayerTreeHostImplTest {
|
| LayerTreeHostImplTest::CreateHostImpl(settings, output_surface.Pass());
|
| if (init && settings.calculate_top_controls_position) {
|
| host_impl_->active_tree()->set_top_controls_height(top_controls_height_);
|
| - host_impl_->active_tree()->set_top_controls_delta(top_controls_height_);
|
| - host_impl_->top_controls_manager()->SetTopControlsHeight(
|
| - top_controls_height_);
|
| - host_impl_->DidChangeTopControlsPosition();
|
| + host_impl_->active_tree()->SetCurrentTopControlsShownRatio(1.f);
|
| }
|
| return init;
|
| }
|
| @@ -2339,6 +2336,7 @@ class LayerTreeHostImplTopControlsTest : public LayerTreeHostImplTest {
|
| host_impl_->DidChangeTopControlsPosition();
|
|
|
| host_impl_->CreatePendingTree();
|
| + host_impl_->sync_tree()->set_top_controls_height(top_controls_height_);
|
| root =
|
| LayerImpl::Create(host_impl_->sync_tree(), 1);
|
| root_clip =
|
| @@ -2370,6 +2368,7 @@ class LayerTreeHostImplTopControlsTest : public LayerTreeHostImplTest {
|
| const gfx::Size& scroll_layer_size) {
|
| CreateHostImpl(settings_, CreateOutputSurface());
|
| host_impl_->sync_tree()->set_top_controls_shrink_blink_size(true);
|
| + host_impl_->sync_tree()->set_top_controls_height(top_controls_height_);
|
| host_impl_->DidChangeTopControlsPosition();
|
|
|
| scoped_ptr<LayerImpl> root =
|
| @@ -2480,8 +2479,7 @@ TEST_F(LayerTreeHostImplTopControlsTest,
|
|
|
| // The entire scroll delta should have been used to hide the top controls.
|
| // The viewport layers should be resized back to their full sizes.
|
| - EXPECT_EQ(0.f,
|
| - host_impl_->active_tree()->total_top_controls_content_offset());
|
| + EXPECT_EQ(0.f, host_impl_->active_tree()->CurrentTopControlsShownRatio());
|
| EXPECT_EQ(0.f, inner_scroll->CurrentScrollOffset().y());
|
| EXPECT_EQ(100.f, inner_container->BoundsForScrolling().height());
|
| EXPECT_EQ(100.f, outer_container->BoundsForScrolling().height());
|
| @@ -2503,8 +2501,7 @@ TEST_F(LayerTreeHostImplTopControlsTest,
|
| // The entire scroll delta should have been used to show the top controls.
|
| // The outer viewport should be resized to accomodate and scrolled to the
|
| // bottom of the document to keep the viewport in place.
|
| - EXPECT_EQ(50.f,
|
| - host_impl_->active_tree()->total_top_controls_content_offset());
|
| + EXPECT_EQ(1.f, host_impl_->active_tree()->CurrentTopControlsShownRatio());
|
| EXPECT_EQ(50.f, outer_container->BoundsForScrolling().height());
|
| EXPECT_EQ(50.f, inner_container->BoundsForScrolling().height());
|
| EXPECT_EQ(25.f, outer_scroll->CurrentScrollOffset().y());
|
| @@ -2550,8 +2547,8 @@ TEST_F(LayerTreeHostImplTopControlsTest, FixedContainerDelta) {
|
| gfx::Vector2dF top_controls_scroll_delta(0.f, 20.f);
|
| host_impl_->top_controls_manager()->ScrollBegin();
|
| host_impl_->top_controls_manager()->ScrollBy(top_controls_scroll_delta);
|
| - EXPECT_EQ(top_controls_height_ - top_controls_scroll_delta.y(),
|
| - host_impl_->top_controls_manager()->ContentTopOffset());
|
| + EXPECT_FLOAT_EQ(top_controls_height_ - top_controls_scroll_delta.y(),
|
| + host_impl_->top_controls_manager()->ContentTopOffset());
|
| EXPECT_VECTOR_EQ(top_controls_scroll_delta,
|
| outer_viewport_scroll_layer->FixedContainerSizeDelta());
|
| host_impl_->ScrollEnd();
|
| @@ -2588,8 +2585,7 @@ TEST_F(LayerTreeHostImplTopControlsTest, TopControlsScrollableSublayer) {
|
| DrawFrame();
|
|
|
| // Show top controls
|
| - EXPECT_EQ(top_controls_height_,
|
| - host_impl_->active_tree()->total_top_controls_content_offset());
|
| + EXPECT_EQ(1.f, host_impl_->active_tree()->CurrentTopControlsShownRatio());
|
|
|
| LayerImpl* outer_viewport_scroll_layer =
|
| host_impl_->active_tree()->OuterViewportScrollLayer();
|
| @@ -2623,7 +2619,7 @@ TEST_F(LayerTreeHostImplTopControlsTest, TopControlsScrollableSublayer) {
|
| // Top controls should be hidden
|
| EXPECT_EQ(scroll_delta.y(),
|
| top_controls_height_ -
|
| - host_impl_->active_tree()->total_top_controls_content_offset());
|
| + host_impl_->top_controls_manager()->ContentTopOffset());
|
| }
|
|
|
| // Ensure setting the top controls position explicitly using the setters on the
|
| @@ -2633,14 +2629,18 @@ TEST_F(LayerTreeHostImplTopControlsTest, PositionTopControlsExplicitly) {
|
| SetupTopControlsAndScrollLayer();
|
| DrawFrame();
|
|
|
| - host_impl_->active_tree()->set_top_controls_delta(0.f);
|
| - host_impl_->active_tree()->set_top_controls_content_offset(30.f);
|
| - EXPECT_EQ(30.f, host_impl_->top_controls_manager()->ContentTopOffset());
|
| - EXPECT_EQ(-20.f, host_impl_->top_controls_manager()->ControlsTopOffset());
|
| + host_impl_->active_tree()->SetCurrentTopControlsShownRatio(0.f);
|
| + host_impl_->active_tree()->top_controls_shown_ratio()->PushFromMainThread(
|
| + 30.f / top_controls_height_);
|
| + host_impl_->active_tree()->top_controls_shown_ratio()->PushPendingToActive();
|
| + EXPECT_FLOAT_EQ(30.f, host_impl_->top_controls_manager()->ContentTopOffset());
|
| + EXPECT_FLOAT_EQ(-20.f,
|
| + host_impl_->top_controls_manager()->ControlsTopOffset());
|
|
|
| - host_impl_->active_tree()->set_top_controls_delta(-30.f);
|
| - EXPECT_EQ(0.f, host_impl_->top_controls_manager()->ContentTopOffset());
|
| - EXPECT_EQ(-50.f, host_impl_->top_controls_manager()->ControlsTopOffset());
|
| + host_impl_->active_tree()->SetCurrentTopControlsShownRatio(0.f);
|
| + EXPECT_FLOAT_EQ(0.f, host_impl_->top_controls_manager()->ContentTopOffset());
|
| + EXPECT_FLOAT_EQ(-50.f,
|
| + host_impl_->top_controls_manager()->ControlsTopOffset());
|
|
|
| host_impl_->DidChangeTopControlsPosition();
|
|
|
| @@ -2657,18 +2657,22 @@ TEST_F(LayerTreeHostImplTopControlsTest, ApplyDeltaOnTreeActivation) {
|
| SetupTopControlsAndScrollLayer();
|
| DrawFrame();
|
|
|
| - host_impl_->sync_tree()->set_top_controls_content_offset(15.f);
|
| -
|
| - host_impl_->active_tree()->set_top_controls_content_offset(20.f);
|
| - host_impl_->active_tree()->set_top_controls_delta(-20.f);
|
| - host_impl_->active_tree()->set_sent_top_controls_delta(-5.f);
|
| + host_impl_->active_tree()->top_controls_shown_ratio()->PushFromMainThread(
|
| + 20.f / top_controls_height_);
|
| + host_impl_->active_tree()->top_controls_shown_ratio()->PushPendingToActive();
|
| + host_impl_->active_tree()->SetCurrentTopControlsShownRatio(
|
| + 15.f / top_controls_height_);
|
| + host_impl_->active_tree()
|
| + ->top_controls_shown_ratio()
|
| + ->PullDeltaForMainThread();
|
| + host_impl_->active_tree()->SetCurrentTopControlsShownRatio(0.f);
|
| + host_impl_->sync_tree()->PushTopControlsFromMainThread(15.f /
|
| + top_controls_height_);
|
|
|
| host_impl_->DidChangeTopControlsPosition();
|
| LayerImpl* root_clip_ptr = host_impl_->active_tree()->root_layer();
|
| EXPECT_EQ(viewport_size_, root_clip_ptr->bounds());
|
| EXPECT_EQ(0.f, host_impl_->top_controls_manager()->ContentTopOffset());
|
| - EXPECT_EQ(0.f,
|
| - host_impl_->active_tree()->total_top_controls_content_offset());
|
|
|
| host_impl_->ActivateSyncTree();
|
|
|
| @@ -2676,11 +2680,13 @@ TEST_F(LayerTreeHostImplTopControlsTest, ApplyDeltaOnTreeActivation) {
|
| EXPECT_EQ(0.f, host_impl_->top_controls_manager()->ContentTopOffset());
|
| EXPECT_EQ(viewport_size_, root_clip_ptr->bounds());
|
|
|
| - EXPECT_EQ(0.f, host_impl_->active_tree()->sent_top_controls_delta());
|
| - EXPECT_EQ(-15.f, host_impl_->active_tree()->top_controls_delta());
|
| - EXPECT_EQ(15.f, host_impl_->active_tree()->top_controls_content_offset());
|
| - EXPECT_EQ(0.f,
|
| - host_impl_->active_tree()->total_top_controls_content_offset());
|
| + EXPECT_FLOAT_EQ(
|
| + -15.f, host_impl_->active_tree()->top_controls_shown_ratio()->Delta() *
|
| + top_controls_height_);
|
| + EXPECT_FLOAT_EQ(
|
| + 15.f,
|
| + host_impl_->active_tree()->top_controls_shown_ratio()->ActiveBase() *
|
| + top_controls_height_);
|
| }
|
|
|
| // Test that changing the top controls layout height is correctly applied to
|
| @@ -2692,11 +2698,13 @@ TEST_F(LayerTreeHostImplTopControlsTest, TopControlsLayoutHeightChanged) {
|
| SetupTopControlsAndScrollLayer();
|
| DrawFrame();
|
|
|
| - host_impl_->sync_tree()->set_top_controls_content_offset(50.f);
|
| + host_impl_->sync_tree()->PushTopControlsFromMainThread(1.f);
|
| host_impl_->sync_tree()->set_top_controls_shrink_blink_size(true);
|
|
|
| - host_impl_->active_tree()->set_top_controls_content_offset(50.f);
|
| - host_impl_->active_tree()->set_top_controls_delta(-50.f);
|
| + host_impl_->active_tree()->top_controls_shown_ratio()->PushFromMainThread(
|
| + 1.f);
|
| + host_impl_->active_tree()->top_controls_shown_ratio()->PushPendingToActive();
|
| + host_impl_->active_tree()->SetCurrentTopControlsShownRatio(0.f);
|
|
|
| host_impl_->DidChangeTopControlsPosition();
|
| LayerImpl* root_clip_ptr = host_impl_->active_tree()->root_layer();
|
| @@ -2718,9 +2726,11 @@ TEST_F(LayerTreeHostImplTopControlsTest, TopControlsLayoutHeightChanged) {
|
| EXPECT_EQ(viewport_size_, root_clip_ptr->bounds());
|
| EXPECT_VECTOR_EQ(gfx::Vector2dF(0.f, 50.f), root_clip_ptr->bounds_delta());
|
|
|
| - host_impl_->active_tree()->set_top_controls_delta(0.f);
|
| + host_impl_->active_tree()->SetCurrentTopControlsShownRatio(1.f);
|
| host_impl_->DidChangeTopControlsPosition();
|
|
|
| + EXPECT_EQ(1.f, host_impl_->top_controls_manager()->TopControlsShownRatio());
|
| + EXPECT_EQ(50.f, host_impl_->top_controls_manager()->TopControlsHeight());
|
| EXPECT_EQ(50.f, host_impl_->top_controls_manager()->ContentTopOffset());
|
| EXPECT_VECTOR_EQ(gfx::Vector2dF(0.f, 0.f), root_clip_ptr->bounds_delta());
|
| EXPECT_EQ(gfx::Size(viewport_size_.width(), viewport_size_.height() - 50.f),
|
| @@ -2735,8 +2745,7 @@ TEST_F(LayerTreeHostImplTopControlsTest, TopControlsViewportOffsetClamping) {
|
| gfx::Size(100, 100), gfx::Size(200, 200), gfx::Size(200, 400));
|
| DrawFrame();
|
|
|
| - EXPECT_EQ(top_controls_height_,
|
| - host_impl_->active_tree()->total_top_controls_content_offset());
|
| + EXPECT_EQ(1.f, host_impl_->active_tree()->CurrentTopControlsShownRatio());
|
|
|
| LayerImpl* outer_scroll = host_impl_->OuterViewportScrollLayer();
|
| LayerImpl* inner_scroll = host_impl_->InnerViewportScrollLayer();
|
| @@ -2756,9 +2765,7 @@ TEST_F(LayerTreeHostImplTopControlsTest, TopControlsViewportOffsetClamping) {
|
| host_impl_->ScrollBy(gfx::Point(), scroll_delta);
|
|
|
| // scrolling down at the max extents no longer hides the top controls
|
| - EXPECT_EQ(0.f,
|
| - top_controls_height_ -
|
| - host_impl_->active_tree()->total_top_controls_content_offset());
|
| + EXPECT_EQ(1.f, host_impl_->active_tree()->CurrentTopControlsShownRatio());
|
|
|
| // forcefully hide the top controls by 25px
|
| host_impl_->top_controls_manager()->ScrollBy(scroll_delta);
|
| @@ -2766,7 +2773,7 @@ TEST_F(LayerTreeHostImplTopControlsTest, TopControlsViewportOffsetClamping) {
|
|
|
| EXPECT_EQ(scroll_delta.y(),
|
| top_controls_height_ -
|
| - host_impl_->active_tree()->total_top_controls_content_offset());
|
| + host_impl_->top_controls_manager()->ContentTopOffset());
|
|
|
| inner_scroll->ClampScrollToMaxScrollOffset();
|
| outer_scroll->ClampScrollToMaxScrollOffset();
|
| @@ -2803,7 +2810,7 @@ TEST_F(LayerTreeHostImplTopControlsTest, TopControlsAspectRatio) {
|
| DrawFrame();
|
|
|
| EXPECT_EQ(top_controls_height_,
|
| - host_impl_->active_tree()->total_top_controls_content_offset());
|
| + host_impl_->top_controls_manager()->ContentTopOffset());
|
|
|
| gfx::Vector2dF scroll_delta(0.f, 25.f);
|
| EXPECT_EQ(InputHandler::ScrollStarted,
|
| @@ -2813,7 +2820,7 @@ TEST_F(LayerTreeHostImplTopControlsTest, TopControlsAspectRatio) {
|
|
|
| EXPECT_EQ(scroll_delta.y(),
|
| top_controls_height_ -
|
| - host_impl_->active_tree()->total_top_controls_content_offset());
|
| + host_impl_->top_controls_manager()->ContentTopOffset());
|
|
|
| // Top controls were hidden by 25px so the inner viewport should have expanded
|
| // by that much.
|
| @@ -2839,7 +2846,7 @@ TEST_F(LayerTreeHostImplTopControlsTest, TopControlsScrollOuterViewport) {
|
| DrawFrame();
|
|
|
| EXPECT_EQ(top_controls_height_,
|
| - host_impl_->active_tree()->total_top_controls_content_offset());
|
| + host_impl_->top_controls_manager()->ContentTopOffset());
|
|
|
| // Send a gesture scroll that will scroll the outer viewport, make sure the
|
| // top controls get scrolled.
|
| @@ -2853,14 +2860,14 @@ TEST_F(LayerTreeHostImplTopControlsTest, TopControlsScrollOuterViewport) {
|
|
|
| EXPECT_EQ(scroll_delta.y(),
|
| top_controls_height_ -
|
| - host_impl_->active_tree()->total_top_controls_content_offset());
|
| + host_impl_->top_controls_manager()->ContentTopOffset());
|
|
|
| scroll_delta = gfx::Vector2dF(0.f, 50.f);
|
| EXPECT_EQ(InputHandler::ScrollStarted,
|
| host_impl_->ScrollBegin(gfx::Point(), InputHandler::Gesture));
|
| host_impl_->ScrollBy(gfx::Point(), scroll_delta);
|
|
|
| - EXPECT_EQ(0, host_impl_->active_tree()->total_top_controls_content_offset());
|
| + EXPECT_EQ(0, host_impl_->top_controls_manager()->ContentTopOffset());
|
| EXPECT_EQ(host_impl_->OuterViewportScrollLayer(),
|
| host_impl_->CurrentlyScrollingLayer());
|
|
|
| @@ -2877,7 +2884,7 @@ TEST_F(LayerTreeHostImplTopControlsTest, TopControlsScrollOuterViewport) {
|
| host_impl_->ScrollBy(gfx::Point(), scroll_delta);
|
|
|
| EXPECT_EQ(top_controls_height_,
|
| - host_impl_->active_tree()->total_top_controls_content_offset());
|
| + host_impl_->top_controls_manager()->ContentTopOffset());
|
| EXPECT_EQ(
|
| inner_viewport_offset.y() + (scroll_delta.y() + top_controls_height_),
|
| host_impl_->InnerViewportScrollLayer()->ScrollDelta().y());
|
| @@ -7283,9 +7290,8 @@ class LayerTreeHostImplWithTopControlsTest : public LayerTreeHostImplTest {
|
| settings.calculate_top_controls_position = true;
|
| CreateHostImpl(settings, CreateOutputSurface());
|
| host_impl_->active_tree()->set_top_controls_height(top_controls_height_);
|
| - host_impl_->active_tree()->set_top_controls_delta(top_controls_height_);
|
| - host_impl_->top_controls_manager()->SetTopControlsHeight(
|
| - top_controls_height_);
|
| + host_impl_->sync_tree()->set_top_controls_height(top_controls_height_);
|
| + host_impl_->active_tree()->SetCurrentTopControlsShownRatio(1.f);
|
| }
|
|
|
| protected:
|
| @@ -7307,23 +7313,23 @@ TEST_F(LayerTreeHostImplWithTopControlsTest, TopControlsHeightIsCommitted) {
|
| host_impl_->CreatePendingTree();
|
| host_impl_->sync_tree()->set_top_controls_height(100);
|
| host_impl_->ActivateSyncTree();
|
| - EXPECT_EQ(100, host_impl_->top_controls_manager()->top_controls_height());
|
| + EXPECT_EQ(100, host_impl_->top_controls_manager()->TopControlsHeight());
|
| }
|
|
|
| TEST_F(LayerTreeHostImplWithTopControlsTest,
|
| TopControlsStayFullyVisibleOnHeightChange) {
|
| SetupScrollAndContentsLayers(gfx::Size(100, 100));
|
| - EXPECT_EQ(0.f, host_impl_->ControlsTopOffset());
|
| + EXPECT_EQ(0.f, host_impl_->top_controls_manager()->ControlsTopOffset());
|
|
|
| host_impl_->CreatePendingTree();
|
| host_impl_->sync_tree()->set_top_controls_height(0);
|
| host_impl_->ActivateSyncTree();
|
| - EXPECT_EQ(0.f, host_impl_->ControlsTopOffset());
|
| + EXPECT_EQ(0.f, host_impl_->top_controls_manager()->ControlsTopOffset());
|
|
|
| host_impl_->CreatePendingTree();
|
| host_impl_->sync_tree()->set_top_controls_height(50);
|
| host_impl_->ActivateSyncTree();
|
| - EXPECT_EQ(0.f, host_impl_->ControlsTopOffset());
|
| + EXPECT_EQ(0.f, host_impl_->top_controls_manager()->ControlsTopOffset());
|
| }
|
|
|
| TEST_F(LayerTreeHostImplWithTopControlsTest, TopControlsAnimationScheduling) {
|
|
|