Don't hide pinch viewport scrollbars near min-scale with device emulation.
Depends on http://crrev.com/1269813004.
BUG=515746
CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel
Review URL: https://codereview.chromium.org/1267603004
Cr-Commit-Position: refs/heads/master@{#341784}
diff --git a/cc/trees/layer_tree_impl.cc b/cc/trees/layer_tree_impl.cc
index 19963024..aba949e 100644
--- a/cc/trees/layer_tree_impl.cc
+++ b/cc/trees/layer_tree_impl.cc
@@ -58,6 +58,7 @@
page_scale_factor_(page_scale_factor),
min_page_scale_factor_(0),
max_page_scale_factor_(0),
+ hide_pinch_scrollbars_near_min_scale_(false),
elastic_overscroll_(elastic_overscroll),
viewport_size_invalid_(false),
needs_update_draw_properties_(true),
@@ -230,6 +231,9 @@
target_tree->set_top_controls_height(top_controls_height_);
target_tree->PushTopControls(nullptr);
+ target_tree->set_hide_pinch_scrollbars_near_min_scale(
+ hide_pinch_scrollbars_near_min_scale_);
+
// Active tree already shares the page_scale_factor object with pending
// tree so only the limits need to be provided.
target_tree->PushPageScaleFactorAndLimits(nullptr, min_page_scale_factor(),
@@ -465,11 +469,10 @@
}
ForceScrollbarParameterUpdateAfterScaleChange(PageScaleLayer());
-
- HideInnerViewportScrollbarsIfNearMinimumScale();
+ HideInnerViewportScrollbarsIfNeeded();
}
-void LayerTreeImpl::HideInnerViewportScrollbarsIfNearMinimumScale() {
+void LayerTreeImpl::HideInnerViewportScrollbarsIfNeeded() {
if (!InnerViewportContainerLayer())
return;
@@ -479,15 +482,14 @@
if (!scrollbars)
return;
+ float minimum_scale_to_show_at = min_page_scale_factor() * 1.05f;
+ bool hide_scrollbars =
+ hide_pinch_scrollbars_near_min_scale_ &&
+ (current_page_scale_factor() < minimum_scale_to_show_at);
+
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);
- }
+ it != scrollbars->end(); ++it)
+ (*it)->SetHideLayerAndSubtree(hide_scrollbars);
}
SyncedProperty<ScaleGroup>* LayerTreeImpl::page_scale_factor() {
@@ -543,7 +545,7 @@
inner_viewport_scroll_layer_id_ = inner_viewport_scroll_layer_id;
outer_viewport_scroll_layer_id_ = outer_viewport_scroll_layer_id;
- HideInnerViewportScrollbarsIfNearMinimumScale();
+ HideInnerViewportScrollbarsIfNeeded();
}
void LayerTreeImpl::ClearViewportLayers() {