| Index: cc/trees/layer_tree_impl_unittest.cc
|
| diff --git a/cc/trees/layer_tree_impl_unittest.cc b/cc/trees/layer_tree_impl_unittest.cc
|
| index 2c5dd05be0372135e4c84b3acdd4d16f95993761..67f98e65a4ebef0dde18a93d37bd2e637be387ce 100644
|
| --- a/cc/trees/layer_tree_impl_unittest.cc
|
| +++ b/cc/trees/layer_tree_impl_unittest.cc
|
| @@ -6,6 +6,7 @@
|
|
|
| #include "cc/layers/heads_up_display_layer_impl.h"
|
| #include "cc/layers/layer.h"
|
| +#include "cc/layers/solid_color_scrollbar_layer_impl.h"
|
| #include "cc/test/fake_impl_proxy.h"
|
| #include "cc/test/fake_layer_tree_host_impl.h"
|
| #include "cc/test/fake_output_surface.h"
|
| @@ -23,6 +24,7 @@ class LayerTreeImplTest : public LayerTreeHostCommonTest {
|
| LayerTreeImplTest() {
|
| LayerTreeSettings settings;
|
| settings.layer_transforms_should_scale_layer_contents = true;
|
| + settings.scrollbar_show_scale_threshold = 1.1f;
|
| host_impl_.reset(
|
| new FakeLayerTreeHostImpl(settings, &proxy_, &shared_bitmap_manager_));
|
| EXPECT_TRUE(host_impl_->InitializeRenderer(FakeOutputSurface::Create3d()));
|
| @@ -1371,6 +1373,73 @@ TEST_F(LayerTreeImplTest,
|
| EXPECT_FALSE(result_layer);
|
| }
|
|
|
| +TEST_F(LayerTreeImplTest, MakeScrollbarsInvisibleNearMinPageScale) {
|
| + const int kThumbThickness = 10;
|
| + const int kTrackStart = 0;
|
| + const bool kIsLeftSideVerticalScrollbar = false;
|
| + const bool kIsOverlayScrollbar = true;
|
| +
|
| + LayerTreeImpl* active_tree = host_impl().active_tree();
|
| +
|
| + scoped_ptr<LayerImpl> scroll_layer = LayerImpl::Create(active_tree, 1);
|
| + scoped_ptr<SolidColorScrollbarLayerImpl> vertical_scrollbar_layer =
|
| + SolidColorScrollbarLayerImpl::Create(active_tree,
|
| + 2,
|
| + VERTICAL,
|
| + kThumbThickness,
|
| + kTrackStart,
|
| + kIsLeftSideVerticalScrollbar,
|
| + kIsOverlayScrollbar);
|
| + scoped_ptr<SolidColorScrollbarLayerImpl> horizontal_scrollbar_layer =
|
| + SolidColorScrollbarLayerImpl::Create(active_tree,
|
| + 3,
|
| + HORIZONTAL,
|
| + kThumbThickness,
|
| + kTrackStart,
|
| + kIsLeftSideVerticalScrollbar,
|
| + kIsOverlayScrollbar);
|
| +
|
| + scoped_ptr<LayerImpl> clip_layer = LayerImpl::Create(active_tree, 4);
|
| + scoped_ptr<LayerImpl> page_scale_layer = LayerImpl::Create(active_tree, 5);
|
| +
|
| + scroll_layer->SetScrollClipLayer(clip_layer->id());
|
| +
|
| + LayerImpl* scroll_layer_ptr = scroll_layer.get();
|
| + LayerImpl* page_scale_layer_ptr = page_scale_layer.get();
|
| +
|
| + clip_layer->AddChild(page_scale_layer.Pass());
|
| + page_scale_layer_ptr->AddChild(scroll_layer.Pass());
|
| +
|
| + vertical_scrollbar_layer->SetScrollLayerAndClipLayerByIds(
|
| + scroll_layer_ptr->id(),
|
| + clip_layer->id());
|
| + horizontal_scrollbar_layer->SetScrollLayerAndClipLayerByIds(
|
| + scroll_layer_ptr->id(),
|
| + clip_layer->id());
|
| +
|
| + active_tree->PushPageScaleFromMainThread(1.0f, 1.0f, 4.0f);
|
| + active_tree->SetViewportLayersFromIds(
|
| + Layer::INVALID_ID, // Overscroll
|
| + page_scale_layer_ptr->id(),
|
| + scroll_layer_ptr->id(),
|
| + Layer::INVALID_ID); // Outer Scroll
|
| +
|
| + EXPECT_TRUE(vertical_scrollbar_layer->hide_layer_and_subtree());
|
| + EXPECT_TRUE(horizontal_scrollbar_layer->hide_layer_and_subtree());
|
| +
|
| + active_tree->PushPageScaleFromMainThread(1.05f, 1.0f, 4.0f);
|
| + EXPECT_TRUE(vertical_scrollbar_layer->hide_layer_and_subtree());
|
| + EXPECT_TRUE(horizontal_scrollbar_layer->hide_layer_and_subtree());
|
| +
|
| + active_tree->PushPageScaleFromMainThread(1.1f, 1.0f, 4.0f);
|
| + EXPECT_FALSE(vertical_scrollbar_layer->hide_layer_and_subtree());
|
| + EXPECT_FALSE(horizontal_scrollbar_layer->hide_layer_and_subtree());
|
| +
|
| + active_tree->PushPageScaleFromMainThread(1.5f, 1.0f, 4.0f);
|
| + EXPECT_FALSE(vertical_scrollbar_layer->hide_layer_and_subtree());
|
| + EXPECT_FALSE(horizontal_scrollbar_layer->hide_layer_and_subtree());
|
| +}
|
| +
|
| TEST_F(LayerTreeImplTest,
|
| HitCheckingTouchHandlerRegionsForSinglePositionedLayer) {
|
| scoped_ptr<LayerImpl> root =
|
|
|