| Index: components/scheduler/base/task_queue_manager.cc
|
| diff --git a/components/scheduler/base/task_queue_manager.cc b/components/scheduler/base/task_queue_manager.cc
|
| index ec478db612e58792dba99b166fee5cbf8a633efb..b9df8756bf6a916d067286a2edb7b3866b753b9e 100644
|
| --- a/components/scheduler/base/task_queue_manager.cc
|
| +++ b/components/scheduler/base/task_queue_manager.cc
|
| @@ -21,8 +21,7 @@
|
| const char* tracing_category,
|
| const char* disabled_by_default_tracing_category,
|
| const char* disabled_by_default_verbose_tracing_category)
|
| - : real_time_domain_(new RealTimeDomain()),
|
| - delegate_(delegate),
|
| + : delegate_(delegate),
|
| task_was_run_on_quiescence_monitored_queue_(false),
|
| pending_dowork_count_(0),
|
| work_batch_size_(1),
|
| @@ -45,7 +44,8 @@
|
| base::Bind(&TaskQueueManager::DoWork, weak_factory_.GetWeakPtr(), false);
|
|
|
| // TODO(alexclarke): Change this to be a parameter that's passed in.
|
| - RegisterTimeDomain(real_time_domain_.get());
|
| + real_time_domain_ = make_scoped_refptr(new RealTimeDomain());
|
| + RegisterTimeDomain(real_time_domain_);
|
| }
|
|
|
| TaskQueueManager::~TaskQueueManager() {
|
| @@ -58,13 +58,15 @@
|
| selector_.SetTaskQueueSelectorObserver(nullptr);
|
| }
|
|
|
| -void TaskQueueManager::RegisterTimeDomain(TimeDomain* time_domain) {
|
| +void TaskQueueManager::RegisterTimeDomain(
|
| + const scoped_refptr<TimeDomain>& time_domain) {
|
| time_domains_.insert(time_domain);
|
| time_domain->OnRegisterWithTaskQueueManager(delegate_.get(),
|
| do_work_closure_);
|
| }
|
|
|
| -void TaskQueueManager::UnregisterTimeDomain(TimeDomain* time_domain) {
|
| +void TaskQueueManager::UnregisterTimeDomain(
|
| + const scoped_refptr<TimeDomain>& time_domain) {
|
| time_domains_.erase(time_domain);
|
| }
|
|
|
| @@ -75,7 +77,8 @@
|
| DCHECK(main_thread_checker_.CalledOnValidThread());
|
| TimeDomain* time_domain =
|
| spec.time_domain ? spec.time_domain : real_time_domain_.get();
|
| - DCHECK(time_domains_.find(time_domain) != time_domains_.end());
|
| + DCHECK(time_domains_.find(make_scoped_refptr(time_domain)) !=
|
| + time_domains_.end());
|
| scoped_refptr<internal::TaskQueueImpl> queue(
|
| make_scoped_refptr(new internal::TaskQueueImpl(
|
| this, time_domain, spec, disabled_by_default_tracing_category_,
|
| @@ -112,7 +115,7 @@
|
| TRACE_EVENT0(disabled_by_default_tracing_category_,
|
| "TaskQueueManager::UpdateWorkQueues");
|
|
|
| - for (TimeDomain* time_domain : time_domains_) {
|
| + for (const scoped_refptr<TimeDomain>& time_domain : time_domains_) {
|
| time_domain->UpdateWorkQueues(should_trigger_wakeup, previous_task);
|
| }
|
| }
|
| @@ -186,7 +189,7 @@
|
|
|
| bool TaskQueueManager::TryAdvanceTimeDomains() {
|
| bool can_advance = false;
|
| - for (TimeDomain* time_domain : time_domains_) {
|
| + for (const scoped_refptr<TimeDomain>& time_domain : time_domains_) {
|
| can_advance |= time_domain->MaybeAdvanceTime();
|
| }
|
| return can_advance;
|
|
|