| 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 4fe0871a7adebd7d4e5324fd9542cd8fae785555..9dbf1028bcafd1f8fc9a1eeedc7fca9e13269e57 100644
|
| --- a/cc/trees/layer_tree_host_impl.cc
|
| +++ b/cc/trees/layer_tree_host_impl.cc
|
| @@ -105,23 +105,27 @@ class LayerTreeHostImplTimeSourceAdapter : public TimeSourceClient {
|
| new DebugScopedSetImplThread(layer_tree_host_impl_->proxy()));
|
| }
|
|
|
| - // TODO(enne): This should probably happen post-animate.
|
| - if (layer_tree_host_impl_->pending_tree()) {
|
| - layer_tree_host_impl_->ActivatePendingTreeIfNeeded();
|
| -
|
| + if (layer_tree_host_impl_->settings().impl_side_painting) {
|
| + layer_tree_host_impl_->BeginFrame(
|
| + BeginFrameArgs::CreateExpiredForTesting());
|
| + } else {
|
| if (layer_tree_host_impl_->pending_tree()) {
|
| - layer_tree_host_impl_->pending_tree()->UpdateDrawProperties();
|
| - layer_tree_host_impl_->ManageTiles();
|
| + layer_tree_host_impl_->ActivatePendingTreeIfNeeded();
|
| +
|
| + if (layer_tree_host_impl_->pending_tree()) {
|
| + layer_tree_host_impl_->pending_tree()->UpdateDrawProperties();
|
| + layer_tree_host_impl_->ManageTiles();
|
| + }
|
| }
|
| - }
|
|
|
| - layer_tree_host_impl_->Animate(
|
| - layer_tree_host_impl_->CurrentFrameTimeTicks(),
|
| - layer_tree_host_impl_->CurrentFrameTime());
|
| - layer_tree_host_impl_->UpdateBackgroundAnimateTicking(true);
|
| - bool start_ready_animations = true;
|
| - layer_tree_host_impl_->UpdateAnimationState(start_ready_animations);
|
| - layer_tree_host_impl_->ResetCurrentFrameTimeForNextFrame();
|
| + layer_tree_host_impl_->Animate(
|
| + layer_tree_host_impl_->CurrentFrameTimeTicks(),
|
| + layer_tree_host_impl_->CurrentFrameTime());
|
| + layer_tree_host_impl_->UpdateBackgroundAnimateTicking(true);
|
| + bool start_ready_animations = true;
|
| + layer_tree_host_impl_->UpdateAnimationState(start_ready_animations);
|
| + layer_tree_host_impl_->ResetCurrentFrameTimeForNextFrame();
|
| + }
|
| }
|
|
|
| void SetActive(bool active) {
|
| @@ -296,6 +300,7 @@ bool LayerTreeHostImpl::CanDraw() {
|
|
|
| void LayerTreeHostImpl::Animate(base::TimeTicks monotonic_time,
|
| base::Time wall_clock_time) {
|
| + TRACE_EVENT0("cc", __FUNCTION__);
|
| if (input_handler_client_)
|
| input_handler_client_->Animate(monotonic_time);
|
| AnimatePageScale(monotonic_time);
|
| @@ -328,6 +333,7 @@ void LayerTreeHostImpl::StartPageScaleAnimation(gfx::Vector2d target_offset,
|
| float page_scale,
|
| base::TimeTicks start_time,
|
| base::TimeDelta duration) {
|
| + TRACE_EVENT0("cc", __FUNCTION__);
|
| if (!RootScrollLayer())
|
| return;
|
|
|
| @@ -770,7 +776,9 @@ void LayerTreeHostImpl::UpdateBackgroundAnimateTicking(
|
|
|
| bool enabled = should_background_tick &&
|
| !animation_registrar_->active_animation_controllers().empty();
|
| -
|
| + if (animation_registrar_->active_animation_controllers().empty()) {
|
| + TRACE_EVENT0("cc", "animation_registrar_->active_animation_controllers().empty() == true");
|
| + }
|
| // Lazily create the time_source adapter so that we can vary the interval for
|
| // testing.
|
| if (!time_source_client_adapter_) {
|
| @@ -1388,6 +1396,7 @@ void LayerTreeHostImpl::ActivatePendingTree() {
|
| // tree, rename the pending tree the recycle tree so we can reuse it on the
|
| // next sync.
|
| pending_tree_.swap(recycle_tree_);
|
| + client_->DidActivatePendingTree();
|
| recycle_tree_->ClearRenderSurfaces();
|
|
|
| active_tree_->SetRootLayerScrollOffsetDelegate(
|
| @@ -1411,7 +1420,6 @@ void LayerTreeHostImpl::ActivatePendingTree() {
|
| stats.total_rasterize_time_for_now_bins_on_pending_tree);
|
| }
|
|
|
| - client_->DidActivatePendingTree();
|
| }
|
|
|
| void LayerTreeHostImpl::SetVisible(bool visible) {
|
| @@ -2276,6 +2284,7 @@ void LayerTreeHostImpl::UpdateCurrentFrameTime(base::TimeTicks* ticks,
|
| base::Time* now) const {
|
| if (ticks->is_null()) {
|
| DCHECK(now->is_null());
|
| + TRACE_EVENT0("cc", "UpdateCurrentFrameTime");
|
| *ticks = CurrentPhysicalTimeTicks();
|
| *now = base::Time::Now();
|
| }
|
|
|