| Index: cc/trees/layer_tree_host.cc
|
| diff --git a/cc/trees/layer_tree_host.cc b/cc/trees/layer_tree_host.cc
|
| index 808bf21a767fc772ecc909c88242c3e27f93584f..c2fce2a6230b4c277c9dad1bea78c3ea613f8355 100644
|
| --- a/cc/trees/layer_tree_host.cc
|
| +++ b/cc/trees/layer_tree_host.cc
|
| @@ -23,6 +23,7 @@
|
| #include "cc/debug/devtools_instrumentation.h"
|
| #include "cc/debug/rendering_stats_instrumentation.h"
|
| #include "cc/input/layer_selection_bound.h"
|
| +#include "cc/input/page_scale_animation.h"
|
| #include "cc/input/top_controls_manager.h"
|
| #include "cc/layers/heads_up_display_layer.h"
|
| #include "cc/layers/heads_up_display_layer_impl.h"
|
| @@ -197,7 +198,7 @@ LayerTreeHost::~LayerTreeHost() {
|
| }
|
|
|
| // We must clear any pointers into the layer tree prior to destroying it.
|
| - RegisterViewportLayers(NULL, NULL, NULL);
|
| + RegisterViewportLayers(NULL, NULL, NULL, NULL);
|
|
|
| if (root_layer_.get()) {
|
| // The layer tree must be destroyed before the layer tree host. We've
|
| @@ -347,11 +348,12 @@ void LayerTreeHost::FinishCommitOnImplThread(LayerTreeHostImpl* host_impl) {
|
| sync_tree->set_has_transparent_background(has_transparent_background_);
|
|
|
| if (page_scale_layer_.get() && inner_viewport_scroll_layer_.get()) {
|
| - sync_tree->SetViewportLayersFromIds(page_scale_layer_->id(),
|
| - inner_viewport_scroll_layer_->id(),
|
| - outer_viewport_scroll_layer_.get()
|
| - ? outer_viewport_scroll_layer_->id()
|
| - : Layer::INVALID_ID);
|
| + sync_tree->SetViewportLayersFromIds(
|
| + overscroll_elasticity_layer_.get() ? overscroll_elasticity_layer_->id()
|
| + : Layer::INVALID_ID,
|
| + page_scale_layer_->id(), inner_viewport_scroll_layer_->id(),
|
| + outer_viewport_scroll_layer_.get() ? outer_viewport_scroll_layer_->id()
|
| + : Layer::INVALID_ID);
|
| } else {
|
| sync_tree->ClearViewportLayers();
|
| }
|
| @@ -381,12 +383,8 @@ void LayerTreeHost::FinishCommitOnImplThread(LayerTreeHostImpl* host_impl) {
|
| host_impl->SetDeviceScaleFactor(device_scale_factor_);
|
| host_impl->SetDebugState(debug_state_);
|
| if (pending_page_scale_animation_) {
|
| - sync_tree->SetPageScaleAnimation(
|
| - pending_page_scale_animation_->target_offset,
|
| - pending_page_scale_animation_->use_anchor,
|
| - pending_page_scale_animation_->scale,
|
| - pending_page_scale_animation_->duration);
|
| - pending_page_scale_animation_ = nullptr;
|
| + sync_tree->SetPendingPageScaleAnimation(
|
| + pending_page_scale_animation_.Pass());
|
| }
|
|
|
| if (!ui_resource_request_queue_.empty()) {
|
| @@ -724,11 +722,12 @@ void LayerTreeHost::StartPageScaleAnimation(const gfx::Vector2d& target_offset,
|
| bool use_anchor,
|
| float scale,
|
| base::TimeDelta duration) {
|
| - pending_page_scale_animation_.reset(new PendingPageScaleAnimation);
|
| - pending_page_scale_animation_->target_offset = target_offset;
|
| - pending_page_scale_animation_->use_anchor = use_anchor;
|
| - pending_page_scale_animation_->scale = scale;
|
| - pending_page_scale_animation_->duration = duration;
|
| + pending_page_scale_animation_.reset(
|
| + new PendingPageScaleAnimation(
|
| + target_offset,
|
| + use_anchor,
|
| + scale,
|
| + duration));
|
|
|
| SetNeedsCommit();
|
| }
|
| @@ -1288,9 +1287,11 @@ gfx::Size LayerTreeHost::GetUIResourceSize(UIResourceId uid) const {
|
| }
|
|
|
| void LayerTreeHost::RegisterViewportLayers(
|
| + scoped_refptr<Layer> overscroll_elasticity_layer,
|
| scoped_refptr<Layer> page_scale_layer,
|
| scoped_refptr<Layer> inner_viewport_scroll_layer,
|
| scoped_refptr<Layer> outer_viewport_scroll_layer) {
|
| + overscroll_elasticity_layer_ = overscroll_elasticity_layer;
|
| page_scale_layer_ = page_scale_layer;
|
| inner_viewport_scroll_layer_ = inner_viewport_scroll_layer;
|
| outer_viewport_scroll_layer_ = outer_viewport_scroll_layer;
|
| @@ -1352,4 +1353,14 @@ SurfaceSequence LayerTreeHost::CreateSurfaceSequence() {
|
| return SurfaceSequence(surface_id_namespace_, next_surface_sequence_++);
|
| }
|
|
|
| +void LayerTreeHost::SetChildrenNeedBeginFrames(
|
| + bool children_need_begin_frames) const {
|
| + proxy_->SetChildrenNeedBeginFrames(children_need_begin_frames);
|
| +}
|
| +
|
| +void LayerTreeHost::SendBeginFramesToChildren(
|
| + const BeginFrameArgs& args) const {
|
| + client_->SendBeginFramesToChildren(args);
|
| +}
|
| +
|
| } // namespace cc
|
|
|