Index: base/message_loop/message_loop.cc |
diff --git a/base/message_loop/message_loop.cc b/base/message_loop/message_loop.cc |
index 701594a122c7562b675680188a24949f99a46e6f..cf0b31cad48b8d3c1fb8fd9387b4dc476f9a2c58 100644 |
--- a/base/message_loop/message_loop.cc |
+++ b/base/message_loop/message_loop.cc |
@@ -660,6 +660,20 @@ bool MessageLoop::DoIdleWork() { |
return false; |
} |
+void MessageLoop::GetQueueingInformation(size_t* queue_size, |
+ TimeDelta* queueing_delay) { |
+ *queue_size = work_queue_.size(); |
+ if (*queue_size == 0) { |
+ *queueing_delay = TimeDelta(); |
+ return; |
+ } |
+ |
+ const PendingTask& next_to_run = work_queue_.front(); |
+ tracked_objects::Duration duration = |
+ tracked_objects::TrackedTime::Now() - next_to_run.EffectiveTimePosted(); |
+ *queueing_delay = TimeDelta::FromMilliseconds(duration.InMilliseconds()); |
+} |
+ |
void MessageLoop::DeleteSoonInternal(const tracked_objects::Location& from_here, |
void(*deleter)(const void*), |
const void* object) { |