xref: /aosp_15_r20/external/cronet/net/base/load_flags_list.h (revision 6777b5387eb2ff775bb5750e3f5d96f37fb7352b)
1 // Copyright 2011 The Chromium Authors
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 file intentionally does not have header guards, it's included
6 // inside a macro to generate values. The following line silences a
7 // presubmit warning that would otherwise be triggered by this:
8 // no-include-guard-because-multiply-included
9 // NOLINT(build/header_guard)
10 
11 // This is the list of load flags and their values. For the enum values,
12 // include the file "net/base/load_flags.h".
13 //
14 // Here we define the values using a macro LOAD_FLAG, so it can be
15 // expanded differently in some places (for example, to automatically
16 // map a load flag value to its symbolic name).
17 
18 LOAD_FLAG(NORMAL, 0)
19 
20 // This is "normal reload", meaning an if-none-match/if-modified-since query.
21 // All other caches are used as normal.
22 LOAD_FLAG(VALIDATE_CACHE, 1 << 0)
23 
24 // This is "shift-reload", meaning a "pragma: no-cache" end-to-end fetch.
25 // The response is not read from the HTTP cache but is written to the cache,
26 // unlike in `DISABLE_CACHE`. All other caches are used as normal.
27 LOAD_FLAG(BYPASS_CACHE, 1 << 1)
28 
29 // This is a back/forward style navigation where the cached content should
30 // be preferred over any protocol specific cache validation.
31 LOAD_FLAG(SKIP_CACHE_VALIDATION, 1 << 2)
32 
33 // This is a navigation that will fail if it cannot serve the requested
34 // resource from the cache (or some equivalent local store).
35 LOAD_FLAG(ONLY_FROM_CACHE, 1 << 3)
36 
37 // This is a request whose response will not be read or written to the HTTP
38 // cache. It does not impact the cache-related HTTP request headers. All other
39 // caches are used as normal.
40 LOAD_FLAG(DISABLE_CACHE, 1 << 4)
41 
42 // If present, causes dependent network fetches (AIA, CRLs, OCSP) to be
43 // skipped on secure connections.
44 LOAD_FLAG(DISABLE_CERT_NETWORK_FETCHES, 1 << 5)
45 
46 // This load will not make any changes to cookies, including storing new
47 // cookies or updating existing ones.
48 // Deprecated. Use URLRequest::set_allow_credentials instead. See
49 // https://crbug.com/799935.
50 LOAD_FLAG(DO_NOT_SAVE_COOKIES, 1 << 6)
51 
52 // Do not resolve proxies. This override is used when downloading PAC files
53 // to avoid having a circular dependency.
54 LOAD_FLAG(BYPASS_PROXY, 1 << 7)
55 
56 // DO NOT USE THIS FLAG
57 // The network stack should not have frame level knowledge.  Any pre-connect
58 // or pre-resolution requiring that knowledge should be done from the
59 // stack embedder.
60 // Indicate that this is a top level frame, so that we don't assume it is a
61 // subresource and speculatively pre-connect or pre-resolve when a referring
62 // page is loaded.
63 LOAD_FLAG(MAIN_FRAME_DEPRECATED, 1 << 8)
64 
65 // Indicates that this load was motivated by the rel=prefetch feature, or the
66 // speculationrules prefetch feature, and is (in theory) not intended for the
67 // current frame.
68 LOAD_FLAG(PREFETCH, 1 << 9)
69 
70 // Indicates that this load could cause deadlock if it has to wait for another
71 // request. Overrides socket limits. Must always be used with MAXIMUM_PRIORITY.
72 LOAD_FLAG(IGNORE_LIMITS, 1 << 10)
73 
74 // Indicates that the username:password portion of the URL should not
75 // be honored, but that other forms of authority may be used.
76 LOAD_FLAG(DO_NOT_USE_EMBEDDED_IDENTITY, 1 << 11)
77 
78 // Indicates that this request is not to be migrated to a cellular network when
79 // QUIC connection migration is enabled.
80 LOAD_FLAG(DISABLE_CONNECTION_MIGRATION_TO_CELLULAR, 1 << 12)
81 
82 // Indicates that the cache should not check that the request matches the
83 // response's vary header.
84 LOAD_FLAG(SKIP_VARY_CHECK, 1 << 13)
85 
86 // The creator of this URLRequest wishes to receive stale responses when allowed
87 // by the "Cache-Control: stale-while-revalidate" directive and is able to issue
88 // an async revalidation to update the cache. If the callee needs to revalidate
89 // the resource |async_revalidation_requested| attribute will be set on the
90 // associated HttpResponseInfo. If indicated the callee should revalidate the
91 // resource by issuing a new request without this flag set. If the revalidation
92 // does not complete in 60 seconds, the cache treat the stale resource as
93 // invalid, as it did not specify stale-while-revalidate.
94 LOAD_FLAG(SUPPORT_ASYNC_REVALIDATION, 1 << 14)
95 
96 // Indicates that a prefetch request's cached response should be restricted in
97 // in terms of reuse. The cached response can only be reused by requests with
98 // the LOAD_CAN_USE_RESTRICTED_PREFETCH load flag.
99 LOAD_FLAG(RESTRICTED_PREFETCH, 1 << 15)
100 
101 // This flag must be set on requests that are allowed to reuse cache entries
102 // that are marked as RESTRICTED_PREFETCH. Requests without this flag cannot
103 // reuse restricted prefetch responses in the cache. Restricted response reuse
104 // is considered privileged, and therefore this flag must only be set from a
105 // trusted process.
106 LOAD_FLAG(CAN_USE_RESTRICTED_PREFETCH, 1 << 16)
107 
108 // Indicates that this load can use a shared dictionary.
109 LOAD_FLAG(CAN_USE_SHARED_DICTIONARY, 1 << 17)
110 
111 // Indicates that CAN_USE_SHARED_DICTIONARY must be disabled after a redirect to
112 // another origin.
113 LOAD_FLAG(DISABLE_SHARED_DICTIONARY_AFTER_CROSS_ORIGIN_REDIRECT, 1 << 18)
114 
115 // This flag is used to bypass HSTS upgrades. This flag must be set for AIA,
116 // CRL, and OCSP requests in order to prevent circular dependencies.
117 LOAD_FLAG(SHOULD_BYPASS_HSTS, 1 << 19)
118