| Index: base/message_loop/message_loop.cc
|
| diff --git a/base/message_loop/message_loop.cc b/base/message_loop/message_loop.cc
|
| index 01e7512b19f09ce6d611c6b2db18161e55437dbf..f189637b2223b383c34bb0e4f17453dc9249aff4 100644
|
| --- a/base/message_loop/message_loop.cc
|
| +++ b/base/message_loop/message_loop.cc
|
| @@ -121,6 +121,8 @@ MessageLoop::TaskObserver::~TaskObserver() {
|
| MessageLoop::DestructionObserver::~DestructionObserver() {
|
| }
|
|
|
| +MessageLoop::NestingObserver::~NestingObserver() {}
|
| +
|
| //------------------------------------------------------------------------------
|
|
|
| MessageLoop::MessageLoop(Type type)
|
| @@ -263,6 +265,16 @@ void MessageLoop::RemoveDestructionObserver(
|
| destruction_observers_.RemoveObserver(destruction_observer);
|
| }
|
|
|
| +void MessageLoop::AddNestingObserver(NestingObserver* observer) {
|
| + DCHECK_EQ(this, current());
|
| + nesting_observers_.AddObserver(observer);
|
| +}
|
| +
|
| +void MessageLoop::RemoveNestingObserver(NestingObserver* observer) {
|
| + DCHECK_EQ(this, current());
|
| + nesting_observers_.RemoveObserver(observer);
|
| +}
|
| +
|
| void MessageLoop::PostTask(
|
| const tracked_objects::Location& from_here,
|
| const Closure& task) {
|
| @@ -576,6 +588,11 @@ void MessageLoop::HistogramEvent(int event) {
|
| #endif
|
| }
|
|
|
| +void MessageLoop::NotifyBeginNestedLoop() {
|
| + FOR_EACH_OBSERVER(NestingObserver, nesting_observers_,
|
| + OnBeginNestedMessageLoop());
|
| +}
|
| +
|
| bool MessageLoop::DoWork() {
|
| if (!nestable_tasks_allowed_) {
|
| // Task can't be executed right now.
|
|
|