Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(178)

Side by Side Diff: third_party/WebKit/Source/core/fetch/ResourceLoaderOptions.h

Issue 2389643002: Reflow comments in core/fetch (Closed)
Patch Set: yoavs comments Created 4 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2011 Google Inc. All rights reserved. 2 * Copyright (C) 2011 Google Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions are 5 * modification, are permitted provided that the following conditions are
6 * met: 6 * met:
7 * 7 *
8 * * Redistributions of source code must retain the above copyright 8 * * Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer. 9 * notice, this list of conditions and the following disclaimer.
10 * * Redistributions in binary form must reproduce the above 10 * * Redistributions in binary form must reproduce the above
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
46 DoNotCheckContentSecurityPolicy 46 DoNotCheckContentSecurityPolicy
47 }; 47 };
48 48
49 enum RequestInitiatorContext { 49 enum RequestInitiatorContext {
50 DocumentContext, 50 DocumentContext,
51 WorkerContext, 51 WorkerContext,
52 }; 52 };
53 53
54 enum StoredCredentials { AllowStoredCredentials, DoNotAllowStoredCredentials }; 54 enum StoredCredentials { AllowStoredCredentials, DoNotAllowStoredCredentials };
55 55
56 // APIs like XMLHttpRequest and EventSource let the user decide 56 // APIs like XMLHttpRequest and EventSource let the user decide whether to send
57 // whether to send credentials, but they're always sent for 57 // credentials, but they're always sent for same-origin requests. Additional
58 // same-origin requests. Additional information is needed to handle 58 // information is needed to handle cross-origin redirects correctly.
59 // cross-origin redirects correctly.
60 enum CredentialRequest { 59 enum CredentialRequest {
61 ClientRequestedCredentials, 60 ClientRequestedCredentials,
62 ClientDidNotRequestCredentials 61 ClientDidNotRequestCredentials
63 }; 62 };
64 63
65 enum SynchronousPolicy { RequestSynchronously, RequestAsynchronously }; 64 enum SynchronousPolicy { RequestSynchronously, RequestAsynchronously };
66 65
67 // A resource fetch can be marked as being CORS enabled. The loader 66 // A resource fetch can be marked as being CORS enabled. The loader must perform
68 // must perform an access check upon seeing the response. 67 // an access check upon seeing the response.
69 enum CORSEnabled { NotCORSEnabled, IsCORSEnabled }; 68 enum CORSEnabled { NotCORSEnabled, IsCORSEnabled };
70 69
71 struct ResourceLoaderOptions { 70 struct ResourceLoaderOptions {
72 USING_FAST_MALLOC(ResourceLoaderOptions); 71 USING_FAST_MALLOC(ResourceLoaderOptions);
73 72
74 public: 73 public:
75 ResourceLoaderOptions() 74 ResourceLoaderOptions()
76 : dataBufferingPolicy(BufferData), 75 : dataBufferingPolicy(BufferData),
77 allowCredentials(DoNotAllowStoredCredentials), 76 allowCredentials(DoNotAllowStoredCredentials),
78 credentialsRequested(ClientDidNotRequestCredentials), 77 credentialsRequested(ClientDidNotRequestCredentials),
79 contentSecurityPolicyOption(CheckContentSecurityPolicy), 78 contentSecurityPolicyOption(CheckContentSecurityPolicy),
80 requestInitiatorContext(DocumentContext), 79 requestInitiatorContext(DocumentContext),
81 synchronousPolicy(RequestAsynchronously), 80 synchronousPolicy(RequestAsynchronously),
82 corsEnabled(NotCORSEnabled) {} 81 corsEnabled(NotCORSEnabled) {}
83 82
84 ResourceLoaderOptions( 83 ResourceLoaderOptions(
85 DataBufferingPolicy dataBufferingPolicy, 84 DataBufferingPolicy dataBufferingPolicy,
86 StoredCredentials allowCredentials, 85 StoredCredentials allowCredentials,
87 CredentialRequest credentialsRequested, 86 CredentialRequest credentialsRequested,
88 ContentSecurityPolicyDisposition contentSecurityPolicyOption, 87 ContentSecurityPolicyDisposition contentSecurityPolicyOption,
89 RequestInitiatorContext requestInitiatorContext) 88 RequestInitiatorContext requestInitiatorContext)
90 : dataBufferingPolicy(dataBufferingPolicy), 89 : dataBufferingPolicy(dataBufferingPolicy),
91 allowCredentials(allowCredentials), 90 allowCredentials(allowCredentials),
92 credentialsRequested(credentialsRequested), 91 credentialsRequested(credentialsRequested),
93 contentSecurityPolicyOption(contentSecurityPolicyOption), 92 contentSecurityPolicyOption(contentSecurityPolicyOption),
94 requestInitiatorContext(requestInitiatorContext), 93 requestInitiatorContext(requestInitiatorContext),
95 synchronousPolicy(RequestAsynchronously), 94 synchronousPolicy(RequestAsynchronously),
96 corsEnabled(NotCORSEnabled) {} 95 corsEnabled(NotCORSEnabled) {}
97 96
98 // Answers the question "can a separate request with these 97 // Answers the question "can a separate request with these different options
99 // different options be re-used" (e.g. preload request) 98 // be re-used" (e.g. preload request) The safe (but possibly slow) answer is
100 // The safe (but possibly slow) answer is always false. 99 // always false.
101 bool canReuseRequest(const ResourceLoaderOptions& other) const { 100 bool canReuseRequest(const ResourceLoaderOptions& other) const {
102 // dataBufferingPolicy differences are believed to be safe for re-use. 101 // dataBufferingPolicy differences are believed to be safe for re-use.
103 // FIXME: check allowCredentials. 102 // FIXME: check allowCredentials.
104 // FIXME: check credentialsRequested. 103 // FIXME: check credentialsRequested.
105 // FIXME: check contentSecurityPolicyOption. 104 // FIXME: check contentSecurityPolicyOption.
106 // initiatorInfo is purely informational and should be benign for re-use. 105 // initiatorInfo is purely informational and should be benign for re-use.
107 // requestInitiatorContext is benign (indicates document vs. worker) 106 // requestInitiatorContext is benign (indicates document vs. worker)
108 // synchronousPolicy (safe to re-use an async XHR response for sync, etc.) 107 // synchronousPolicy (safe to re-use an async XHR response for sync, etc.)
109 return corsEnabled == other.corsEnabled; 108 return corsEnabled == other.corsEnabled;
110 // securityOrigin has more complicated checks which callers are responsible for. 109 // securityOrigin has more complicated checks which callers are responsible
110 // for.
111 } 111 }
112 112
113 // When adding members, CrossThreadResourceLoaderOptionsData should be 113 // When adding members, CrossThreadResourceLoaderOptionsData should be
114 // updated. 114 // updated.
115 DataBufferingPolicy dataBufferingPolicy; 115 DataBufferingPolicy dataBufferingPolicy;
116 StoredCredentials 116
117 allowCredentials; // Whether HTTP credentials and cookies are sent with t he request. 117 // Whether HTTP credentials and cookies are sent with the request.
118 CredentialRequest 118 StoredCredentials allowCredentials;
119 credentialsRequested; // Whether the client (e.g. XHR) wanted credentials in the first place. 119
120 // Whether the client (e.g. XHR) wanted credentials in the first place.
121 CredentialRequest credentialsRequested;
122
120 ContentSecurityPolicyDisposition contentSecurityPolicyOption; 123 ContentSecurityPolicyDisposition contentSecurityPolicyOption;
121 FetchInitiatorInfo initiatorInfo; 124 FetchInitiatorInfo initiatorInfo;
122 RequestInitiatorContext requestInitiatorContext; 125 RequestInitiatorContext requestInitiatorContext;
123 SynchronousPolicy synchronousPolicy; 126 SynchronousPolicy synchronousPolicy;
124 CORSEnabled 127
125 corsEnabled; // If the resource is loaded out-of-origin, whether or not t o use CORS. 128 // If the resource is loaded out-of-origin, whether or not to use CORS.
129 CORSEnabled corsEnabled;
130
126 RefPtr<SecurityOrigin> securityOrigin; 131 RefPtr<SecurityOrigin> securityOrigin;
127 String contentSecurityPolicyNonce; 132 String contentSecurityPolicyNonce;
128 IntegrityMetadataSet integrityMetadata; 133 IntegrityMetadataSet integrityMetadata;
129 }; 134 };
130 135
131 // Encode AtomicString (in FetchInitiatorInfo) as String to cross threads. 136 // Encode AtomicString (in FetchInitiatorInfo) as String to cross threads.
132 struct CrossThreadResourceLoaderOptionsData { 137 struct CrossThreadResourceLoaderOptionsData {
133 DISALLOW_NEW(); 138 DISALLOW_NEW();
134 explicit CrossThreadResourceLoaderOptionsData( 139 explicit CrossThreadResourceLoaderOptionsData(
135 const ResourceLoaderOptions& options) 140 const ResourceLoaderOptions& options)
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
180 struct CrossThreadCopier<ResourceLoaderOptions> { 185 struct CrossThreadCopier<ResourceLoaderOptions> {
181 using Type = CrossThreadResourceLoaderOptionsData; 186 using Type = CrossThreadResourceLoaderOptionsData;
182 static Type copy(const ResourceLoaderOptions& options) { 187 static Type copy(const ResourceLoaderOptions& options) {
183 return CrossThreadResourceLoaderOptionsData(options); 188 return CrossThreadResourceLoaderOptionsData(options);
184 } 189 }
185 }; 190 };
186 191
187 } // namespace blink 192 } // namespace blink
188 193
189 #endif // ResourceLoaderOptions_h 194 #endif // ResourceLoaderOptions_h
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698