diff options
author | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2017-03-08 10:28:10 +0100 |
---|---|---|
committer | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2017-03-20 13:40:30 +0000 |
commit | e733310db58160074f574c429d48f8308c0afe17 (patch) | |
tree | f8aef4b7e62a69928dbcf880620eece20f98c6df /chromium/base/message_loop/message_loop.cc | |
parent | 2f583e4aec1ae3a86fa047829c96b310dc12ecdf (diff) |
BASELINE: Update Chromium to 56.0.2924.122
Change-Id: I4e04de8f47e47e501c46ed934c76a431c6337ced
Reviewed-by: Michael BrĂ¼ning <michael.bruning@qt.io>
Diffstat (limited to 'chromium/base/message_loop/message_loop.cc')
-rw-r--r-- | chromium/base/message_loop/message_loop.cc | 40 |
1 files changed, 21 insertions, 19 deletions
diff --git a/chromium/base/message_loop/message_loop.cc b/chromium/base/message_loop/message_loop.cc index 74287b148e6..1581f6cfb4b 100644 --- a/chromium/base/message_loop/message_loop.cc +++ b/chromium/base/message_loop/message_loop.cc @@ -124,8 +124,8 @@ MessageLoop::~MessageLoop() { DCHECK(!did_work); // Let interested parties have one last shot at accessing this. - FOR_EACH_OBSERVER(DestructionObserver, destruction_observers_, - WillDestroyCurrentMessageLoop()); + for (auto& observer : destruction_observers_) + observer.WillDestroyCurrentMessageLoop(); thread_task_runner_handle_.reset(); @@ -216,11 +216,13 @@ void MessageLoop::RemoveDestructionObserver( void MessageLoop::AddNestingObserver(NestingObserver* observer) { DCHECK_EQ(this, current()); + CHECK(allow_nesting_); nesting_observers_.AddObserver(observer); } void MessageLoop::RemoveNestingObserver(NestingObserver* observer) { DCHECK_EQ(this, current()); + CHECK(allow_nesting_); nesting_observers_.RemoveObserver(observer); } @@ -257,6 +259,8 @@ Closure MessageLoop::QuitWhenIdleClosure() { void MessageLoop::SetNestableTasksAllowed(bool allowed) { if (allowed) { + CHECK(allow_nesting_); + // Kick the native pump just in case we enter a OS-driven nested message // loop. pump_->ScheduleWork(); @@ -274,11 +278,13 @@ bool MessageLoop::IsNested() { void MessageLoop::AddTaskObserver(TaskObserver* task_observer) { DCHECK_EQ(this, current()); + CHECK(allow_task_observers_); task_observers_.AddObserver(task_observer); } void MessageLoop::RemoveTaskObserver(TaskObserver* task_observer) { DCHECK_EQ(this, current()); + CHECK(allow_task_observers_); task_observers_.RemoveObserver(task_observer); } @@ -367,6 +373,8 @@ void MessageLoop::SetThreadTaskRunnerHandle() { void MessageLoop::RunHandler() { DCHECK_EQ(this, current()); + DCHECK(run_loop_); + CHECK(allow_nesting_ || run_loop_->run_depth_ == 1); pump_->Run(this); } @@ -381,15 +389,15 @@ bool MessageLoop::ProcessNextDelayedNonNestableTask() { std::move(deferred_non_nestable_work_queue_.front()); deferred_non_nestable_work_queue_.pop(); - RunTask(pending_task); + RunTask(&pending_task); return true; } -void MessageLoop::RunTask(const PendingTask& pending_task) { +void MessageLoop::RunTask(PendingTask* pending_task) { DCHECK(nestable_tasks_allowed_); #if defined(OS_WIN) - if (pending_task.is_high_res) { + if (pending_task->is_high_res) { pending_high_res_tasks_--; CHECK_GE(pending_high_res_tasks_, 0); } @@ -398,20 +406,20 @@ void MessageLoop::RunTask(const PendingTask& pending_task) { // Execute the task and assume the worst: It is probably not reentrant. nestable_tasks_allowed_ = false; - TRACE_TASK_EXECUTION("MessageLoop::RunTask", pending_task); + TRACE_TASK_EXECUTION("MessageLoop::RunTask", *pending_task); - FOR_EACH_OBSERVER(TaskObserver, task_observers_, - WillProcessTask(pending_task)); + for (auto& observer : task_observers_) + observer.WillProcessTask(*pending_task); task_annotator_.RunTask("MessageLoop::PostTask", pending_task); - FOR_EACH_OBSERVER(TaskObserver, task_observers_, - DidProcessTask(pending_task)); + for (auto& observer : task_observers_) + observer.DidProcessTask(*pending_task); nestable_tasks_allowed_ = true; } bool MessageLoop::DeferOrRunPendingTask(PendingTask pending_task) { if (pending_task.nestable || run_loop_->run_depth_ == 1) { - RunTask(pending_task); + RunTask(&pending_task); // Show that we ran a task (Note: a new one might arrive as a // consequence!). return true; @@ -476,15 +484,9 @@ void MessageLoop::ScheduleWork() { pump_->ScheduleWork(); } -#if defined(OS_WIN) -bool MessageLoop::MessagePumpWasSignaled() { - return pump_->WasSignaled(); -} -#endif - void MessageLoop::NotifyBeginNestedLoop() { - FOR_EACH_OBSERVER(NestingObserver, nesting_observers_, - OnBeginNestedMessageLoop()); + for (auto& observer : nesting_observers_) + observer.OnBeginNestedMessageLoop(); } bool MessageLoop::DoWork() { |