| Index: cc/trees/layer_tree_impl.cc
|
| diff --git a/cc/trees/layer_tree_impl.cc b/cc/trees/layer_tree_impl.cc
|
| index 041c5fea5186105c11c86371cea45ed66c3ee206..54529b6cf3397f0d6c75bb77605122facfbd73ab 100644
|
| --- a/cc/trees/layer_tree_impl.cc
|
| +++ b/cc/trees/layer_tree_impl.cc
|
| @@ -395,6 +395,29 @@ void LayerTreeImpl::DidUpdatePageScale() {
|
| }
|
|
|
| ForceScrollbarParameterUpdateAfterScaleChange(page_scale_layer());
|
| +
|
| + HideInnerViewportScrollbarsIfNearMinimumScale();
|
| +}
|
| +
|
| +void LayerTreeImpl::HideInnerViewportScrollbarsIfNearMinimumScale() {
|
| + if (!InnerViewportContainerLayer())
|
| + return;
|
| +
|
| + LayerImpl::ScrollbarSet* scrollbars =
|
| + InnerViewportContainerLayer()->scrollbars();
|
| +
|
| + if (!scrollbars)
|
| + return;
|
| +
|
| + for (LayerImpl::ScrollbarSet::iterator it = scrollbars->begin();
|
| + it != scrollbars->end();
|
| + ++it) {
|
| + ScrollbarLayerImplBase* scrollbar = *it;
|
| + float minimum_scale_to_show_at =
|
| + min_page_scale_factor() * settings().scrollbar_show_scale_threshold;
|
| + scrollbar->SetHideLayerAndSubtree(
|
| + current_page_scale_factor() < minimum_scale_to_show_at);
|
| + }
|
| }
|
|
|
| SyncedProperty<ScaleGroup>* LayerTreeImpl::page_scale_factor() {
|
| @@ -476,6 +499,8 @@ void LayerTreeImpl::SetViewportLayersFromIds(
|
| DCHECK(outer_viewport_scroll_layer_ ||
|
| outer_viewport_scroll_layer_id == Layer::INVALID_ID);
|
|
|
| + HideInnerViewportScrollbarsIfNearMinimumScale();
|
| +
|
| if (!root_layer_scroll_offset_delegate_)
|
| return;
|
|
|
|
|