Commit b14926c9 authored by chaopeng's avatar chaopeng Committed by Commit bot

Fade out overlay scrollbar after page load

This issue is caused by Aura Overlay Scrollbar is created with
opacity>0. We
used to call SAC::DidScrollUpdate - LTI::UpdateScrollbars to fade out
when RegisterScrollLayer.

```
#2 0x7f23d0dfe1ea cc::LayerTreeImpl::UpdateScrollbars()
#3 0x7f23d0dfd999 cc::LayerTreeImpl::DidUpdateScrollState()
#4 0x7f23d0e07231 cc::LayerTreeImpl::RegisterScrollLayer()
```

But we remove ScrollbarAnimationController::DidScrollUpdate call in
UpdateScrollbars at
https://crrev.com/697a467f819ce09da5209a3df13b8b92f33e35a4.
Then Overlay Scrollbar can not fade out until we have real scroll.

In this patch, we apply set_needs_show_scrollbars(true) to the layer in
LayerTreeImpl::RegisterScrollLayer that will let
LTI::HandleScrollbarShowRequestsFromMain pickup and call
SAC::DidScrollUpdate.

For cc_unittest, remove set_needs_show_scrollbars call in
LayerTreeHostImplTestScrollbarAnimation.* and
LayerTreeHostImplTest.ScrollbarVisibilityChangeCausesRedrawAndCommit.

BUG=717222
CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_trusty_blink_rel

Review-Url: https://codereview.chromium.org/2858973002
Cr-Commit-Position: refs/heads/master@{#469425}
parent 5b95074f
...@@ -2919,7 +2919,6 @@ class LayerTreeHostImplTestScrollbarAnimation : public LayerTreeHostImplTest { ...@@ -2919,7 +2919,6 @@ class LayerTreeHostImplTestScrollbarAnimation : public LayerTreeHostImplTest {
LayerImpl* root = host_impl_->active_tree()->InnerViewportContainerLayer(); LayerImpl* root = host_impl_->active_tree()->InnerViewportContainerLayer();
scrollbar->SetScrollElementId(scroll->element_id()); scrollbar->SetScrollElementId(scroll->element_id());
root->test_properties()->AddChild(std::move(scrollbar)); root->test_properties()->AddChild(std::move(scrollbar));
scroll->set_needs_show_scrollbars(true);
host_impl_->active_tree()->BuildPropertyTreesForTesting(); host_impl_->active_tree()->BuildPropertyTreesForTesting();
host_impl_->active_tree()->DidBecomeActive(); host_impl_->active_tree()->DidBecomeActive();
host_impl_->active_tree()->HandleScrollbarShowRequestsFromMain(); host_impl_->active_tree()->HandleScrollbarShowRequestsFromMain();
...@@ -3223,7 +3222,6 @@ TEST_F(LayerTreeHostImplTest, ScrollbarVisibilityChangeCausesRedrawAndCommit) { ...@@ -3223,7 +3222,6 @@ TEST_F(LayerTreeHostImplTest, ScrollbarVisibilityChangeCausesRedrawAndCommit) {
scrollbar->SetPosition(gfx::PointF(90, 0)); scrollbar->SetPosition(gfx::PointF(90, 0));
container->test_properties()->AddChild(std::move(scrollbar)); container->test_properties()->AddChild(std::move(scrollbar));
host_impl_->pending_tree()->PushPageScaleFromMainThread(1.f, 1.f, 1.f); host_impl_->pending_tree()->PushPageScaleFromMainThread(1.f, 1.f, 1.f);
scroll->set_needs_show_scrollbars(true);
host_impl_->pending_tree()->BuildPropertyTreesForTesting(); host_impl_->pending_tree()->BuildPropertyTreesForTesting();
host_impl_->ActivateSyncTree(); host_impl_->ActivateSyncTree();
......
...@@ -1703,6 +1703,8 @@ void LayerTreeImpl::RegisterScrollLayer(LayerImpl* layer) { ...@@ -1703,6 +1703,8 @@ void LayerTreeImpl::RegisterScrollLayer(LayerImpl* layer) {
std::pair<int, int>(layer->scroll_clip_layer_id(), layer->id())); std::pair<int, int>(layer->scroll_clip_layer_id(), layer->id()));
DidUpdateScrollState(layer->id()); DidUpdateScrollState(layer->id());
layer->set_needs_show_scrollbars(true);
} }
void LayerTreeImpl::UnregisterScrollLayer(LayerImpl* layer) { void LayerTreeImpl::UnregisterScrollLayer(LayerImpl* layer) {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment