| Index: base/task_scheduler/task_traits.h
|
| diff --git a/base/task_scheduler/task_traits.h b/base/task_scheduler/task_traits.h
|
| index 8b564f44f5a5cdb8477ac9e2f4966d807e1e2204..fb9ac280da32ebb4b2f0fba671bfa7a2401aa84c 100644
|
| --- a/base/task_scheduler/task_traits.h
|
| +++ b/base/task_scheduler/task_traits.h
|
| @@ -5,32 +5,42 @@
|
| #ifndef BASE_TASK_SCHEDULER_TASK_TRAITS_H_
|
| #define BASE_TASK_SCHEDULER_TASK_TRAITS_H_
|
|
|
| +#include <stdint.h>
|
| +
|
| +#include <iosfwd>
|
| +
|
| #include "base/base_export.h"
|
| #include "build/build_config.h"
|
|
|
| namespace base {
|
|
|
| -using TaskPriorityUnderlyingType = char;
|
| -
|
| -// Valid priorities supported by the task scheduler.
|
| -enum class TaskPriority : TaskPriorityUnderlyingType {
|
| - // This task affects UI immediately after a user interaction.
|
| - // Example: Generating data shown in the UI immediately after a click.
|
| - USER_BLOCKING = 2,
|
| +namespace internal {
|
| +using TaskPriorityUnderlyingType = uint8_t;
|
| +} // namespace internal
|
| +
|
| +// Valid priorities supported by the task scheduler. Note: internal algorithms
|
| +// depend on priorities being expressed as a continuous zero-based list from
|
| +// lowest to highest priority. Users of this API shouldn't otherwise care about
|
| +// nor use the underlying values.
|
| +enum class TaskPriority : internal::TaskPriorityUnderlyingType {
|
| + // This will always be equal to the lowest priority available.
|
| + LOWEST = 0,
|
| + // User won't notice if this task takes an arbitrarily long time to complete.
|
| + BACKGROUND = LOWEST,
|
| // This task affects UI or responsiveness of future user interactions. It is
|
| // not an immediate response to a user interaction.
|
| // 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 = 1,
|
| - // Everything else (user won't notice if this takes an arbitrarily long time
|
| - // to complete).
|
| - BACKGROUND = 0,
|
| + USER_VISIBLE,
|
| + // This task affects UI immediately after a user interaction.
|
| + // Example: Generating data shown in the UI immediately after a click.
|
| + USER_BLOCKING,
|
| + // This will always be equal to the highest priority available.
|
| + HIGHEST = USER_BLOCKING,
|
| };
|
|
|
| -const TaskPriorityUnderlyingType kNumTaskPriorities = 3;
|
| -
|
| // Valid shutdown behaviors supported by the task scheduler.
|
| enum class TaskShutdownBehavior {
|
| // Tasks posted with this mode which have not started executing before
|
| @@ -117,6 +127,9 @@ enum class ExecutionMode {
|
| SINGLE_THREADED,
|
| };
|
|
|
| +// Pretty Printer for Google Test.
|
| +void BASE_EXPORT PrintTo(const TaskPriority& task_priority, std::ostream* os);
|
| +
|
| } // namespace base
|
|
|
| #endif // BASE_TASK_SCHEDULER_TASK_TRAITS_H_
|
|
|