Commit 7bd9ce15 authored by Nate Chapin's avatar Nate Chapin Committed by Commit Bot

Move conversions between WebSchedulingPriority and AtomicString out of TaskQueue

Put these conversions in web_scheduling_priority.{cc,h}, next to the definition
of the WebSchedulingPriority enum

Change-Id: I329c581566b24029226524c1e1c8043b123d5589
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1785477Reviewed-by: default avatarScott Haseley <shaseley@chromium.org>
Commit-Queue: Nate Chapin <japhet@chromium.org>
Cr-Commit-Position: refs/heads/master@{#694352}
parent 18bdf8a0
...@@ -68,7 +68,7 @@ void Scheduler::OnTaskCompleted(TaskQueue* task_queue, Task*) { ...@@ -68,7 +68,7 @@ void Scheduler::OnTaskCompleted(TaskQueue* task_queue, Task*) {
} }
TaskQueue* Scheduler::getTaskQueue(AtomicString priority) { TaskQueue* Scheduler::getTaskQueue(AtomicString priority) {
return GetTaskQueue(TaskQueue::WebSchedulingPriorityFromString(priority)); return GetTaskQueue(WebSchedulingPriorityFromString(priority));
} }
TaskQueue* Scheduler::GetTaskQueue(WebSchedulingPriority priority) { TaskQueue* Scheduler::GetTaskQueue(WebSchedulingPriority priority) {
......
...@@ -24,35 +24,6 @@ ...@@ -24,35 +24,6 @@
namespace blink { namespace blink {
namespace {
const AtomicString& ImmediatePriorityKeyword() {
DEFINE_STATIC_LOCAL(const AtomicString, immediate_priority, ("immediate"));
return immediate_priority;
}
const AtomicString& HighPriorityKeyword() {
DEFINE_STATIC_LOCAL(const AtomicString, high_priority, ("high"));
return high_priority;
}
const AtomicString& DefaultPriorityKeyword() {
DEFINE_STATIC_LOCAL(const AtomicString, default_priority, ("default"));
return default_priority;
}
const AtomicString& LowPriorityKeyword() {
DEFINE_STATIC_LOCAL(const AtomicString, low_priority, ("low"));
return low_priority;
}
const AtomicString& IdlePriorityKeyword() {
DEFINE_STATIC_LOCAL(const AtomicString, idle_priority, ("idle"));
return idle_priority;
}
} // namespace
TaskQueue::TaskQueue(Document* document, TaskQueue::TaskQueue(Document* document,
WebSchedulingPriority priority, WebSchedulingPriority priority,
Scheduler* scheduler) Scheduler* scheduler)
...@@ -109,42 +80,4 @@ void TaskQueue::take(Task* task) { ...@@ -109,42 +80,4 @@ void TaskQueue::take(Task* task) {
task->MoveTo(this); task->MoveTo(this);
} }
// static
AtomicString TaskQueue::WebSchedulingPriorityToString(
WebSchedulingPriority priority) {
switch (priority) {
case WebSchedulingPriority::kImmediatePriority:
return ImmediatePriorityKeyword();
case WebSchedulingPriority::kHighPriority:
return HighPriorityKeyword();
case WebSchedulingPriority::kDefaultPriority:
return DefaultPriorityKeyword();
case WebSchedulingPriority::kLowPriority:
return LowPriorityKeyword();
case WebSchedulingPriority::kIdlePriority:
return IdlePriorityKeyword();
}
NOTREACHED();
return g_empty_atom;
}
// static
WebSchedulingPriority TaskQueue::WebSchedulingPriorityFromString(
AtomicString priority) {
if (priority == ImmediatePriorityKeyword())
return WebSchedulingPriority::kImmediatePriority;
if (priority == HighPriorityKeyword())
return WebSchedulingPriority::kHighPriority;
if (priority == DefaultPriorityKeyword())
return WebSchedulingPriority::kDefaultPriority;
if (priority == LowPriorityKeyword())
return WebSchedulingPriority::kLowPriority;
if (priority == IdlePriorityKeyword())
return WebSchedulingPriority::kIdlePriority;
NOTREACHED();
return WebSchedulingPriority::kDefaultPriority;
}
} // namespace blink } // namespace blink
...@@ -65,9 +65,6 @@ class MODULES_EXPORT TaskQueue : public ScriptWrappable, ...@@ -65,9 +65,6 @@ class MODULES_EXPORT TaskQueue : public ScriptWrappable,
void Trace(Visitor*) override; void Trace(Visitor*) override;
static AtomicString WebSchedulingPriorityToString(WebSchedulingPriority);
static WebSchedulingPriority WebSchedulingPriorityFromString(AtomicString);
private: private:
void RunTaskCallback(Task*); void RunTaskCallback(Task*);
void ScheduleTask(Task*, base::TimeDelta delay); void ScheduleTask(Task*, base::TimeDelta delay);
......
...@@ -108,6 +108,7 @@ blink_platform_sources("scheduler") { ...@@ -108,6 +108,7 @@ blink_platform_sources("scheduler") {
"main_thread/user_model.cc", "main_thread/user_model.cc",
"main_thread/user_model.h", "main_thread/user_model.h",
"main_thread/web_render_widget_scheduling_state.cc", "main_thread/web_render_widget_scheduling_state.cc",
"main_thread/web_scheduling_priority.cc",
"main_thread/web_scheduling_task_queue_impl.cc", "main_thread/web_scheduling_task_queue_impl.cc",
"main_thread/web_scheduling_task_queue_impl.h", "main_thread/web_scheduling_task_queue_impl.h",
"main_thread/web_scoped_virtual_time_pauser.cc", "main_thread/web_scoped_virtual_time_pauser.cc",
......
// Copyright 2019 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "third_party/blink/renderer/platform/scheduler/public/web_scheduling_priority.h"
namespace blink {
namespace {
const AtomicString& ImmediatePriorityKeyword() {
DEFINE_STATIC_LOCAL(const AtomicString, immediate_priority, ("immediate"));
return immediate_priority;
}
const AtomicString& HighPriorityKeyword() {
DEFINE_STATIC_LOCAL(const AtomicString, high_priority, ("high"));
return high_priority;
}
const AtomicString& DefaultPriorityKeyword() {
DEFINE_STATIC_LOCAL(const AtomicString, default_priority, ("default"));
return default_priority;
}
const AtomicString& LowPriorityKeyword() {
DEFINE_STATIC_LOCAL(const AtomicString, low_priority, ("low"));
return low_priority;
}
const AtomicString& IdlePriorityKeyword() {
DEFINE_STATIC_LOCAL(const AtomicString, idle_priority, ("idle"));
return idle_priority;
}
} // namespace
AtomicString WebSchedulingPriorityToString(WebSchedulingPriority priority) {
switch (priority) {
case WebSchedulingPriority::kImmediatePriority:
return ImmediatePriorityKeyword();
case WebSchedulingPriority::kHighPriority:
return HighPriorityKeyword();
case WebSchedulingPriority::kDefaultPriority:
return DefaultPriorityKeyword();
case WebSchedulingPriority::kLowPriority:
return LowPriorityKeyword();
case WebSchedulingPriority::kIdlePriority:
return IdlePriorityKeyword();
}
NOTREACHED();
return g_empty_atom;
}
WebSchedulingPriority WebSchedulingPriorityFromString(
const AtomicString& priority) {
if (priority == ImmediatePriorityKeyword())
return WebSchedulingPriority::kImmediatePriority;
if (priority == HighPriorityKeyword())
return WebSchedulingPriority::kHighPriority;
if (priority == DefaultPriorityKeyword())
return WebSchedulingPriority::kDefaultPriority;
if (priority == LowPriorityKeyword())
return WebSchedulingPriority::kLowPriority;
if (priority == IdlePriorityKeyword())
return WebSchedulingPriority::kIdlePriority;
NOTREACHED();
return WebSchedulingPriority::kDefaultPriority;
}
} // namespace blink
...@@ -5,6 +5,9 @@ ...@@ -5,6 +5,9 @@
#ifndef THIRD_PARTY_BLINK_RENDERER_PLATFORM_SCHEDULER_PUBLIC_WEB_SCHEDULING_PRIORITY_H_ #ifndef THIRD_PARTY_BLINK_RENDERER_PLATFORM_SCHEDULER_PUBLIC_WEB_SCHEDULING_PRIORITY_H_
#define THIRD_PARTY_BLINK_RENDERER_PLATFORM_SCHEDULER_PUBLIC_WEB_SCHEDULING_PRIORITY_H_ #define THIRD_PARTY_BLINK_RENDERER_PLATFORM_SCHEDULER_PUBLIC_WEB_SCHEDULING_PRIORITY_H_
#include "third_party/blink/renderer/platform/platform_export.h"
#include "third_party/blink/renderer/platform/wtf/text/atomic_string.h"
namespace blink { namespace blink {
// Priorities for the experimental scheduling API (see // Priorities for the experimental scheduling API (see
...@@ -19,6 +22,11 @@ enum class WebSchedulingPriority { ...@@ -19,6 +22,11 @@ enum class WebSchedulingPriority {
kLastPriority = kIdlePriority kLastPriority = kIdlePriority
}; };
PLATFORM_EXPORT AtomicString
WebSchedulingPriorityToString(WebSchedulingPriority);
PLATFORM_EXPORT WebSchedulingPriority
WebSchedulingPriorityFromString(const AtomicString&);
} // namespace blink } // namespace blink
#endif // THIRD_PARTY_BLINK_RENDERER_PLATFORM_SCHEDULER_PUBLIC_WEB_SCHEDULING_PRIORITY_H_ #endif // THIRD_PARTY_BLINK_RENDERER_PLATFORM_SCHEDULER_PUBLIC_WEB_SCHEDULING_PRIORITY_H_
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