Index: cc/trees/thread_proxy.cc |
diff --git a/cc/trees/thread_proxy.cc b/cc/trees/thread_proxy.cc |
index 4892234a42e695c8b25ea9fc223f77d6dcf54944..786b9eda39289ea65cc9d05770c5a5b46f6bb8f4 100644 |
--- a/cc/trees/thread_proxy.cc |
+++ b/cc/trees/thread_proxy.cc |
@@ -238,11 +238,16 @@ void ThreadProxy::SetVisibleOnImplThread(CompletionEvent* completion, |
TRACE_EVENT0("cc", "ThreadProxy::SetVisibleOnImplThread"); |
layer_tree_host_impl_->SetVisible(visible); |
scheduler_on_impl_thread_->SetVisible(visible); |
- layer_tree_host_impl_->UpdateBackgroundAnimateTicking( |
- !scheduler_on_impl_thread_->WillDrawIfNeeded()); |
+ UpdateBackgroundAnimateTicking(); |
completion->Signal(); |
} |
+void ThreadProxy::UpdateBackgroundAnimateTicking() { |
+ layer_tree_host_impl_->UpdateBackgroundAnimateTicking( |
+ !scheduler_on_impl_thread_->WillDrawIfNeeded() && |
+ layer_tree_host_impl_->active_tree()->root_layer()); |
enne (OOO)
2013/08/29 00:10:10
This seems a little redundant. Scheduler::WillDra
brianderson
2013/08/29 00:16:04
It's confusing with all the negations going on. Th
|
+} |
+ |
void ThreadProxy::DoCreateAndInitializeOutputSurface() { |
TRACE_EVENT0("cc", "ThreadProxy::DoCreateAndInitializeOutputSurface"); |
DCHECK(IsMainThread()); |
@@ -406,8 +411,7 @@ void ThreadProxy::OnCanDrawStateChanged(bool can_draw) { |
TRACE_EVENT1( |
"cc", "ThreadProxy::OnCanDrawStateChanged", "can_draw", can_draw); |
scheduler_on_impl_thread_->SetCanDraw(can_draw); |
- layer_tree_host_impl_->UpdateBackgroundAnimateTicking( |
- !scheduler_on_impl_thread_->WillDrawIfNeeded()); |
+ UpdateBackgroundAnimateTicking(); |
} |
void ThreadProxy::NotifyReadyToActivate() { |
@@ -928,8 +932,7 @@ void ThreadProxy::ScheduledActionCommit() { |
SetInputThrottledUntilCommitOnImplThread(false); |
- layer_tree_host_impl_->UpdateBackgroundAnimateTicking( |
- !scheduler_on_impl_thread_->WillDrawIfNeeded()); |
+ UpdateBackgroundAnimateTicking(); |
next_frame_is_newly_committed_frame_on_impl_thread_ = true; |
@@ -1002,7 +1005,7 @@ ThreadProxy::ScheduledActionDrawAndSwapInternal(bool forced_draw) { |
if (layer_tree_host_impl_->pending_tree()) |
layer_tree_host_impl_->pending_tree()->UpdateDrawProperties(); |
layer_tree_host_impl_->Animate(monotonic_time, wall_clock_time); |
- layer_tree_host_impl_->UpdateBackgroundAnimateTicking(false); |
+ UpdateBackgroundAnimateTicking(); |
base::TimeTicks start_time = base::TimeTicks::HighResNow(); |
base::TimeDelta draw_duration_estimate = DrawDurationEstimate(); |
@@ -1049,7 +1052,6 @@ ThreadProxy::ScheduledActionDrawAndSwapInternal(bool forced_draw) { |
result.did_draw = true; |
} |
layer_tree_host_impl_->DidDrawAllLayers(frame); |
- |
layer_tree_host_impl_->UpdateAnimationState(start_ready_animations); |
// Check for a pending CompositeAndReadback. |
@@ -1500,6 +1502,8 @@ void ThreadProxy::DidActivatePendingTree() { |
completion_event_for_commit_held_on_tree_activation_ = NULL; |
} |
+ UpdateBackgroundAnimateTicking(); |
+ |
commit_to_activate_duration_history_.InsertSample( |
base::TimeTicks::HighResNow() - commit_complete_time_); |
} |