Commit c70cdb31 authored by Hajime Hoshi's avatar Hajime Hoshi Committed by Commit Bot

Make MainThreadSchedulerImpl's *TaskRunner() return TaskQueueWithTaskType

This PR changes these functions to return TaskQueueWithTaskType
- MainThreadSchedulerImpl::DefaultTaskRunner()
- MainThreadSchedulerImpl::InputTaskRunner()
- MainThreadSchedulerImpl::IPCTaskRunner()
- IdleHelper::IdleTaskRunner()

so that we can know the task types posted to these main-thread task
queues, which didin't have any task-type information.

Bug: 841172
Change-Id: I7c463437af1dd5478cbbfd39bdc1626ef2e5c3b3
Reviewed-on: https://chromium-review.googlesource.com/1063670Reviewed-by: default avatarAlexander Timin <altimin@chromium.org>
Reviewed-by: default avatarKentaro Hara <haraken@chromium.org>
Commit-Queue: Hajime Hoshi <hajimehoshi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#559503}
parent 36670a32
......@@ -174,6 +174,10 @@ enum class TaskType : unsigned {
kMainThreadTaskQueueV8 = 37,
kMainThreadTaskQueueCompositor = 38,
kMainThreadTaskQueueDefault = 39,
kMainThreadTaskQueueInput = 40,
kMainThreadTaskQueueIdle = 41,
kMainThreadTaskQueueIPC = 42,
///////////////////////////////////////
// The following task types are DEPRECATED! Use kInternal* instead.
......@@ -183,7 +187,7 @@ enum class TaskType : unsigned {
// should be very limited.
kUnthrottled = 25,
kCount = 39,
kCount = 43,
};
} // namespace blink
......
......@@ -10,6 +10,7 @@
#include "third_party/blink/renderer/platform/scheduler/base/real_time_domain.h"
#include "third_party/blink/renderer/platform/scheduler/base/task_queue.h"
#include "third_party/blink/renderer/platform/scheduler/base/task_queue_manager.h"
#include "third_party/blink/renderer/platform/scheduler/child/task_queue_with_task_type.h"
#include "third_party/blink/renderer/platform/scheduler/common/scheduler_helper.h"
namespace blink {
......@@ -37,8 +38,10 @@ IdleHelper::IdleHelper(
on_idle_task_posted_closure_.Reset(base::BindRepeating(
&IdleHelper::OnIdleTaskPostedOnMainThread, weak_idle_helper_ptr_));
idle_task_runner_ =
base::MakeRefCounted<SingleThreadIdleTaskRunner>(idle_queue_, this);
idle_task_runner_ = base::MakeRefCounted<SingleThreadIdleTaskRunner>(
TaskQueueWithTaskType::Create(idle_queue_,
TaskType::kMainThreadTaskQueueIdle),
this);
// This fence will block any idle tasks from running.
idle_queue_->InsertFence(TaskQueue::InsertFencePosition::kBeginningOfTime);
......
......@@ -81,6 +81,10 @@ scoped_refptr<base::SingleThreadTaskRunner> WorkerScheduler::GetTaskRunner(
return TaskQueueWithTaskType::Create(task_queue_, type);
case TaskType::kMainThreadTaskQueueV8:
case TaskType::kMainThreadTaskQueueCompositor:
case TaskType::kMainThreadTaskQueueDefault:
case TaskType::kMainThreadTaskQueueInput:
case TaskType::kMainThreadTaskQueueIdle:
case TaskType::kMainThreadTaskQueueIPC:
case TaskType::kCount:
NOTREACHED();
break;
......
......@@ -335,6 +335,10 @@ scoped_refptr<base::SingleThreadTaskRunner> FrameSchedulerImpl::GetTaskRunner(
case TaskType::kDeprecatedNone:
case TaskType::kMainThreadTaskQueueV8:
case TaskType::kMainThreadTaskQueueCompositor:
case TaskType::kMainThreadTaskQueueDefault:
case TaskType::kMainThreadTaskQueueInput:
case TaskType::kMainThreadTaskQueueIdle:
case TaskType::kMainThreadTaskQueueIPC:
case TaskType::kCount:
NOTREACHED();
break;
......
......@@ -190,6 +190,14 @@ const char* TaskTypeToString(TaskType task_type) {
return "MainThreadTaskQueueV8";
case TaskType::kMainThreadTaskQueueCompositor:
return "MainThreadTaskQueueCompositor";
case TaskType::kMainThreadTaskQueueDefault:
return "MainThreadTaskQueueDefault";
case TaskType::kMainThreadTaskQueueInput:
return "MainThreadTaskQueueInput";
case TaskType::kMainThreadTaskQueueIdle:
return "MainThreadTaskQueueIdle";
case TaskType::kMainThreadTaskQueueIPC:
return "MainThreadTaskQueueIPC";
case TaskType::kCount:
return "Count";
}
......@@ -649,13 +657,15 @@ std::unique_ptr<blink::WebThread> MainThreadSchedulerImpl::CreateMainThread() {
scoped_refptr<base::SingleThreadTaskRunner>
MainThreadSchedulerImpl::DefaultTaskRunner() {
return helper_.DefaultMainThreadTaskQueue();
return TaskQueueWithTaskType::Create(helper_.DefaultMainThreadTaskQueue(),
TaskType::kMainThreadTaskQueueDefault);
}
scoped_refptr<base::SingleThreadTaskRunner>
MainThreadSchedulerImpl::InputTaskRunner() {
helper_.CheckOnValidThread();
return input_task_queue_;
return TaskQueueWithTaskType::Create(input_task_queue_,
TaskType::kMainThreadTaskQueueInput);
}
scoped_refptr<SingleThreadIdleTaskRunner>
......@@ -665,7 +675,8 @@ MainThreadSchedulerImpl::IdleTaskRunner() {
scoped_refptr<base::SingleThreadTaskRunner>
MainThreadSchedulerImpl::IPCTaskRunner() {
return ipc_task_queue_;
return TaskQueueWithTaskType::Create(ipc_task_queue_,
TaskType::kMainThreadTaskQueueIPC);
}
scoped_refptr<MainThreadTaskQueue> MainThreadSchedulerImpl::DefaultTaskQueue() {
......
......@@ -39098,6 +39098,10 @@ Called by update_net_trust_anchors.py.-->
<int value="36" label="InternalWorker"/>
<int value="37" label="MainThreadTaskQueueV8"/>
<int value="38" label="MainThreadTaskQueueCompositor"/>
<int value="39" label="MainThreadTaskQueueDefault"/>
<int value="40" label="MainThreadTaskQueueInput"/>
<int value="41" label="MainThreadTaskQueueIdle"/>
<int value="42" label="MainThreadTaskQueueIPC"/>
</enum>
<enum name="RendererSchedulerTaskUseCase">
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment