MessageLoop's RUN method will pass a const ref to PendingTask when
TaskObserver's WillProcessTask and DidProcessTask methods are called.

User's of TaskObserver get time_posted by accessing pending_task.time_posted.

User's of TaskObserver get time_posted by accessing pending_task.time_posted.
(would like to use this with SpdySession testing to verify a task is posted
or not).

R=jar@chromium.org, darin@chromium.org
TESTS= all unit tests

Review URL: https://chromiumcodereview.appspot.com/12161002

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@180302 0039d316-1c4b-4281-b951-d872f2087c98


CrOS-Libchrome-Original-Commit: 1d88aea97c70078531760e3063908082b137faa8
diff --git a/base/message_loop.cc b/base/message_loop.cc
index 0a6bf6c..33f2a5b 100644
--- a/base/message_loop.cc
+++ b/base/message_loop.cc
@@ -472,10 +472,10 @@
       tracked_objects::ThreadData::NowForStartOfRun(pending_task.birth_tally);
 
   FOR_EACH_OBSERVER(TaskObserver, task_observers_,
-                    WillProcessTask(pending_task.time_posted));
+                    WillProcessTask(pending_task));
   pending_task.task.Run();
   FOR_EACH_OBSERVER(TaskObserver, task_observers_,
-                    DidProcessTask(pending_task.time_posted));
+                    DidProcessTask(pending_task));
 
   tracked_objects::ThreadData::TallyRunOnNamedThreadIfTracking(pending_task,
       start_time, tracked_objects::ThreadData::NowForEndOfRun());
diff --git a/base/message_loop.h b/base/message_loop.h
index b690940..13bf621 100644
--- a/base/message_loop.h
+++ b/base/message_loop.h
@@ -339,10 +339,10 @@
     TaskObserver();
 
     // This method is called before processing a task.
-    virtual void WillProcessTask(base::TimeTicks time_posted) = 0;
+    virtual void WillProcessTask(const base::PendingTask& pending_task) = 0;
 
     // This method is called after processing a task.
-    virtual void DidProcessTask(base::TimeTicks time_posted) = 0;
+    virtual void DidProcessTask(const base::PendingTask& pending_task) = 0;
 
    protected:
     virtual ~TaskObserver();
diff --git a/base/message_loop_unittest.cc b/base/message_loop_unittest.cc
index 7fe2490..5fcfeb2 100644
--- a/base/message_loop_unittest.cc
+++ b/base/message_loop_unittest.cc
@@ -10,6 +10,7 @@
 #include "base/logging.h"
 #include "base/memory/ref_counted.h"
 #include "base/message_loop.h"
+#include "base/pending_task.h"
 #include "base/posix/eintr_wrapper.h"
 #include "base/run_loop.h"
 #include "base/thread_task_runner_handle.h"
@@ -1800,16 +1801,16 @@
 
   virtual ~DummyTaskObserver() {}
 
-  virtual void WillProcessTask(TimeTicks time_posted) OVERRIDE {
+  virtual void WillProcessTask(const base::PendingTask& pending_task) OVERRIDE {
     num_tasks_started_++;
-    EXPECT_TRUE(time_posted != TimeTicks());
+    EXPECT_TRUE(pending_task.time_posted != TimeTicks());
     EXPECT_LE(num_tasks_started_, num_tasks_);
     EXPECT_EQ(num_tasks_started_, num_tasks_processed_ + 1);
   }
 
-  virtual void DidProcessTask(TimeTicks time_posted) OVERRIDE {
+  virtual void DidProcessTask(const base::PendingTask& pending_task) OVERRIDE {
     num_tasks_processed_++;
-    EXPECT_TRUE(time_posted != TimeTicks());
+    EXPECT_TRUE(pending_task.time_posted != TimeTicks());
     EXPECT_LE(num_tasks_started_, num_tasks_);
     EXPECT_EQ(num_tasks_started_, num_tasks_processed_);
   }