Extract trace from TaskAnnotator::RunTask to its call sites
This extracts TRACE_EVENT() that brackets the task being executed
from TaskAnnotator::RunTask() to its call sites, so that it covers
time spent in the task observers on the top level (i.e. in MessageLoop).
BUG=508005
TBR=chirantan
Review URL: https://codereview.chromium.org/1237283006
Cr-Commit-Position: refs/heads/master@{#339091}
CrOS-Libchrome-Original-Commit: 596ad0cca35be6b20afba297d3e8c26ae52e3ec2
diff --git a/base/message_loop/message_loop.cc b/base/message_loop/message_loop.cc
index d4f9c54..6bd6730 100644
--- a/base/message_loop/message_loop.cc
+++ b/base/message_loop/message_loop.cc
@@ -19,6 +19,7 @@
#include "base/thread_task_runner_handle.h"
#include "base/threading/thread_local.h"
#include "base/time/time.h"
+#include "base/trace_event/trace_event.h"
#include "base/tracked_objects.h"
#if defined(OS_MACOSX)
@@ -473,10 +474,11 @@
HistogramEvent(kTaskRunEvent);
+ TRACE_TASK_EXECUTION("toplevel", pending_task);
+
FOR_EACH_OBSERVER(TaskObserver, task_observers_,
WillProcessTask(pending_task));
- task_annotator_.RunTask(
- "MessageLoop::PostTask", "MessageLoop::RunTask", pending_task);
+ task_annotator_.RunTask("MessageLoop::PostTask", pending_task);
FOR_EACH_OBSERVER(TaskObserver, task_observers_,
DidProcessTask(pending_task));