| Index: cc/trees/layer_tree_host_impl.cc
|
| diff --git a/cc/trees/layer_tree_host_impl.cc b/cc/trees/layer_tree_host_impl.cc
|
| index 915f7ea72f25aaea11529420ca982b2b29ed0de3..0b11e6e4a5be27433d1d87ac4d3dd7e028297577 100644
|
| --- a/cc/trees/layer_tree_host_impl.cc
|
| +++ b/cc/trees/layer_tree_host_impl.cc
|
| @@ -265,8 +265,8 @@ LayerTreeHostImpl::LayerTreeHostImpl(
|
|
|
| // LTHI always has an active tree.
|
| active_tree_ = base::MakeUnique<LayerTreeImpl>(
|
| - this, new SyncedProperty<ScaleGroup>, new SyncedBrowserControls,
|
| - new SyncedElasticOverscroll);
|
| + this, new SyncedProperty<ScaleGroup>, new SyncedProperty<ScaleGroup>,
|
| + new SyncedBrowserControls, new SyncedElasticOverscroll);
|
| active_tree_->property_trees()->is_active = true;
|
|
|
| viewport_ = Viewport::Create(this);
|
| @@ -1198,10 +1198,11 @@ void LayerTreeHostImpl::BlockNotifyReadyToActivateForTesting(bool block) {
|
| void LayerTreeHostImpl::ResetTreesForTesting() {
|
| if (active_tree_)
|
| active_tree_->DetachLayers();
|
| - active_tree_ =
|
| - base::MakeUnique<LayerTreeImpl>(this, active_tree()->page_scale_factor(),
|
| - active_tree()->top_controls_shown_ratio(),
|
| - active_tree()->elastic_overscroll());
|
| + active_tree_ = base::MakeUnique<LayerTreeImpl>(
|
| + this, active_tree()->page_scale_factor(),
|
| + active_tree()->subframe_page_scale_factor(),
|
| + active_tree()->top_controls_shown_ratio(),
|
| + active_tree()->elastic_overscroll());
|
| active_tree_->property_trees()->is_active = true;
|
| if (pending_tree_)
|
| pending_tree_->DetachLayers();
|
| @@ -1541,6 +1542,7 @@ CompositorFrameMetadata LayerTreeHostImpl::MakeCompositorFrameMetadata() const {
|
| active_tree_->device_scale_factor();
|
|
|
| metadata.page_scale_factor = active_tree_->current_page_scale_factor();
|
| + // TODO(wjmaclean): Should we sxpose subframe PSF here?
|
| metadata.scrollable_viewport_size = active_tree_->ScrollableViewportSize();
|
| metadata.root_layer_size = active_tree_->ScrollableSize();
|
| metadata.min_page_scale_factor = active_tree_->min_page_scale_factor();
|
| @@ -1952,6 +1954,7 @@ void LayerTreeHostImpl::CreatePendingTree() {
|
| } else {
|
| pending_tree_ = base::MakeUnique<LayerTreeImpl>(
|
| this, active_tree()->page_scale_factor(),
|
| + active_tree()->subframe_page_scale_factor(),
|
| active_tree()->top_controls_shown_ratio(),
|
| active_tree()->elastic_overscroll());
|
| }
|
| @@ -3318,9 +3321,14 @@ void LayerTreeHostImpl::PinchGestureBegin() {
|
| void LayerTreeHostImpl::PinchGestureUpdate(float magnify_delta,
|
| const gfx::Point& anchor) {
|
| TRACE_EVENT0("cc", "LayerTreeHostImpl::PinchGestureUpdate");
|
| - if (!InnerViewportScrollLayer())
|
| - return;
|
| - viewport()->PinchUpdate(magnify_delta, anchor);
|
| + if (InnerViewportScrollLayer()) {
|
| + viewport()->PinchUpdate(magnify_delta, anchor);
|
| + } else {
|
| + float subframe_page_scale_factor =
|
| + active_tree_->GetSubframePageScaleFactor();
|
| + subframe_page_scale_factor *= magnify_delta;
|
| + active_tree_->SetSubframePageScaleOnActiveTree(subframe_page_scale_factor);
|
| + }
|
| client_->SetNeedsCommitOnImplThread();
|
| SetNeedsRedraw();
|
| client_->RenewTreePriority();
|
|
|