Index: cc/trees/layer_tree_impl.cc |
diff --git a/cc/trees/layer_tree_impl.cc b/cc/trees/layer_tree_impl.cc |
index c005a1821614499203bbcdb488a40e4e595698c2..ad355fa977b0cc0168c28f8c21defcba7784263c 100644 |
--- a/cc/trees/layer_tree_impl.cc |
+++ b/cc/trees/layer_tree_impl.cc |
@@ -221,12 +221,14 @@ void LayerTreeImpl::PushPropertiesTo(LayerTreeImpl* target_tree) { |
target_tree->page_scale_delta() / target_tree->sent_page_scale_delta()); |
target_tree->set_sent_page_scale_delta(1); |
- target_tree->page_scale_animation_ = page_scale_animation_.Pass(); |
+ target_tree->pending_page_scale_animation_ = |
+ pending_page_scale_animation_.Pass(); |
if (page_scale_layer_ && inner_viewport_scroll_layer_) { |
target_tree->SetViewportLayersFromIds( |
- page_scale_layer_->id(), |
- inner_viewport_scroll_layer_->id(), |
+ overscroll_elasticity_layer_ ? overscroll_elasticity_layer_->id() |
+ : Layer::INVALID_ID, |
+ page_scale_layer_->id(), inner_viewport_scroll_layer_->id(), |
outer_viewport_scroll_layer_ ? outer_viewport_scroll_layer_->id() |
: Layer::INVALID_ID); |
} else { |
@@ -425,9 +427,11 @@ void LayerTreeImpl::ApplyScrollDeltasSinceBeginMainFrame() { |
} |
void LayerTreeImpl::SetViewportLayersFromIds( |
+ int overscroll_elasticity_layer_id, |
int page_scale_layer_id, |
int inner_viewport_scroll_layer_id, |
int outer_viewport_scroll_layer_id) { |
+ overscroll_elasticity_layer_ = LayerById(overscroll_elasticity_layer_id); |
page_scale_layer_ = LayerById(page_scale_layer_id); |
DCHECK(page_scale_layer_); |
@@ -1480,45 +1484,14 @@ BlockingTaskRunner* LayerTreeImpl::BlockingMainThreadTaskRunner() const { |
return proxy()->blocking_main_thread_task_runner(); |
} |
-void LayerTreeImpl::SetPageScaleAnimation( |
- const gfx::Vector2d& target_offset, |
- bool anchor_point, |
- float page_scale, |
- base::TimeDelta duration) { |
- if (!InnerViewportScrollLayer()) |
- return; |
- |
- gfx::ScrollOffset scroll_total = TotalScrollOffset(); |
- gfx::SizeF scaled_scrollable_size = ScrollableSize(); |
- gfx::SizeF viewport_size = InnerViewportContainerLayer()->bounds(); |
- |
- // Easing constants experimentally determined. |
- scoped_ptr<TimingFunction> timing_function = |
- CubicBezierTimingFunction::Create(.8, 0, .3, .9); |
- |
- // TODO(miletus) : Pass in ScrollOffset. |
- page_scale_animation_ = |
- PageScaleAnimation::Create(ScrollOffsetToVector2dF(scroll_total), |
- total_page_scale_factor(), |
- viewport_size, |
- scaled_scrollable_size, |
- timing_function.Pass()); |
- |
- if (anchor_point) { |
- gfx::Vector2dF anchor(target_offset); |
- page_scale_animation_->ZoomWithAnchor(anchor, |
- page_scale, |
- duration.InSecondsF()); |
- } else { |
- gfx::Vector2dF scaled_target_offset = target_offset; |
- page_scale_animation_->ZoomTo(scaled_target_offset, |
- page_scale, |
- duration.InSecondsF()); |
- } |
+void LayerTreeImpl::SetPendingPageScaleAnimation( |
+ scoped_ptr<PendingPageScaleAnimation> pending_animation) { |
+ pending_page_scale_animation_ = pending_animation.Pass(); |
} |
-scoped_ptr<PageScaleAnimation> LayerTreeImpl::TakePageScaleAnimation() { |
- return page_scale_animation_.Pass(); |
+scoped_ptr<PendingPageScaleAnimation> |
+ LayerTreeImpl::TakePendingPageScaleAnimation() { |
+ return pending_page_scale_animation_.Pass(); |
} |
} // namespace cc |