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_);
}