| // Copyright 2023 The Chromium Authors | 
 | // Use of this source code is governed by a BSD-style license that can be | 
 | // found in the LICENSE file. | 
 |  | 
 | #ifndef BASE_ANDROID_TASK_SCHEDULER_TASK_TRAITS_ANDROID_H_ | 
 | #define BASE_ANDROID_TASK_SCHEDULER_TASK_TRAITS_ANDROID_H_ | 
 |  | 
 | // Enum for the TaskTraits types exposed to Java. | 
 | // | 
 | // A Java counterpart will be generated for this enum. | 
 | // GENERATED_JAVA_ENUM_PACKAGE: org.chromium.base.task | 
 | enum TaskTraits { | 
 |   THREAD_POOL_TRAITS_START = 0, | 
 |   // This task will only be scheduled when machine resources are available. Once | 
 |   // running, it may be descheduled if higher priority work arrives (in this | 
 |   // process or another) and its running on a non-critical thread. This is the | 
 |   // lowest possible priority. | 
 |   BEST_EFFORT = THREAD_POOL_TRAITS_START, | 
 |   // This is a lowest-priority task which may block, for example non-urgent | 
 |   // logging or deletion of temporary files as clean-up. | 
 |   BEST_EFFORT_MAY_BLOCK = THREAD_POOL_TRAITS_START + 1, | 
 |   // This task affects UI or responsiveness of future user interactions. It is | 
 |   // not an immediate response to a user interaction. Most tasks are likely to | 
 |   // have this priority. | 
 |   // Examples: | 
 |   // - Updating the UI to reflect progress on a long task. | 
 |   // - Loading data that might be shown in the UI after a future user | 
 |   //   interaction. | 
 |   USER_VISIBLE = THREAD_POOL_TRAITS_START + 2, | 
 |   // USER_VISIBLE + may block. | 
 |   USER_VISIBLE_MAY_BLOCK = THREAD_POOL_TRAITS_START + 3, | 
 |   // This task affects UI immediately after a user interaction. | 
 |   // Example: Generating data shown in the UI immediately after a click. | 
 |   USER_BLOCKING = THREAD_POOL_TRAITS_START + 4, | 
 |   // USER_BLOCKING + may block. | 
 |   USER_BLOCKING_MAY_BLOCK = THREAD_POOL_TRAITS_START + 5, | 
 |   THREAD_POOL_TRAITS_END = USER_BLOCKING_MAY_BLOCK, | 
 |   UI_TRAITS_START = THREAD_POOL_TRAITS_END + 1, | 
 |   UI_BEST_EFFORT = UI_TRAITS_START, | 
 |   UI_USER_VISIBLE = UI_TRAITS_START + 1, | 
 |   UI_USER_BLOCKING = UI_TRAITS_START + 2, | 
 |   UI_DEFAULT = UI_USER_VISIBLE, | 
 |   // Tasks that are critical for an embedder's startup performance. While other | 
 |   // tasks may also run during the startup phase, this queue allows an embedder | 
 |   // to apply certain constraints on other task queues until these critical | 
 |   // startup tasks are finished. | 
 |   UI_STARTUP = UI_TRAITS_START + 3, | 
 |   UI_TRAITS_END = UI_STARTUP | 
 | }; | 
 |  | 
 | #endif  // BASE_ANDROID_TASK_SCHEDULER_TASK_TRAITS_ANDROID_H_ |