libchromeos: Add Location to MessageLoop interface.

This patch adds an optional first parameter Location to PostTask()
and PostDelayedTask() to help track where the callbacks are being
scheduled from when running with DEBUG enabled.

This patch also logs these locations from the GlibMessageLoop when
verbose logging >= 1 is enabled and libchromeos is compiled with debug,
and logs from FakeMessageLoop when verbose logging >= 1 is enabled
regardless of libchromeos being compiled with debug since
FakeMessageLoop is only used from unittest code.

BUG=brillo:91
TEST=Ran unittests with '--gtest_filter=*MessageLoop*' --v=1; log messages are displayed.

Change-Id: I7e28c575f6f9103e7ed1aa90590cc09389134245
Reviewed-on: https://chromium-review.googlesource.com/280567
Tested-by: Alex Deymo <deymo@chromium.org>
Reviewed-by: Alex Vakulenko <avakulenko@chromium.org>
Reviewed-by: Christopher Wiley <wiley@chromium.org>
Commit-Queue: Alex Deymo <deymo@chromium.org>
diff --git a/chromeos/message_loops/fake_message_loop.h b/chromeos/message_loops/fake_message_loop.h
index 143fe2a..e2e199c 100644
--- a/chromeos/message_loops/fake_message_loop.h
+++ b/chromeos/message_loops/fake_message_loop.h
@@ -11,6 +11,7 @@
 #include <utility>
 #include <vector>
 
+#include <base/location.h>
 #include <base/test/simple_test_clock.h>
 #include <base/time/time.h>
 
@@ -34,8 +35,11 @@
   explicit FakeMessageLoop(base::SimpleTestClock* clock);
   ~FakeMessageLoop() override = default;
 
-  MessageLoop::TaskId PostDelayedTask(const base::Closure &task,
-                                      base::TimeDelta delay) override;
+  MessageLoop::TaskId PostDelayedTask(
+      const tracked_objects::Location& from_here,
+      const base::Closure &task,
+      base::TimeDelta delay) override;
+  using MessageLoop::PostDelayedTask;
   bool CancelTask(TaskId task_id) override;
   bool RunOnce(bool may_block) override;
 
@@ -53,7 +57,8 @@
       std::pair<base::Time, MessageLoop::TaskId>,
       std::vector<std::pair<base::Time, MessageLoop::TaskId>>,
       std::greater<std::pair<base::Time, MessageLoop::TaskId>>> fire_order_;
-  std::map<MessageLoop::TaskId, base::Closure> tasks_;
+  std::map<MessageLoop::TaskId,
+           std::pair<tracked_objects::Location, base::Closure>> tasks_;
 
   base::SimpleTestClock* test_clock_ = nullptr;
   base::Time current_time_ = base::Time::FromDoubleT(1246996800.);