summaryrefslogtreecommitdiffstats
path: root/chromium/base/message_loop/message_loop.cc
diff options
context:
space:
mode:
authorAllan Sandfeld Jensen <allan.jensen@qt.io>2017-03-08 10:28:10 +0100
committerAllan Sandfeld Jensen <allan.jensen@qt.io>2017-03-20 13:40:30 +0000
commite733310db58160074f574c429d48f8308c0afe17 (patch)
treef8aef4b7e62a69928dbcf880620eece20f98c6df /chromium/base/message_loop/message_loop.cc
parent2f583e4aec1ae3a86fa047829c96b310dc12ecdf (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.cc40
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() {