// Copyright 2012 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef NET_BASE_REQUEST_PRIORITY_H_ #define NET_BASE_REQUEST_PRIORITY_H_ #include "net/base/net_export.h" namespace net { // Prioritization used in various parts of the networking code such // as connection prioritization and resource loading prioritization. // A Java counterpart will be generated for this enum. // GENERATED_JAVA_ENUM_PACKAGE: org.chromium.net // GENERATED_JAVA_CLASS_NAME_OVERRIDE: RequestPriority // // This enum should be synchronized with the enum NetRequestPriority in // tools/metrics/histograms/enums.xml. enum RequestPriority { THROTTLED = 0, // Used to signal that resources // should be reserved for following // requests (i.e. that higher priority // following requests are expected). MINIMUM_PRIORITY = THROTTLED, IDLE = 1, // Default "as resources available" level. LOWEST = 2, DEFAULT_PRIORITY = LOWEST, LOW = 3, MEDIUM = 4, HIGHEST = 5, MAXIMUM_PRIORITY = HIGHEST, }; // For simplicity, one can assume that one can index into array of // NUM_PRIORITIES elements with a RequestPriority (i.e., // MINIMUM_PRIORITY == 0). enum RequestPrioritySize { NUM_PRIORITIES = MAXIMUM_PRIORITY + 1, }; // Default value to use for the incremental loading flag as part of HTTP // extensible priorities (RFC 9218). Currently used for HTTP/3. // // This default is the value that works best in most cases that the networking // code supports (simultaneous requests are loaded concurrently and don't block // one another). // // This is independent from the spec default for the protocol, which is false. const bool kDefaultPriorityIncremental = true; NET_EXPORT const char* RequestPriorityToString(RequestPriority priority); } // namespace net #endif // NET_BASE_REQUEST_PRIORITY_H_