1*6777b538SAndroid Build Coastguard Worker // Copyright 2012 The Chromium Authors 2*6777b538SAndroid Build Coastguard Worker // Use of this source code is governed by a BSD-style license that can be 3*6777b538SAndroid Build Coastguard Worker // found in the LICENSE file. 4*6777b538SAndroid Build Coastguard Worker 5*6777b538SAndroid Build Coastguard Worker #ifndef NET_BASE_REQUEST_PRIORITY_H_ 6*6777b538SAndroid Build Coastguard Worker #define NET_BASE_REQUEST_PRIORITY_H_ 7*6777b538SAndroid Build Coastguard Worker 8*6777b538SAndroid Build Coastguard Worker #include "net/base/net_export.h" 9*6777b538SAndroid Build Coastguard Worker 10*6777b538SAndroid Build Coastguard Worker namespace net { 11*6777b538SAndroid Build Coastguard Worker 12*6777b538SAndroid Build Coastguard Worker // Prioritization used in various parts of the networking code such 13*6777b538SAndroid Build Coastguard Worker // as connection prioritization and resource loading prioritization. 14*6777b538SAndroid Build Coastguard Worker // A Java counterpart will be generated for this enum. 15*6777b538SAndroid Build Coastguard Worker // GENERATED_JAVA_ENUM_PACKAGE: org.chromium.net 16*6777b538SAndroid Build Coastguard Worker // GENERATED_JAVA_CLASS_NAME_OVERRIDE: RequestPriority 17*6777b538SAndroid Build Coastguard Worker // 18*6777b538SAndroid Build Coastguard Worker // This enum should be synchronized with the enum NetRequestPriority in 19*6777b538SAndroid Build Coastguard Worker // tools/metrics/histograms/enums.xml. 20*6777b538SAndroid Build Coastguard Worker enum RequestPriority { 21*6777b538SAndroid Build Coastguard Worker THROTTLED = 0, // Used to signal that resources 22*6777b538SAndroid Build Coastguard Worker // should be reserved for following 23*6777b538SAndroid Build Coastguard Worker // requests (i.e. that higher priority 24*6777b538SAndroid Build Coastguard Worker // following requests are expected). 25*6777b538SAndroid Build Coastguard Worker MINIMUM_PRIORITY = THROTTLED, 26*6777b538SAndroid Build Coastguard Worker IDLE = 1, // Default "as resources available" level. 27*6777b538SAndroid Build Coastguard Worker LOWEST = 2, 28*6777b538SAndroid Build Coastguard Worker DEFAULT_PRIORITY = LOWEST, 29*6777b538SAndroid Build Coastguard Worker LOW = 3, 30*6777b538SAndroid Build Coastguard Worker MEDIUM = 4, 31*6777b538SAndroid Build Coastguard Worker HIGHEST = 5, 32*6777b538SAndroid Build Coastguard Worker MAXIMUM_PRIORITY = HIGHEST, 33*6777b538SAndroid Build Coastguard Worker }; 34*6777b538SAndroid Build Coastguard Worker 35*6777b538SAndroid Build Coastguard Worker // For simplicity, one can assume that one can index into array of 36*6777b538SAndroid Build Coastguard Worker // NUM_PRIORITIES elements with a RequestPriority (i.e., 37*6777b538SAndroid Build Coastguard Worker // MINIMUM_PRIORITY == 0). 38*6777b538SAndroid Build Coastguard Worker enum RequestPrioritySize { 39*6777b538SAndroid Build Coastguard Worker NUM_PRIORITIES = MAXIMUM_PRIORITY + 1, 40*6777b538SAndroid Build Coastguard Worker }; 41*6777b538SAndroid Build Coastguard Worker 42*6777b538SAndroid Build Coastguard Worker // Default value to use for the incremental loading flag as part of HTTP 43*6777b538SAndroid Build Coastguard Worker // extensible priorities (RFC 9218). Currently used for HTTP/3. 44*6777b538SAndroid Build Coastguard Worker // 45*6777b538SAndroid Build Coastguard Worker // This default is the value that works best in most cases that the networking 46*6777b538SAndroid Build Coastguard Worker // code supports (simultaneous requests are loaded concurrently and don't block 47*6777b538SAndroid Build Coastguard Worker // one another). 48*6777b538SAndroid Build Coastguard Worker // 49*6777b538SAndroid Build Coastguard Worker // This is independent from the spec default for the protocol, which is false. 50*6777b538SAndroid Build Coastguard Worker const bool kDefaultPriorityIncremental = true; 51*6777b538SAndroid Build Coastguard Worker 52*6777b538SAndroid Build Coastguard Worker NET_EXPORT const char* RequestPriorityToString(RequestPriority priority); 53*6777b538SAndroid Build Coastguard Worker 54*6777b538SAndroid Build Coastguard Worker } // namespace net 55*6777b538SAndroid Build Coastguard Worker 56*6777b538SAndroid Build Coastguard Worker #endif // NET_BASE_REQUEST_PRIORITY_H_ 57