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

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

Issue 1145973011: mojo: Fix Blink's shutdown sequence in AxProviderImplTest (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Add missing shutdown call to html_viewer::Setup 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
« no previous file with comments | « components/scheduler/renderer/renderer_scheduler_impl.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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/message_loop/message_loop_proxy.h" 8 #include "base/message_loop/message_loop_proxy.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 20 matching lines...) Expand all
31 compositor_task_runner_( 31 compositor_task_runner_(
32 helper_.TaskRunnerForQueue(COMPOSITOR_TASK_QUEUE)), 32 helper_.TaskRunnerForQueue(COMPOSITOR_TASK_QUEUE)),
33 loading_task_runner_(helper_.TaskRunnerForQueue(LOADING_TASK_QUEUE)), 33 loading_task_runner_(helper_.TaskRunnerForQueue(LOADING_TASK_QUEUE)),
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 last_input_type_(blink::WebInputEvent::Undefined), 42 last_input_type_(blink::WebInputEvent::Undefined),
42 input_stream_state_(InputStreamState::INACTIVE), 43 input_stream_state_(InputStreamState::INACTIVE),
43 policy_may_need_update_(&incoming_signals_lock_), 44 policy_may_need_update_(&incoming_signals_lock_),
44 timer_queue_suspend_count_(0), 45 timer_queue_suspend_count_(0),
45 weak_factory_(this) { 46 weak_factory_(this) {
46 update_policy_closure_ = base::Bind(&RendererSchedulerImpl::UpdatePolicy, 47 update_policy_closure_ = base::Bind(&RendererSchedulerImpl::UpdatePolicy,
47 weak_factory_.GetWeakPtr()); 48 weak_factory_.GetWeakPtr());
48 end_renderer_hidden_idle_period_closure_.Reset(base::Bind( 49 end_renderer_hidden_idle_period_closure_.Reset(base::Bind(
49 &RendererSchedulerImpl::EndIdlePeriod, weak_factory_.GetWeakPtr())); 50 &RendererSchedulerImpl::EndIdlePeriod, weak_factory_.GetWeakPtr()));
50 51
51 for (size_t i = SchedulerHelper::TASK_QUEUE_COUNT; i < TASK_QUEUE_COUNT; 52 for (size_t i = SchedulerHelper::TASK_QUEUE_COUNT; i < TASK_QUEUE_COUNT;
52 i++) { 53 i++) {
53 helper_.SetQueueName(i, TaskQueueIdToString(static_cast<QueueId>(i))); 54 helper_.SetQueueName(i, TaskQueueIdToString(static_cast<QueueId>(i)));
54 } 55 }
55 TRACE_EVENT_OBJECT_CREATED_WITH_ID( 56 TRACE_EVENT_OBJECT_CREATED_WITH_ID(
56 TRACE_DISABLED_BY_DEFAULT("renderer.scheduler"), "RendererScheduler", 57 TRACE_DISABLED_BY_DEFAULT("renderer.scheduler"), "RendererScheduler",
57 this); 58 this);
58 } 59 }
59 60
60 RendererSchedulerImpl::~RendererSchedulerImpl() { 61 RendererSchedulerImpl::~RendererSchedulerImpl() {
61 TRACE_EVENT_OBJECT_DELETED_WITH_ID( 62 TRACE_EVENT_OBJECT_DELETED_WITH_ID(
62 TRACE_DISABLED_BY_DEFAULT("renderer.scheduler"), "RendererScheduler", 63 TRACE_DISABLED_BY_DEFAULT("renderer.scheduler"), "RendererScheduler",
63 this); 64 this);
65 // Ensure the renderer scheduler was shut down explicitly, because otherwise
66 // we could end up having stale pointers to the Blink heap which has been
67 // terminated by this point.
68 DCHECK(was_shutdown_);
64 } 69 }
65 70
66 void RendererSchedulerImpl::Shutdown() { 71 void RendererSchedulerImpl::Shutdown() {
67 helper_.Shutdown(); 72 helper_.Shutdown();
73 was_shutdown_ = true;
68 } 74 }
69 75
70 scoped_refptr<base::SingleThreadTaskRunner> 76 scoped_refptr<base::SingleThreadTaskRunner>
71 RendererSchedulerImpl::DefaultTaskRunner() { 77 RendererSchedulerImpl::DefaultTaskRunner() {
72 return helper_.DefaultTaskRunner(); 78 return helper_.DefaultTaskRunner();
73 } 79 }
74 80
75 scoped_refptr<base::SingleThreadTaskRunner> 81 scoped_refptr<base::SingleThreadTaskRunner>
76 RendererSchedulerImpl::CompositorTaskRunner() { 82 RendererSchedulerImpl::CompositorTaskRunner() {
77 helper_.CheckOnValidThread(); 83 helper_.CheckOnValidThread();
(...skipping 555 matching lines...) Expand 10 before | Expand all | Expand 10 after
633 // meaningful touchstart response and should not impact task priority. 639 // meaningful touchstart response and should not impact task priority.
634 return current_state; 640 return current_state;
635 641
636 default: 642 default:
637 break; 643 break;
638 } 644 }
639 return InputStreamState::ACTIVE; 645 return InputStreamState::ACTIVE;
640 } 646 }
641 647
642 } // namespace scheduler 648 } // namespace scheduler
OLDNEW
« no previous file with comments | « components/scheduler/renderer/renderer_scheduler_impl.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698