[email protected] | 3ecb49d7 | 2012-11-06 19:56:54 | [diff] [blame] | 1 | // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 | // Use of this source code is governed by a BSD-style license that can be |
| 3 | // found in the LICENSE file. |
| 4 | |
| 5 | // This is the list of load states and their values. For the enum values, |
| 6 | // include the file "net/base/load_states.h". |
| 7 | // |
| 8 | // Here we define the values using a macro LOAD_STATE, so it can be |
| 9 | // expanded differently in some places (for example, to automatically |
| 10 | // map a load flag value to its symbolic name). |
| 11 | |
| 12 | // This is the default state. It corresponds to a resource load that has |
| 13 | // either not yet begun or is idle waiting for the consumer to do something |
| 14 | // to move things along (e.g., the consumer of an URLRequest may not have |
| 15 | // called Read yet). |
| 16 | LOAD_STATE(IDLE) |
| 17 | |
[email protected] | 03b7c8c | 2013-07-20 04:38:55 | [diff] [blame] | 18 | // When a socket pool group is below the maximum number of sockets allowed per |
| 19 | // group, but a new socket cannot be created due to the per-pool socket limit, |
| 20 | // this state is returned by all requests for the group waiting on an idle |
| 21 | // connection, except those that may be serviced by a pending new connection. |
| 22 | LOAD_STATE(WAITING_FOR_STALLED_SOCKET_POOL) |
| 23 | |
| 24 | // When a socket pool group has reached the maximum number of sockets allowed |
| 25 | // per group, this state is returned for all requests that don't have a socket, |
| 26 | // except those that correspond to a pending new connection. |
| 27 | LOAD_STATE(WAITING_FOR_AVAILABLE_SOCKET) |
| 28 | |
[email protected] | 3ecb49d7 | 2012-11-06 19:56:54 | [diff] [blame] | 29 | // This state indicates that the URLRequest delegate has chosen to block this |
| 30 | // request before it was sent over the network. When in this state, the |
| 31 | // delegate should set a load state parameter on the URLRequest describing |
| 32 | // the nature of the delay (i.e. "Waiting for <description given by |
| 33 | // delegate>"). |
| 34 | LOAD_STATE(WAITING_FOR_DELEGATE) |
| 35 | |
| 36 | // This state corresponds to a resource load that is blocked waiting for |
| 37 | // access to a resource in the cache. If multiple requests are made for the |
| 38 | // same resource, the first request will be responsible for writing (or |
| 39 | // updating) the cache entry and the second request will be deferred until |
| 40 | // the first completes. This may be done to optimize for cache reuse. |
| 41 | LOAD_STATE(WAITING_FOR_CACHE) |
| 42 | |
| 43 | // This state corresponds to a resource load that is blocked waiting for |
| 44 | // access to a resource in the AppCache. |
| 45 | // Note: This is a layering violation, but being the only one it's not that |
| 46 | // bad. TODO(rvargas): Reconsider what to do if we need to add more. |
| 47 | LOAD_STATE(WAITING_FOR_APPCACHE) |
| 48 | |
[email protected] | 8a848e9 | 2013-01-30 07:54:36 | [diff] [blame] | 49 | // This state corresponds to a resource being blocked waiting for the |
| 50 | // PAC script to be downloaded. |
| 51 | LOAD_STATE(DOWNLOADING_PROXY_SCRIPT) |
| 52 | |
[email protected] | 3ecb49d7 | 2012-11-06 19:56:54 | [diff] [blame] | 53 | // This state corresponds to a resource load that is blocked waiting for a |
| 54 | // proxy autoconfig script to return a proxy server to use. |
| 55 | LOAD_STATE(RESOLVING_PROXY_FOR_URL) |
| 56 | |
| 57 | // This state corresponds to a resource load that is blocked waiting for a |
| 58 | // proxy autoconfig script to return a proxy server to use, but that proxy |
| 59 | // script is busy resolving the IP address of a host. |
| 60 | LOAD_STATE(RESOLVING_HOST_IN_PROXY_SCRIPT) |
| 61 | |
| 62 | // This state indicates that we're in the process of establishing a tunnel |
| 63 | // through the proxy server. |
| 64 | LOAD_STATE(ESTABLISHING_PROXY_TUNNEL) |
| 65 | |
| 66 | // This state corresponds to a resource load that is blocked waiting for a |
| 67 | // host name to be resolved. This could either indicate resolution of the |
| 68 | // origin server corresponding to the resource or to the host name of a proxy |
| 69 | // server used to fetch the resource. |
| 70 | LOAD_STATE(RESOLVING_HOST) |
| 71 | |
| 72 | // This state corresponds to a resource load that is blocked waiting for a |
| 73 | // TCP connection (or other network connection) to be established. HTTP |
| 74 | // requests that reuse a keep-alive connection skip this state. |
| 75 | LOAD_STATE(CONNECTING) |
| 76 | |
| 77 | // This state corresponds to a resource load that is blocked waiting for the |
| 78 | // SSL handshake to complete. |
| 79 | LOAD_STATE(SSL_HANDSHAKE) |
| 80 | |
| 81 | // This state corresponds to a resource load that is blocked waiting to |
| 82 | // completely upload a request to a server. In the case of a HTTP POST |
| 83 | // request, this state includes the period of time during which the message |
| 84 | // body is being uploaded. |
| 85 | LOAD_STATE(SENDING_REQUEST) |
| 86 | |
| 87 | // This state corresponds to a resource load that is blocked waiting for the |
| 88 | // response to a network request. In the case of a HTTP transaction, this |
| 89 | // corresponds to the period after the request is sent and before all of the |
| 90 | // response headers have been received. |
| 91 | LOAD_STATE(WAITING_FOR_RESPONSE) |
| 92 | |
| 93 | // This state corresponds to a resource load that is blocked waiting for a |
| 94 | // read to complete. In the case of a HTTP transaction, this corresponds to |
| 95 | // the period after the response headers have been received and before all of |
| 96 | // the response body has been downloaded. (NOTE: This state only applies for |
| 97 | // an URLRequest while there is an outstanding Read operation.) |
| 98 | LOAD_STATE(READING_RESPONSE) |