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. |