Commit 202aea34 authored by Carlos Caballero's avatar Carlos Caballero Committed by Commit Bot

Make USER_BLOCKING the default priority

We will then selectively downgrade tasks to USER_VISIBLE.

Eventually we want all task priorities to be either inherited or
explicitly set, so no defaults will be used. Roots will need to
explicitly set the priority (most likely USER_BLOCKING) thus that is a
good default for now.

Bug: 863341

Change-Id: I9872976bb944bc78dd43cbb6aff0cb5912043936
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1634702Reviewed-by: default avatarGabriel Charette <gab@chromium.org>
Reviewed-by: default avatarAlexander Timin <altimin@chromium.org>
Commit-Queue: Gabriel Charette <gab@chromium.org>
Cr-Commit-Position: refs/heads/master@{#664726}
parent 50d54017
...@@ -34,7 +34,7 @@ ScopedSetTaskPriorityForCurrentThread:: ...@@ -34,7 +34,7 @@ ScopedSetTaskPriorityForCurrentThread::
TaskPriority GetTaskPriorityForCurrentThread() { TaskPriority GetTaskPriorityForCurrentThread() {
const TaskPriority* priority = const TaskPriority* priority =
tls_task_priority_for_current_thread.Get().Get(); tls_task_priority_for_current_thread.Get().Get();
return priority ? *priority : TaskPriority::USER_VISIBLE; return priority ? *priority : TaskPriority::USER_BLOCKING;
} }
} // namespace internal } // namespace internal
......
...@@ -12,14 +12,13 @@ namespace internal { ...@@ -12,14 +12,13 @@ namespace internal {
TEST(ScopedSetTaskPriorityForCurrentThreadTest, TEST(ScopedSetTaskPriorityForCurrentThreadTest,
ScopedSetTaskPriorityForCurrentThread) { ScopedSetTaskPriorityForCurrentThread) {
EXPECT_EQ(TaskPriority::USER_VISIBLE, GetTaskPriorityForCurrentThread()); EXPECT_EQ(TaskPriority::USER_BLOCKING, GetTaskPriorityForCurrentThread());
{ {
ScopedSetTaskPriorityForCurrentThread ScopedSetTaskPriorityForCurrentThread
scoped_set_task_priority_for_current_thread( scoped_set_task_priority_for_current_thread(TaskPriority::BEST_EFFORT);
TaskPriority::USER_BLOCKING); EXPECT_EQ(TaskPriority::BEST_EFFORT, GetTaskPriorityForCurrentThread());
EXPECT_EQ(TaskPriority::USER_BLOCKING, GetTaskPriorityForCurrentThread());
} }
EXPECT_EQ(TaskPriority::USER_VISIBLE, GetTaskPriorityForCurrentThread()); EXPECT_EQ(TaskPriority::USER_BLOCKING, GetTaskPriorityForCurrentThread());
} }
} // namespace internal } // namespace internal
......
...@@ -195,7 +195,7 @@ class BASE_EXPORT TaskTraits { ...@@ -195,7 +195,7 @@ class BASE_EXPORT TaskTraits {
trait_helpers::AreValidTraits<ValidTrait, ArgTypes...>{}, trait_helpers::AreValidTraits<ValidTrait, ArgTypes...>{},
args...)), args...)),
priority_( priority_(
trait_helpers::GetEnum<TaskPriority, TaskPriority::USER_VISIBLE>( trait_helpers::GetEnum<TaskPriority, TaskPriority::USER_BLOCKING>(
args...)), args...)),
shutdown_behavior_( shutdown_behavior_(
trait_helpers::GetEnum<TaskShutdownBehavior, trait_helpers::GetEnum<TaskShutdownBehavior,
......
...@@ -11,7 +11,7 @@ namespace base { ...@@ -11,7 +11,7 @@ namespace base {
TEST(TaskTraitsTest, Default) { TEST(TaskTraitsTest, Default) {
constexpr TaskTraits traits = {}; constexpr TaskTraits traits = {};
EXPECT_FALSE(traits.priority_set_explicitly()); EXPECT_FALSE(traits.priority_set_explicitly());
EXPECT_EQ(TaskPriority::USER_VISIBLE, traits.priority()); EXPECT_EQ(TaskPriority::USER_BLOCKING, traits.priority());
EXPECT_EQ(TaskShutdownBehavior::SKIP_ON_SHUTDOWN, traits.shutdown_behavior()); EXPECT_EQ(TaskShutdownBehavior::SKIP_ON_SHUTDOWN, traits.shutdown_behavior());
EXPECT_EQ(ThreadPolicy::PREFER_BACKGROUND, traits.thread_policy()); EXPECT_EQ(ThreadPolicy::PREFER_BACKGROUND, traits.thread_policy());
EXPECT_FALSE(traits.may_block()); EXPECT_FALSE(traits.may_block());
...@@ -31,7 +31,7 @@ TEST(TaskTraitsTest, TaskPriority) { ...@@ -31,7 +31,7 @@ TEST(TaskTraitsTest, TaskPriority) {
TEST(TaskTraitsTest, TaskShutdownBehavior) { TEST(TaskTraitsTest, TaskShutdownBehavior) {
constexpr TaskTraits traits = {TaskShutdownBehavior::BLOCK_SHUTDOWN}; constexpr TaskTraits traits = {TaskShutdownBehavior::BLOCK_SHUTDOWN};
EXPECT_FALSE(traits.priority_set_explicitly()); EXPECT_FALSE(traits.priority_set_explicitly());
EXPECT_EQ(TaskPriority::USER_VISIBLE, traits.priority()); EXPECT_EQ(TaskPriority::USER_BLOCKING, traits.priority());
EXPECT_EQ(TaskShutdownBehavior::BLOCK_SHUTDOWN, traits.shutdown_behavior()); EXPECT_EQ(TaskShutdownBehavior::BLOCK_SHUTDOWN, traits.shutdown_behavior());
EXPECT_EQ(ThreadPolicy::PREFER_BACKGROUND, traits.thread_policy()); EXPECT_EQ(ThreadPolicy::PREFER_BACKGROUND, traits.thread_policy());
EXPECT_FALSE(traits.may_block()); EXPECT_FALSE(traits.may_block());
...@@ -41,7 +41,7 @@ TEST(TaskTraitsTest, TaskShutdownBehavior) { ...@@ -41,7 +41,7 @@ TEST(TaskTraitsTest, TaskShutdownBehavior) {
TEST(TaskTraitsTest, ThreadPolicy) { TEST(TaskTraitsTest, ThreadPolicy) {
constexpr TaskTraits traits = {ThreadPolicy::MUST_USE_FOREGROUND}; constexpr TaskTraits traits = {ThreadPolicy::MUST_USE_FOREGROUND};
EXPECT_FALSE(traits.priority_set_explicitly()); EXPECT_FALSE(traits.priority_set_explicitly());
EXPECT_EQ(TaskPriority::USER_VISIBLE, traits.priority()); EXPECT_EQ(TaskPriority::USER_BLOCKING, traits.priority());
EXPECT_EQ(TaskShutdownBehavior::SKIP_ON_SHUTDOWN, traits.shutdown_behavior()); EXPECT_EQ(TaskShutdownBehavior::SKIP_ON_SHUTDOWN, traits.shutdown_behavior());
EXPECT_EQ(ThreadPolicy::MUST_USE_FOREGROUND, traits.thread_policy()); EXPECT_EQ(ThreadPolicy::MUST_USE_FOREGROUND, traits.thread_policy());
EXPECT_FALSE(traits.may_block()); EXPECT_FALSE(traits.may_block());
...@@ -51,7 +51,7 @@ TEST(TaskTraitsTest, ThreadPolicy) { ...@@ -51,7 +51,7 @@ TEST(TaskTraitsTest, ThreadPolicy) {
TEST(TaskTraitsTest, MayBlock) { TEST(TaskTraitsTest, MayBlock) {
constexpr TaskTraits traits = {MayBlock()}; constexpr TaskTraits traits = {MayBlock()};
EXPECT_FALSE(traits.priority_set_explicitly()); EXPECT_FALSE(traits.priority_set_explicitly());
EXPECT_EQ(TaskPriority::USER_VISIBLE, traits.priority()); EXPECT_EQ(TaskPriority::USER_BLOCKING, traits.priority());
EXPECT_EQ(TaskShutdownBehavior::SKIP_ON_SHUTDOWN, traits.shutdown_behavior()); EXPECT_EQ(TaskShutdownBehavior::SKIP_ON_SHUTDOWN, traits.shutdown_behavior());
EXPECT_EQ(ThreadPolicy::PREFER_BACKGROUND, traits.thread_policy()); EXPECT_EQ(ThreadPolicy::PREFER_BACKGROUND, traits.thread_policy());
EXPECT_TRUE(traits.may_block()); EXPECT_TRUE(traits.may_block());
...@@ -61,7 +61,7 @@ TEST(TaskTraitsTest, MayBlock) { ...@@ -61,7 +61,7 @@ TEST(TaskTraitsTest, MayBlock) {
TEST(TaskTraitsTest, WithBaseSyncPrimitives) { TEST(TaskTraitsTest, WithBaseSyncPrimitives) {
constexpr TaskTraits traits = {WithBaseSyncPrimitives()}; constexpr TaskTraits traits = {WithBaseSyncPrimitives()};
EXPECT_FALSE(traits.priority_set_explicitly()); EXPECT_FALSE(traits.priority_set_explicitly());
EXPECT_EQ(TaskPriority::USER_VISIBLE, traits.priority()); EXPECT_EQ(TaskPriority::USER_BLOCKING, traits.priority());
EXPECT_EQ(TaskShutdownBehavior::SKIP_ON_SHUTDOWN, traits.shutdown_behavior()); EXPECT_EQ(TaskShutdownBehavior::SKIP_ON_SHUTDOWN, traits.shutdown_behavior());
EXPECT_EQ(ThreadPolicy::PREFER_BACKGROUND, traits.thread_policy()); EXPECT_EQ(ThreadPolicy::PREFER_BACKGROUND, traits.thread_policy());
EXPECT_FALSE(traits.may_block()); EXPECT_FALSE(traits.may_block());
......
...@@ -118,11 +118,13 @@ class BrowserTaskTraitsMappingTest : public BrowserTaskExecutorTest { ...@@ -118,11 +118,13 @@ class BrowserTaskTraitsMappingTest : public BrowserTaskExecutorTest {
EXPECT_EQ(GetQueueType({ID, BrowserTaskType::kBootstrap}), EXPECT_EQ(GetQueueType({ID, BrowserTaskType::kBootstrap}),
QueueType::kBootstrap); QueueType::kBootstrap);
EXPECT_EQ(GetQueueType({ID, BrowserTaskType::kDefault}), EXPECT_EQ(GetQueueType({ID, BrowserTaskType::kDefault}),
QueueType::kDefault); QueueType::kUserBlocking);
EXPECT_EQ(GetQueueType({ID, BrowserTaskType::kNavigation}), EXPECT_EQ(GetQueueType({ID, BrowserTaskType::kNavigation}),
QueueType::kNavigationAndPreconnection); QueueType::kNavigationAndPreconnection);
EXPECT_EQ(GetQueueType({ID, BrowserTaskType::kPreconnect}), EXPECT_EQ(GetQueueType({ID, BrowserTaskType::kPreconnect}),
QueueType::kNavigationAndPreconnection); QueueType::kNavigationAndPreconnection);
EXPECT_EQ(GetQueueType({ID}), QueueType::kUserBlocking);
} }
private: private:
......
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