Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(324)

Side by Side Diff: components/scheduler/renderer/renderer_scheduler_impl.cc

Issue 1165853002: Pipe impl_latency_takes_priority_ to the RenderScheduler. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Made the flag default Created 5 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "components/scheduler/renderer/renderer_scheduler_impl.h" 5 #include "components/scheduler/renderer/renderer_scheduler_impl.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/debug/stack_trace.h" 8 #include "base/debug/stack_trace.h"
9 #include "base/trace_event/trace_event.h" 9 #include "base/trace_event/trace_event.h"
10 #include "base/trace_event/trace_event_argument.h" 10 #include "base/trace_event/trace_event_argument.h"
(...skipping 23 matching lines...) Expand all
34 timer_task_runner_(helper_.TaskRunnerForQueue(TIMER_TASK_QUEUE)), 34 timer_task_runner_(helper_.TaskRunnerForQueue(TIMER_TASK_QUEUE)),
35 delayed_update_policy_runner_( 35 delayed_update_policy_runner_(
36 base::Bind(&RendererSchedulerImpl::UpdatePolicy, 36 base::Bind(&RendererSchedulerImpl::UpdatePolicy,
37 base::Unretained(this)), 37 base::Unretained(this)),
38 helper_.ControlTaskRunner()), 38 helper_.ControlTaskRunner()),
39 current_policy_(Policy::NORMAL), 39 current_policy_(Policy::NORMAL),
40 renderer_hidden_(false), 40 renderer_hidden_(false),
41 was_shutdown_(false), 41 was_shutdown_(false),
42 pending_main_thread_input_event_count_(0), 42 pending_main_thread_input_event_count_(0),
43 awaiting_touch_start_response_(false), 43 awaiting_touch_start_response_(false),
44 begin_main_frame_on_critical_path_(false),
44 last_input_type_(blink::WebInputEvent::Undefined), 45 last_input_type_(blink::WebInputEvent::Undefined),
45 policy_may_need_update_(&incoming_signals_lock_), 46 policy_may_need_update_(&incoming_signals_lock_),
46 timer_queue_suspend_count_(0), 47 timer_queue_suspend_count_(0),
47 in_idle_period_(false), 48 in_idle_period_(false),
48 weak_factory_(this) { 49 weak_factory_(this) {
49 update_policy_closure_ = base::Bind(&RendererSchedulerImpl::UpdatePolicy, 50 update_policy_closure_ = base::Bind(&RendererSchedulerImpl::UpdatePolicy,
50 weak_factory_.GetWeakPtr()); 51 weak_factory_.GetWeakPtr());
51 end_renderer_hidden_idle_period_closure_.Reset(base::Bind( 52 end_renderer_hidden_idle_period_closure_.Reset(base::Bind(
52 &RendererSchedulerImpl::EndIdlePeriod, weak_factory_.GetWeakPtr())); 53 &RendererSchedulerImpl::EndIdlePeriod, weak_factory_.GetWeakPtr()));
53 54
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after
119 120
120 void RendererSchedulerImpl::WillBeginFrame(const cc::BeginFrameArgs& args) { 121 void RendererSchedulerImpl::WillBeginFrame(const cc::BeginFrameArgs& args) {
121 TRACE_EVENT1(TRACE_DISABLED_BY_DEFAULT("renderer.scheduler"), 122 TRACE_EVENT1(TRACE_DISABLED_BY_DEFAULT("renderer.scheduler"),
122 "RendererSchedulerImpl::WillBeginFrame", "args", args.AsValue()); 123 "RendererSchedulerImpl::WillBeginFrame", "args", args.AsValue());
123 helper_.CheckOnValidThread(); 124 helper_.CheckOnValidThread();
124 if (helper_.IsShutdown()) 125 if (helper_.IsShutdown())
125 return; 126 return;
126 127
127 EndIdlePeriod(); 128 EndIdlePeriod();
128 estimated_next_frame_begin_ = args.frame_time + args.interval; 129 estimated_next_frame_begin_ = args.frame_time + args.interval;
130 begin_main_frame_on_critical_path_ = args.on_critical_path;
129 } 131 }
130 132
131 void RendererSchedulerImpl::DidCommitFrameToCompositor() { 133 void RendererSchedulerImpl::DidCommitFrameToCompositor() {
132 TRACE_EVENT0(TRACE_DISABLED_BY_DEFAULT("renderer.scheduler"), 134 TRACE_EVENT0(TRACE_DISABLED_BY_DEFAULT("renderer.scheduler"),
133 "RendererSchedulerImpl::DidCommitFrameToCompositor"); 135 "RendererSchedulerImpl::DidCommitFrameToCompositor");
134 helper_.CheckOnValidThread(); 136 helper_.CheckOnValidThread();
135 if (helper_.IsShutdown()) 137 if (helper_.IsShutdown())
136 return; 138 return;
137 139
138 base::TimeTicks now(helper_.Now()); 140 base::TimeTicks now(helper_.Now());
(...skipping 446 matching lines...) Expand 10 before | Expand all | Expand 10 after
585 idle_helper_.SchedulerIdlePeriodState())); 587 idle_helper_.SchedulerIdlePeriodState()));
586 state->SetBoolean("renderer_hidden", renderer_hidden_); 588 state->SetBoolean("renderer_hidden", renderer_hidden_);
587 state->SetDouble("now", (optional_now - base::TimeTicks()).InMillisecondsF()); 589 state->SetDouble("now", (optional_now - base::TimeTicks()).InMillisecondsF());
588 state->SetDouble( 590 state->SetDouble(
589 "last_input_signal_time", 591 "last_input_signal_time",
590 (last_input_signal_time_ - base::TimeTicks()).InMillisecondsF()); 592 (last_input_signal_time_ - base::TimeTicks()).InMillisecondsF());
591 state->SetInteger("pending_main_thread_input_event_count", 593 state->SetInteger("pending_main_thread_input_event_count",
592 pending_main_thread_input_event_count_); 594 pending_main_thread_input_event_count_);
593 state->SetBoolean("awaiting_touch_start_response", 595 state->SetBoolean("awaiting_touch_start_response",
594 awaiting_touch_start_response_); 596 awaiting_touch_start_response_);
597 state->SetBoolean("begin_main_frame_on_critical_path",
598 begin_main_frame_on_critical_path_);
595 state->SetDouble( 599 state->SetDouble(
596 "estimated_next_frame_begin", 600 "estimated_next_frame_begin",
597 (estimated_next_frame_begin_ - base::TimeTicks()).InMillisecondsF()); 601 (estimated_next_frame_begin_ - base::TimeTicks()).InMillisecondsF());
598 state->SetBoolean("in_idle_period", in_idle_period_); 602 state->SetBoolean("in_idle_period", in_idle_period_);
599 603
600 return state; 604 return state;
601 } 605 }
602 606
603 void RendererSchedulerImpl::OnIdlePeriodStarted() { 607 void RendererSchedulerImpl::OnIdlePeriodStarted() {
604 in_idle_period_ = true; 608 in_idle_period_ = true;
605 // TODO(alexclarke): Force update the policy 609 // TODO(alexclarke): Force update the policy
606 } 610 }
607 611
608 void RendererSchedulerImpl::OnIdlePeriodEnded() { 612 void RendererSchedulerImpl::OnIdlePeriodEnded() {
609 in_idle_period_ = false; 613 in_idle_period_ = false;
610 // TODO(alexclarke): Force update the policy 614 // TODO(alexclarke): Force update the policy
611 } 615 }
612 616
613 } // namespace scheduler 617 } // namespace scheduler
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698