| Index: third_party/WebKit/Source/platform/scheduler/base/task_queue_manager.cc
|
| diff --git a/third_party/WebKit/Source/platform/scheduler/base/task_queue_manager.cc b/third_party/WebKit/Source/platform/scheduler/base/task_queue_manager.cc
|
| index 0108188aa2d157ad84bed4ada7e10efd657fe5e0..95f5d2d481011c0d9974e54b6850c28307b55eb2 100644
|
| --- a/third_party/WebKit/Source/platform/scheduler/base/task_queue_manager.cc
|
| +++ b/third_party/WebKit/Source/platform/scheduler/base/task_queue_manager.cc
|
| @@ -19,6 +19,8 @@
|
| #include "platform/scheduler/base/work_queue_sets.h"
|
| #include "platform/wtf/PtrUtil.h"
|
|
|
| +static const double kLongTaskTraceEventThreshold = 0.05;
|
| +
|
| namespace blink {
|
| namespace scheduler {
|
|
|
| @@ -535,11 +537,11 @@ TaskQueueManager::ProcessTaskResult TaskQueueManager::ProcessTaskFromWorkQueue(
|
|
|
| currently_executing_task_queue_ = prev_executing_task_queue;
|
|
|
| -
|
| + double task_end_time = 0;
|
| if (queue->GetShouldNotifyObservers()) {
|
| if (task_start_time) {
|
| *time_after_task = real_time_domain()->Now();
|
| - double task_end_time = MonotonicTimeInSeconds(*time_after_task);
|
| + task_end_time = MonotonicTimeInSeconds(*time_after_task);
|
|
|
| queue->OnTaskCompleted(
|
| base::TimeTicks() + base::TimeDelta::FromSecondsD(task_start_time),
|
| @@ -554,6 +556,12 @@ TaskQueueManager::ProcessTaskResult TaskQueueManager::ProcessTaskFromWorkQueue(
|
| queue->NotifyDidProcessTask(pending_task);
|
| }
|
|
|
| + if (task_start_time && task_end_time &&
|
| + task_end_time - task_start_time > kLongTaskTraceEventThreshold) {
|
| + TRACE_EVENT_INSTANT1("blink", "LongTask", TRACE_EVENT_SCOPE_THREAD,
|
| + "duration", task_end_time - task_start_time);
|
| + }
|
| +
|
| return ProcessTaskResult::EXECUTED;
|
| }
|
|
|
|
|