| 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 4e070e2a856cc2be481a7711ae1fedf0b4c01843..934946bca89aa2803c624287f694b64494e4f3a9 100644
|
| --- a/cc/trees/layer_tree_host_impl_unittest.cc
|
| +++ b/cc/trees/layer_tree_host_impl_unittest.cc
|
| @@ -155,8 +155,8 @@ class LayerTreeHostImplTest : public testing::Test,
|
| reduce_memory_result_ = reduce_memory_result;
|
| }
|
|
|
| - bool CreateHostImpl(const LayerTreeSettings& settings,
|
| - scoped_ptr<OutputSurface> output_surface) {
|
| + virtual bool CreateHostImpl(const LayerTreeSettings& settings,
|
| + scoped_ptr<OutputSurface> output_surface) {
|
| host_impl_ = LayerTreeHostImpl::Create(settings,
|
| this,
|
| &proxy_,
|
| @@ -919,9 +919,9 @@ TEST_F(LayerTreeHostImplTest, ImplPinchZoom) {
|
|
|
| // The impl-based pinch zoom should adjust the max scroll position.
|
| {
|
| - host_impl_->active_tree()->SetPageScaleFactorAndLimits(
|
| + host_impl_->active_tree()->PushPageScaleFromMainThread(
|
| page_scale_factor, min_page_scale, max_page_scale);
|
| - host_impl_->active_tree()->SetPageScaleDelta(1.f);
|
| + host_impl_->SetPageScaleOnActiveTree(page_scale_factor);
|
| scroll_layer->SetScrollDelta(gfx::Vector2d());
|
|
|
| float page_scale_delta = 2.f;
|
| @@ -947,9 +947,9 @@ TEST_F(LayerTreeHostImplTest, ImplPinchZoom) {
|
| // Scrolling after a pinch gesture should always be in local space. The
|
| // scroll deltas have the page scale factor applied.
|
| {
|
| - host_impl_->active_tree()->SetPageScaleFactorAndLimits(
|
| + host_impl_->active_tree()->PushPageScaleFromMainThread(
|
| page_scale_factor, min_page_scale, max_page_scale);
|
| - host_impl_->active_tree()->SetPageScaleDelta(1.f);
|
| + host_impl_->SetPageScaleOnActiveTree(page_scale_factor);
|
| scroll_layer->SetScrollDelta(gfx::Vector2d());
|
|
|
| float page_scale_delta = 2.f;
|
| @@ -1004,8 +1004,7 @@ TEST_F(LayerTreeHostImplTest, PinchGesture) {
|
|
|
| // Basic pinch zoom in gesture
|
| {
|
| - host_impl_->active_tree()->SetPageScaleFactorAndLimits(1.f,
|
| - min_page_scale,
|
| + host_impl_->active_tree()->PushPageScaleFromMainThread(1.f, min_page_scale,
|
| max_page_scale);
|
| scroll_layer->SetScrollDelta(gfx::Vector2d());
|
|
|
| @@ -1026,8 +1025,7 @@ TEST_F(LayerTreeHostImplTest, PinchGesture) {
|
|
|
| // Zoom-in clamping
|
| {
|
| - host_impl_->active_tree()->SetPageScaleFactorAndLimits(1.f,
|
| - min_page_scale,
|
| + host_impl_->active_tree()->PushPageScaleFromMainThread(1.f, min_page_scale,
|
| max_page_scale);
|
| scroll_layer->SetScrollDelta(gfx::Vector2d());
|
| float page_scale_delta = 10.f;
|
| @@ -1045,8 +1043,7 @@ TEST_F(LayerTreeHostImplTest, PinchGesture) {
|
|
|
| // Zoom-out clamping
|
| {
|
| - host_impl_->active_tree()->SetPageScaleFactorAndLimits(1.f,
|
| - min_page_scale,
|
| + host_impl_->active_tree()->PushPageScaleFromMainThread(1.f, min_page_scale,
|
| max_page_scale);
|
| scroll_layer->SetScrollDelta(gfx::Vector2d());
|
| scroll_layer->SetScrollOffset(gfx::ScrollOffset(50, 50));
|
| @@ -1067,8 +1064,7 @@ TEST_F(LayerTreeHostImplTest, PinchGesture) {
|
|
|
| // Two-finger panning should not happen based on pinch events only
|
| {
|
| - host_impl_->active_tree()->SetPageScaleFactorAndLimits(1.f,
|
| - min_page_scale,
|
| + host_impl_->active_tree()->PushPageScaleFromMainThread(1.f, min_page_scale,
|
| max_page_scale);
|
| scroll_layer->SetScrollDelta(gfx::Vector2d());
|
| scroll_layer->SetScrollOffset(gfx::ScrollOffset(20, 20));
|
| @@ -1089,8 +1085,7 @@ TEST_F(LayerTreeHostImplTest, PinchGesture) {
|
|
|
| // Two-finger panning should work with interleaved scroll events
|
| {
|
| - host_impl_->active_tree()->SetPageScaleFactorAndLimits(1.f,
|
| - min_page_scale,
|
| + host_impl_->active_tree()->PushPageScaleFromMainThread(1.f, min_page_scale,
|
| max_page_scale);
|
| scroll_layer->SetScrollDelta(gfx::Vector2d());
|
| scroll_layer->SetScrollOffset(gfx::ScrollOffset(20, 20));
|
| @@ -1112,9 +1107,7 @@ TEST_F(LayerTreeHostImplTest, PinchGesture) {
|
|
|
| // Two-finger panning should work when starting fully zoomed out.
|
| {
|
| - host_impl_->active_tree()->SetPageScaleFactorAndLimits(0.5f,
|
| - 0.5f,
|
| - 4.f);
|
| + host_impl_->active_tree()->PushPageScaleFromMainThread(0.5f, 0.5f, 4.f);
|
| scroll_layer->SetScrollDelta(gfx::Vector2d());
|
| scroll_layer->SetScrollOffset(gfx::ScrollOffset(0, 0));
|
|
|
| @@ -1152,8 +1145,7 @@ TEST_F(LayerTreeHostImplTest, PageScaleAnimation) {
|
|
|
| // Non-anchor zoom-in
|
| {
|
| - host_impl_->active_tree()->SetPageScaleFactorAndLimits(1.f,
|
| - min_page_scale,
|
| + host_impl_->active_tree()->PushPageScaleFromMainThread(1.f, min_page_scale,
|
| max_page_scale);
|
| scroll_layer->SetScrollOffset(gfx::ScrollOffset(50, 50));
|
|
|
| @@ -1196,8 +1188,7 @@ TEST_F(LayerTreeHostImplTest, PageScaleAnimation) {
|
|
|
| // Anchor zoom-out
|
| {
|
| - host_impl_->active_tree()->SetPageScaleFactorAndLimits(1.f,
|
| - min_page_scale,
|
| + host_impl_->active_tree()->PushPageScaleFromMainThread(1.f, min_page_scale,
|
| max_page_scale);
|
| scroll_layer->SetScrollOffset(gfx::ScrollOffset(50, 50));
|
|
|
| @@ -1253,8 +1244,7 @@ TEST_F(LayerTreeHostImplTest, PageScaleAnimationNoOp) {
|
|
|
| // Anchor zoom with unchanged page scale should not change scroll or scale.
|
| {
|
| - host_impl_->active_tree()->SetPageScaleFactorAndLimits(1.f,
|
| - min_page_scale,
|
| + host_impl_->active_tree()->PushPageScaleFromMainThread(1.f, min_page_scale,
|
| max_page_scale);
|
| scroll_layer->SetScrollOffset(gfx::ScrollOffset(50, 50));
|
|
|
| @@ -1291,8 +1281,7 @@ TEST_F(LayerTreeHostImplTest, PageScaleAnimationTransferedOnSyncTreeActivate) {
|
|
|
| float min_page_scale = 0.5f;
|
| float max_page_scale = 4.f;
|
| - host_impl_->sync_tree()->SetPageScaleFactorAndLimits(1.f,
|
| - min_page_scale,
|
| + host_impl_->sync_tree()->PushPageScaleFromMainThread(1.f, min_page_scale,
|
| max_page_scale);
|
| host_impl_->ActivateSyncTree();
|
|
|
| @@ -1522,7 +1511,7 @@ TEST_F(LayerTreeHostImplTest, ScrollbarFadePinchZoomScrollbars) {
|
|
|
| base::TimeTicks fake_now = gfx::FrameTime::Now();
|
|
|
| - host_impl_->active_tree()->SetPageScaleFactorAndLimits(1.f, 1.f, 4.f);
|
| + host_impl_->active_tree()->PushPageScaleFromMainThread(1.f, 1.f, 4.f);
|
|
|
| EXPECT_EQ(base::TimeDelta(), requested_scrollbar_animation_delay_);
|
| EXPECT_FALSE(did_request_animate_);
|
| @@ -1549,7 +1538,7 @@ TEST_F(LayerTreeHostImplTest, ScrollbarFadePinchZoomScrollbars) {
|
| EXPECT_FALSE(did_request_animate_);
|
|
|
| // Make page scale > min so that subsequent scrolls will trigger fades.
|
| - host_impl_->active_tree()->SetPageScaleDelta(1.1f);
|
| + host_impl_->SetPageScaleOnActiveTree(1.1f);
|
|
|
| // After a scroll, a fade animation should be scheduled about 20ms from now.
|
| host_impl_->ScrollBegin(gfx::Point(), InputHandler::Wheel);
|
| @@ -1664,7 +1653,7 @@ TEST_F(LayerTreeHostImplTest, MouseMoveAtWithDeviceScaleOf2) {
|
| TEST_F(LayerTreeHostImplTest, CompositorFrameMetadata) {
|
| SetupScrollAndContentsLayers(gfx::Size(100, 100));
|
| host_impl_->SetViewportSize(gfx::Size(50, 50));
|
| - host_impl_->active_tree()->SetPageScaleFactorAndLimits(1.f, 0.5f, 4.f);
|
| + host_impl_->active_tree()->PushPageScaleFromMainThread(1.f, 0.5f, 4.f);
|
| DrawFrame();
|
| {
|
| CompositorFrameMetadata metadata =
|
| @@ -1712,8 +1701,8 @@ TEST_F(LayerTreeHostImplTest, CompositorFrameMetadata) {
|
|
|
| // Likewise if set from the main thread.
|
| host_impl_->ProcessScrollDeltas();
|
| - host_impl_->active_tree()->SetPageScaleFactorAndLimits(4.f, 0.5f, 4.f);
|
| - host_impl_->active_tree()->SetPageScaleDelta(1.f);
|
| + host_impl_->active_tree()->PushPageScaleFromMainThread(4.f, 0.5f, 4.f);
|
| + host_impl_->SetPageScaleOnActiveTree(4.f);
|
| {
|
| CompositorFrameMetadata metadata =
|
| host_impl_->MakeCompositorFrameMetadata();
|
| @@ -2265,14 +2254,27 @@ class LayerTreeHostImplTopControlsTest : public LayerTreeHostImplTest {
|
| // Make the clip size the same as the layer (content) size so the layer is
|
| // non-scrollable.
|
| : layer_size_(10, 10),
|
| - clip_size_(layer_size_) {
|
| + clip_size_(layer_size_),
|
| + top_controls_height_(50) {
|
| settings_.calculate_top_controls_position = true;
|
| - settings_.top_controls_height = 50;
|
| settings_.use_pinch_virtual_viewport = true;
|
|
|
| - viewport_size_ =
|
| - gfx::Size(clip_size_.width(),
|
| - clip_size_.height() + settings_.top_controls_height);
|
| + viewport_size_ = gfx::Size(clip_size_.width(),
|
| + clip_size_.height() + top_controls_height_);
|
| + }
|
| +
|
| + bool CreateHostImpl(const LayerTreeSettings& settings,
|
| + scoped_ptr<OutputSurface> output_surface) override {
|
| + bool init =
|
| + 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();
|
| + }
|
| + return init;
|
| }
|
|
|
| void SetupTopControlsAndScrollLayer() {
|
| @@ -2297,8 +2299,9 @@ class LayerTreeHostImplTopControlsTest : public LayerTreeHostImplTest {
|
| // Set a viewport size that is large enough to contain both the top controls
|
| // and some content.
|
| host_impl_->SetViewportSize(viewport_size_);
|
| - host_impl_->SetTopControlsLayoutHeight(
|
| - settings_.top_controls_height);
|
| + host_impl_->sync_tree()->set_top_controls_shrink_blink_size(true);
|
| +
|
| + host_impl_->DidChangeTopControlsPosition();
|
|
|
| host_impl_->CreatePendingTree();
|
| root =
|
| @@ -2322,8 +2325,8 @@ class LayerTreeHostImplTopControlsTest : public LayerTreeHostImplTest {
|
| // Set a viewport size that is large enough to contain both the top controls
|
| // and some content.
|
| host_impl_->SetViewportSize(viewport_size_);
|
| - host_impl_->sync_tree()->set_top_controls_layout_height(
|
| - settings_.top_controls_height);
|
| + host_impl_->sync_tree()->set_top_controls_shrink_blink_size(true);
|
| + host_impl_->DidChangeTopControlsPosition();
|
| }
|
|
|
| void SetupTopControlsAndScrollLayerWithVirtualViewport(
|
| @@ -2331,8 +2334,8 @@ class LayerTreeHostImplTopControlsTest : public LayerTreeHostImplTest {
|
| const gfx::Size& outer_viewport_size,
|
| const gfx::Size& scroll_layer_size) {
|
| CreateHostImpl(settings_, CreateOutputSurface());
|
| - host_impl_->SetTopControlsLayoutHeight(
|
| - settings_.top_controls_height);
|
| + host_impl_->sync_tree()->set_top_controls_shrink_blink_size(true);
|
| + host_impl_->DidChangeTopControlsPosition();
|
|
|
| scoped_ptr<LayerImpl> root =
|
| LayerImpl::Create(host_impl_->active_tree(), 1);
|
| @@ -2385,6 +2388,7 @@ class LayerTreeHostImplTopControlsTest : public LayerTreeHostImplTest {
|
| gfx::Size layer_size_;
|
| gfx::Size clip_size_;
|
| gfx::Size viewport_size_;
|
| + float top_controls_height_;
|
|
|
| LayerTreeSettings settings_;
|
| }; // class LayerTreeHostImplTopControlsTest
|
| @@ -2433,7 +2437,7 @@ TEST_F(LayerTreeHostImplTopControlsTest,
|
|
|
| // Need SetDrawsContent so ScrollBegin's hit test finds an actual layer.
|
| outer_scroll->SetDrawsContent(true);
|
| - host_impl_->active_tree()->SetPageScaleFactorAndLimits(2.f, 1.f, 2.f);
|
| + host_impl_->active_tree()->PushPageScaleFromMainThread(2.f, 1.f, 2.f);
|
|
|
| EXPECT_EQ(InputHandler::ScrollStarted,
|
| host_impl_->ScrollBegin(gfx::Point(), InputHandler::Gesture));
|
| @@ -2496,13 +2500,12 @@ TEST_F(LayerTreeHostImplTopControlsTest, FixedContainerDelta) {
|
| DrawFrame();
|
|
|
| float page_scale = 1.5f;
|
| - float top_controls_height = settings_.top_controls_height;
|
| LayerImpl* outer_viewport_scroll_layer =
|
| host_impl_->active_tree()->OuterViewportScrollLayer();
|
|
|
| // Zoom in, since the fixed container is the outer viewport, the delta should
|
| // not be scaled.
|
| - host_impl_->active_tree()->SetPageScaleFactorAndLimits(page_scale, 1.f, 2.f);
|
| + host_impl_->active_tree()->PushPageScaleFromMainThread(page_scale, 1.f, 2.f);
|
|
|
| EXPECT_EQ(InputHandler::ScrollStarted,
|
| host_impl_->ScrollBegin(gfx::Point(), InputHandler::Gesture));
|
| @@ -2512,7 +2515,7 @@ 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(),
|
| + EXPECT_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());
|
| @@ -2525,7 +2528,7 @@ TEST_F(LayerTreeHostImplTopControlsTest, FixedContainerDelta) {
|
| host_impl_->top_controls_manager()->ScrollBy(top_controls_scroll_delta);
|
| host_impl_->top_controls_manager()->ScrollBy(top_controls_scroll_delta);
|
| EXPECT_EQ(0.f, host_impl_->top_controls_manager()->ContentTopOffset());
|
| - EXPECT_VECTOR_EQ(gfx::Vector2dF(0, top_controls_height),
|
| + EXPECT_VECTOR_EQ(gfx::Vector2dF(0, top_controls_height_),
|
| outer_viewport_scroll_layer->FixedContainerSizeDelta());
|
| host_impl_->ScrollEnd();
|
|
|
| @@ -2535,7 +2538,7 @@ TEST_F(LayerTreeHostImplTopControlsTest, FixedContainerDelta) {
|
| EXPECT_EQ(top_controls_scroll_delta.y(),
|
| host_impl_->top_controls_manager()->ContentTopOffset());
|
| EXPECT_VECTOR_EQ(
|
| - gfx::Vector2dF(0, top_controls_height - top_controls_scroll_delta.y()),
|
| + gfx::Vector2dF(0, top_controls_height_ - top_controls_scroll_delta.y()),
|
| outer_viewport_scroll_layer->FixedContainerSizeDelta());
|
| host_impl_->top_controls_manager()->ScrollEnd();
|
| }
|
| @@ -2606,12 +2609,11 @@ TEST_F(LayerTreeHostImplTopControlsTest, TopControlsLayoutHeightChanged) {
|
| SetupTopControlsAndScrollLayer();
|
| DrawFrame();
|
|
|
| - host_impl_->sync_tree()->set_top_controls_content_offset(15.f);
|
| - host_impl_->sync_tree()->set_top_controls_layout_height(15.f);
|
| + host_impl_->sync_tree()->set_top_controls_content_offset(50.f);
|
| + host_impl_->sync_tree()->set_top_controls_shrink_blink_size(true);
|
|
|
| - 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()->set_top_controls_content_offset(50.f);
|
| + host_impl_->active_tree()->set_top_controls_delta(-50.f);
|
|
|
| host_impl_->DidChangeTopControlsPosition();
|
| LayerImpl* root_clip_ptr = host_impl_->active_tree()->root_layer();
|
| @@ -2620,7 +2622,7 @@ TEST_F(LayerTreeHostImplTopControlsTest, TopControlsLayoutHeightChanged) {
|
|
|
| host_impl_->sync_tree()->root_layer()->SetBounds(
|
| gfx::Size(root_clip_ptr->bounds().width(),
|
| - root_clip_ptr->bounds().height() - 15.f));
|
| + root_clip_ptr->bounds().height() - 50.f));
|
|
|
| host_impl_->ActivateSyncTree();
|
|
|
| @@ -2631,14 +2633,14 @@ TEST_F(LayerTreeHostImplTopControlsTest, TopControlsLayoutHeightChanged) {
|
| // account for the difference between the layout height and the current
|
| // top controls offset.
|
| EXPECT_EQ(viewport_size_, root_clip_ptr->bounds());
|
| - EXPECT_VECTOR_EQ(gfx::Vector2dF(0.f, 15.f), root_clip_ptr->bounds_delta());
|
| + 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_->DidChangeTopControlsPosition();
|
|
|
| - EXPECT_EQ(15.f, host_impl_->top_controls_manager()->ContentTopOffset());
|
| + 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()-15.f),
|
| + EXPECT_EQ(gfx::Size(viewport_size_.width(), viewport_size_.height() - 50.f),
|
| root_clip_ptr->bounds());
|
| }
|
|
|
| @@ -2650,7 +2652,7 @@ TEST_F(LayerTreeHostImplTopControlsTest, TopControlsViewportOffsetClamping) {
|
| gfx::Size(100, 100), gfx::Size(200, 200), gfx::Size(200, 400));
|
| DrawFrame();
|
|
|
| - EXPECT_EQ(settings_.top_controls_height,
|
| + EXPECT_EQ(top_controls_height_,
|
| host_impl_->active_tree()->total_top_controls_content_offset());
|
|
|
| LayerImpl* outer_scroll = host_impl_->OuterViewportScrollLayer();
|
| @@ -2672,7 +2674,7 @@ TEST_F(LayerTreeHostImplTopControlsTest, TopControlsViewportOffsetClamping) {
|
|
|
| // scrolling down at the max extents no longer hides the top controls
|
| EXPECT_EQ(0.f,
|
| - settings_.top_controls_height -
|
| + top_controls_height_ -
|
| host_impl_->active_tree()->total_top_controls_content_offset());
|
|
|
| // forcefully hide the top controls by 25px
|
| @@ -2680,7 +2682,7 @@ TEST_F(LayerTreeHostImplTopControlsTest, TopControlsViewportOffsetClamping) {
|
| host_impl_->ScrollEnd();
|
|
|
| EXPECT_EQ(scroll_delta.y(),
|
| - settings_.top_controls_height -
|
| + top_controls_height_ -
|
| host_impl_->active_tree()->total_top_controls_content_offset());
|
|
|
| inner_scroll->ClampScrollToMaxScrollOffset();
|
| @@ -2717,7 +2719,7 @@ TEST_F(LayerTreeHostImplTopControlsTest, TopControlsAspectRatio) {
|
| gfx::Size(100, 100), gfx::Size(200, 200), gfx::Size(200, 400));
|
| DrawFrame();
|
|
|
| - EXPECT_EQ(settings_.top_controls_height,
|
| + EXPECT_EQ(top_controls_height_,
|
| host_impl_->active_tree()->total_top_controls_content_offset());
|
|
|
| gfx::Vector2dF scroll_delta(0.f, 25.f);
|
| @@ -2727,7 +2729,7 @@ TEST_F(LayerTreeHostImplTopControlsTest, TopControlsAspectRatio) {
|
| host_impl_->ScrollEnd();
|
|
|
| EXPECT_EQ(scroll_delta.y(),
|
| - settings_.top_controls_height -
|
| + top_controls_height_ -
|
| host_impl_->active_tree()->total_top_controls_content_offset());
|
|
|
| // Top controls were hidden by 25px so the inner viewport should have expanded
|
| @@ -2753,7 +2755,7 @@ TEST_F(LayerTreeHostImplTopControlsTest, TopControlsScrollOuterViewport) {
|
| gfx::Size(100, 100), gfx::Size(200, 200), gfx::Size(200, 400));
|
| DrawFrame();
|
|
|
| - EXPECT_EQ(settings_.top_controls_height,
|
| + EXPECT_EQ(top_controls_height_,
|
| host_impl_->active_tree()->total_top_controls_content_offset());
|
|
|
| // Send a gesture scroll that will scroll the outer viewport, make sure the
|
| @@ -2767,7 +2769,7 @@ TEST_F(LayerTreeHostImplTopControlsTest, TopControlsScrollOuterViewport) {
|
| host_impl_->ScrollEnd();
|
|
|
| EXPECT_EQ(scroll_delta.y(),
|
| - settings_.top_controls_height -
|
| + top_controls_height_ -
|
| host_impl_->active_tree()->total_top_controls_content_offset());
|
|
|
| scroll_delta = gfx::Vector2dF(0.f, 50.f);
|
| @@ -2791,11 +2793,11 @@ TEST_F(LayerTreeHostImplTopControlsTest, TopControlsScrollOuterViewport) {
|
| host_impl_->ScrollBegin(gfx::Point(), InputHandler::Gesture));
|
| host_impl_->ScrollBy(gfx::Point(), scroll_delta);
|
|
|
| - EXPECT_EQ(settings_.top_controls_height,
|
| + EXPECT_EQ(top_controls_height_,
|
| host_impl_->active_tree()->total_top_controls_content_offset());
|
| - EXPECT_EQ(inner_viewport_offset.y() +
|
| - (scroll_delta.y() + settings_.top_controls_height),
|
| - host_impl_->InnerViewportScrollLayer()->ScrollDelta().y());
|
| + EXPECT_EQ(
|
| + inner_viewport_offset.y() + (scroll_delta.y() + top_controls_height_),
|
| + host_impl_->InnerViewportScrollLayer()->ScrollDelta().y());
|
|
|
| host_impl_->ScrollEnd();
|
| }
|
| @@ -3017,8 +3019,7 @@ TEST_F(LayerTreeHostImplTest, ScrollRootAndChangePageScaleOnMainThread) {
|
| host_impl_->ScrollEnd();
|
|
|
| // Set new page scale from main thread.
|
| - host_impl_->active_tree()->SetPageScaleFactorAndLimits(page_scale,
|
| - page_scale,
|
| + host_impl_->active_tree()->PushPageScaleFromMainThread(page_scale, page_scale,
|
| page_scale);
|
|
|
| scoped_ptr<ScrollAndScaleSet> scroll_info = host_impl_->ProcessScrollDeltas();
|
| @@ -3052,7 +3053,7 @@ TEST_F(LayerTreeHostImplTest, ScrollRootAndChangePageScaleOnImplThread) {
|
| Layer::INVALID_ID);
|
| host_impl_->active_tree()->DidBecomeActive();
|
| host_impl_->SetViewportSize(viewport_size);
|
| - host_impl_->active_tree()->SetPageScaleFactorAndLimits(1.f, 1.f, page_scale);
|
| + host_impl_->active_tree()->PushPageScaleFromMainThread(1.f, 1.f, page_scale);
|
| DrawFrame();
|
|
|
| LayerImpl* root_scroll =
|
| @@ -3084,7 +3085,7 @@ TEST_F(LayerTreeHostImplTest, ScrollRootAndChangePageScaleOnImplThread) {
|
| EXPECT_EQ(expected_max_scroll, root_scroll->MaxScrollOffset());
|
|
|
| // The page scale delta should match the new scale on the impl side.
|
| - EXPECT_EQ(page_scale, host_impl_->active_tree()->total_page_scale_factor());
|
| + EXPECT_EQ(page_scale, host_impl_->active_tree()->current_page_scale_factor());
|
| }
|
|
|
| TEST_F(LayerTreeHostImplTest, PageScaleDeltaAppliedToRootScrollLayerOnly) {
|
| @@ -3180,8 +3181,7 @@ TEST_F(LayerTreeHostImplTest, ScrollChildAndChangePageScaleOnMainThread) {
|
| host_impl_->ScrollEnd();
|
|
|
| float page_scale = 2.f;
|
| - host_impl_->active_tree()->SetPageScaleFactorAndLimits(page_scale,
|
| - 1.f,
|
| + host_impl_->active_tree()->PushPageScaleFromMainThread(page_scale, 1.f,
|
| page_scale);
|
|
|
| DrawOneFrame();
|
| @@ -3336,8 +3336,8 @@ TEST_F(LayerTreeHostImplTest, ScrollWithoutBubbling) {
|
|
|
|
|
| // Scrolling should be adjusted from viewport space.
|
| - host_impl_->active_tree()->SetPageScaleFactorAndLimits(2.f, 2.f, 2.f);
|
| - host_impl_->active_tree()->SetPageScaleDelta(1.f);
|
| + host_impl_->active_tree()->PushPageScaleFromMainThread(2.f, 2.f, 2.f);
|
| + host_impl_->SetPageScaleOnActiveTree(2.f);
|
|
|
| scroll_delta = gfx::Vector2d(0, -2);
|
| EXPECT_EQ(InputHandler::ScrollStarted,
|
| @@ -3611,7 +3611,7 @@ TEST_F(LayerTreeHostImplTest, ScrollViewportRounding) {
|
| host_impl_->active_tree()->InnerViewportContainerLayer()->SetBounds(
|
| gfx::Size(width * scale - 1, height * scale));
|
| host_impl_->SetDeviceScaleFactor(scale);
|
| - host_impl_->active_tree()->SetPageScaleFactorAndLimits(1.f, 0.5f, 4.f);
|
| + host_impl_->active_tree()->PushPageScaleFromMainThread(1.f, 0.5f, 4.f);
|
|
|
| LayerImpl* inner_viewport_scroll_layer =
|
| host_impl_->active_tree()->InnerViewportScrollLayer();
|
| @@ -3712,16 +3712,16 @@ TEST_F(LayerTreeHostImplTest, RootLayerScrollOffsetDelegation) {
|
| EXPECT_EQ(0.f, scroll_delegate.max_page_scale_factor());
|
|
|
| // Updating page scale immediately updates the delegate.
|
| - host_impl_->active_tree()->SetPageScaleFactorAndLimits(2.f, 0.5f, 4.f);
|
| + host_impl_->active_tree()->PushPageScaleFromMainThread(2.f, 0.5f, 4.f);
|
| EXPECT_EQ(2.f, scroll_delegate.page_scale_factor());
|
| EXPECT_EQ(0.5f, scroll_delegate.min_page_scale_factor());
|
| EXPECT_EQ(4.f, scroll_delegate.max_page_scale_factor());
|
| - host_impl_->active_tree()->SetPageScaleDelta(1.5f);
|
| + host_impl_->SetPageScaleOnActiveTree(2.f * 1.5f);
|
| EXPECT_EQ(3.f, scroll_delegate.page_scale_factor());
|
| EXPECT_EQ(0.5f, scroll_delegate.min_page_scale_factor());
|
| EXPECT_EQ(4.f, scroll_delegate.max_page_scale_factor());
|
| - host_impl_->active_tree()->SetPageScaleDelta(1.f);
|
| - host_impl_->active_tree()->SetPageScaleFactorAndLimits(1.f, 0.5f, 4.f);
|
| + host_impl_->SetPageScaleOnActiveTree(2.f);
|
| + host_impl_->active_tree()->PushPageScaleFromMainThread(1.f, 0.5f, 4.f);
|
| EXPECT_EQ(1.f, scroll_delegate.page_scale_factor());
|
| EXPECT_EQ(0.5f, scroll_delegate.min_page_scale_factor());
|
| EXPECT_EQ(4.f, scroll_delegate.max_page_scale_factor());
|
| @@ -3818,7 +3818,7 @@ TEST_F(LayerTreeHostImplTest, OverscrollRoot) {
|
| InputHandlerScrollResult scroll_result;
|
| SetupScrollAndContentsLayers(gfx::Size(100, 100));
|
| host_impl_->SetViewportSize(gfx::Size(50, 50));
|
| - host_impl_->active_tree()->SetPageScaleFactorAndLimits(1.f, 0.5f, 4.f);
|
| + host_impl_->active_tree()->PushPageScaleFromMainThread(1.f, 0.5f, 4.f);
|
| DrawFrame();
|
| EXPECT_EQ(gfx::Vector2dF(), host_impl_->accumulated_root_overscroll());
|
|
|
| @@ -4037,7 +4037,7 @@ TEST_F(LayerTreeHostImplTest, OverscrollAlways) {
|
| LayerImpl* clip_layer = scroll_layer->parent()->parent();
|
| clip_layer->SetBounds(gfx::Size(50, 50));
|
| host_impl_->SetViewportSize(gfx::Size(50, 50));
|
| - host_impl_->active_tree()->SetPageScaleFactorAndLimits(1.f, 0.5f, 4.f);
|
| + host_impl_->active_tree()->PushPageScaleFromMainThread(1.f, 0.5f, 4.f);
|
| DrawFrame();
|
| EXPECT_EQ(gfx::Vector2dF(), host_impl_->accumulated_root_overscroll());
|
|
|
| @@ -4060,9 +4060,9 @@ TEST_F(LayerTreeHostImplTest, NoOverscrollOnFractionalDeviceScale) {
|
| scoped_ptr<LayerImpl> child =
|
| CreateScrollableLayer(2, content_size, root_clip.get());
|
| root->scroll_clip_layer()->SetBounds(gfx::Size(320, 469));
|
| - host_impl_->active_tree()->SetPageScaleFactorAndLimits(
|
| - 0.326531f, 0.326531f, 5.f);
|
| - host_impl_->active_tree()->SetPageScaleDelta(1.f);
|
| + host_impl_->active_tree()->PushPageScaleFromMainThread(0.326531f, 0.326531f,
|
| + 5.f);
|
| + host_impl_->SetPageScaleOnActiveTree(0.326531f);
|
| child->SetScrollClipLayer(Layer::INVALID_ID);
|
| root->AddChild(child.Pass());
|
| root_clip->AddChild(root.Pass());
|
| @@ -6142,8 +6142,8 @@ TEST_F(LayerTreeHostImplTest, FarAwayQuadsDontNeedAA) {
|
| host_impl_->SetViewportSize(device_viewport_size);
|
|
|
| host_impl_->CreatePendingTree();
|
| - host_impl_->pending_tree()
|
| - ->SetPageScaleFactorAndLimits(1.f, 1.f / 16.f, 16.f);
|
| + host_impl_->pending_tree()->PushPageScaleFromMainThread(1.f, 1.f / 16.f,
|
| + 16.f);
|
|
|
| scoped_ptr<LayerImpl> scoped_root =
|
| LayerImpl::Create(host_impl_->pending_tree(), 1);
|
| @@ -7166,8 +7166,11 @@ class LayerTreeHostImplWithTopControlsTest : public LayerTreeHostImplTest {
|
| void SetUp() override {
|
| LayerTreeSettings settings = DefaultSettings();
|
| settings.calculate_top_controls_position = true;
|
| - settings.top_controls_height = top_controls_height_;
|
| 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_);
|
| }
|
|
|
| protected:
|
| @@ -7183,6 +7186,31 @@ TEST_F(LayerTreeHostImplWithTopControlsTest, NoIdleAnimations) {
|
| EXPECT_FALSE(did_request_redraw_);
|
| }
|
|
|
| +TEST_F(LayerTreeHostImplWithTopControlsTest, TopControlsHeightIsCommitted) {
|
| + SetupScrollAndContentsLayers(gfx::Size(100, 100));
|
| + EXPECT_FALSE(did_request_redraw_);
|
| + 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());
|
| +}
|
| +
|
| +TEST_F(LayerTreeHostImplWithTopControlsTest,
|
| + TopControlsStayFullyVisibleOnHeightChange) {
|
| + SetupScrollAndContentsLayers(gfx::Size(100, 100));
|
| + EXPECT_EQ(0.f, host_impl_->ControlsTopOffset());
|
| +
|
| + host_impl_->CreatePendingTree();
|
| + host_impl_->sync_tree()->set_top_controls_height(0);
|
| + host_impl_->ActivateSyncTree();
|
| + EXPECT_EQ(0.f, host_impl_->ControlsTopOffset());
|
| +
|
| + host_impl_->CreatePendingTree();
|
| + host_impl_->sync_tree()->set_top_controls_height(50);
|
| + host_impl_->ActivateSyncTree();
|
| + EXPECT_EQ(0.f, host_impl_->ControlsTopOffset());
|
| +}
|
| +
|
| TEST_F(LayerTreeHostImplWithTopControlsTest, TopControlsAnimationScheduling) {
|
| SetupScrollAndContentsLayers(gfx::Size(100, 100))
|
| ->SetScrollOffset(gfx::ScrollOffset(0, 10));
|
| @@ -7812,9 +7840,9 @@ TEST_F(LayerTreeHostImplTest, WheelScrollWithPageScaleFactorOnInnerLayer) {
|
|
|
| // The scroll deltas should have the page scale factor applied.
|
| {
|
| - host_impl_->active_tree()->SetPageScaleFactorAndLimits(
|
| + host_impl_->active_tree()->PushPageScaleFromMainThread(
|
| page_scale_factor, min_page_scale, max_page_scale);
|
| - host_impl_->active_tree()->SetPageScaleDelta(1.f);
|
| + host_impl_->SetPageScaleOnActiveTree(page_scale_factor);
|
| scroll_layer->SetScrollDelta(gfx::Vector2d());
|
|
|
| float page_scale_delta = 2.f;
|
|
|