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

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

Issue 2056183002: Implement the `require-sri-for` CSP directive (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Addressed comments except those related to Layout Tests Created 4 years, 6 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 14 matching lines...) Expand all
25 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 25 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
26 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 26 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
27 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 27 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
28 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 28 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29 */ 29 */
30 30
31 #ifndef ResourceLoaderOptions_h 31 #ifndef ResourceLoaderOptions_h
32 #define ResourceLoaderOptions_h 32 #define ResourceLoaderOptions_h
33 33
34 #include "core/fetch/FetchInitiatorInfo.h" 34 #include "core/fetch/FetchInitiatorInfo.h"
35 #include "core/fetch/IntegrityMetadata.h"
35 #include "platform/CrossThreadCopier.h" 36 #include "platform/CrossThreadCopier.h"
36 #include "platform/weborigin/SecurityOrigin.h" 37 #include "platform/weborigin/SecurityOrigin.h"
37 #include "wtf/Allocator.h" 38 #include "wtf/Allocator.h"
38 39
39 namespace blink { 40 namespace blink {
40 41
41 enum DataBufferingPolicy { 42 enum DataBufferingPolicy {
42 BufferData, 43 BufferData,
43 DoNotBufferData 44 DoNotBufferData
44 }; 45 };
(...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after
130 DataBufferingPolicy dataBufferingPolicy; 131 DataBufferingPolicy dataBufferingPolicy;
131 StoredCredentials allowCredentials; // Whether HTTP credentials and cookies are sent with the request. 132 StoredCredentials allowCredentials; // Whether HTTP credentials and cookies are sent with the request.
132 CredentialRequest credentialsRequested; // Whether the client (e.g. XHR) wan ted credentials in the first place. 133 CredentialRequest credentialsRequested; // Whether the client (e.g. XHR) wan ted credentials in the first place.
133 ContentSecurityPolicyDisposition contentSecurityPolicyOption; 134 ContentSecurityPolicyDisposition contentSecurityPolicyOption;
134 FetchInitiatorInfo initiatorInfo; 135 FetchInitiatorInfo initiatorInfo;
135 RequestInitiatorContext requestInitiatorContext; 136 RequestInitiatorContext requestInitiatorContext;
136 SynchronousPolicy synchronousPolicy; 137 SynchronousPolicy synchronousPolicy;
137 CORSEnabled corsEnabled; // If the resource is loaded out-of-origin, whether or not to use CORS. 138 CORSEnabled corsEnabled; // If the resource is loaded out-of-origin, whether or not to use CORS.
138 RefPtr<SecurityOrigin> securityOrigin; 139 RefPtr<SecurityOrigin> securityOrigin;
139 String contentSecurityPolicyNonce; 140 String contentSecurityPolicyNonce;
141 IntegrityMetadataSet integrityMetadata;
140 }; 142 };
141 143
142 // Encode AtomicString (in FetchInitiatorInfo) as String to cross threads. 144 // Encode AtomicString (in FetchInitiatorInfo) as String to cross threads.
143 struct CrossThreadResourceLoaderOptionsData { 145 struct CrossThreadResourceLoaderOptionsData {
144 DISALLOW_NEW(); 146 DISALLOW_NEW();
145 explicit CrossThreadResourceLoaderOptionsData(const ResourceLoaderOptions& o ptions) 147 explicit CrossThreadResourceLoaderOptionsData(const ResourceLoaderOptions& o ptions)
146 : dataBufferingPolicy(options.dataBufferingPolicy) 148 : dataBufferingPolicy(options.dataBufferingPolicy)
147 , allowCredentials(options.allowCredentials) 149 , allowCredentials(options.allowCredentials)
148 , credentialsRequested(options.credentialsRequested) 150 , credentialsRequested(options.credentialsRequested)
149 , contentSecurityPolicyOption(options.contentSecurityPolicyOption) 151 , contentSecurityPolicyOption(options.contentSecurityPolicyOption)
150 , initiatorInfo(options.initiatorInfo) 152 , initiatorInfo(options.initiatorInfo)
151 , requestInitiatorContext(options.requestInitiatorContext) 153 , requestInitiatorContext(options.requestInitiatorContext)
152 , synchronousPolicy(options.synchronousPolicy) 154 , synchronousPolicy(options.synchronousPolicy)
153 , corsEnabled(options.corsEnabled) 155 , corsEnabled(options.corsEnabled)
154 , securityOrigin(options.securityOrigin ? options.securityOrigin->isolat edCopy() : nullptr) 156 , securityOrigin(options.securityOrigin ? options.securityOrigin->isolat edCopy() : nullptr)
155 , contentSecurityPolicyNonce(options.contentSecurityPolicyNonce) 157 , contentSecurityPolicyNonce(options.contentSecurityPolicyNonce)
158 , integrityMetadata(options.integrityMetadata)
156 { 159 {
157 } 160 }
158 161
159 operator ResourceLoaderOptions() const 162 operator ResourceLoaderOptions() const
160 { 163 {
161 ResourceLoaderOptions options; 164 ResourceLoaderOptions options;
162 options.dataBufferingPolicy = dataBufferingPolicy; 165 options.dataBufferingPolicy = dataBufferingPolicy;
163 options.allowCredentials = allowCredentials; 166 options.allowCredentials = allowCredentials;
164 options.credentialsRequested = credentialsRequested; 167 options.credentialsRequested = credentialsRequested;
165 options.contentSecurityPolicyOption = contentSecurityPolicyOption; 168 options.contentSecurityPolicyOption = contentSecurityPolicyOption;
166 options.initiatorInfo = initiatorInfo; 169 options.initiatorInfo = initiatorInfo;
167 options.requestInitiatorContext = requestInitiatorContext; 170 options.requestInitiatorContext = requestInitiatorContext;
168 options.synchronousPolicy = synchronousPolicy; 171 options.synchronousPolicy = synchronousPolicy;
169 options.corsEnabled = corsEnabled; 172 options.corsEnabled = corsEnabled;
170 options.securityOrigin = securityOrigin; 173 options.securityOrigin = securityOrigin;
171 options.contentSecurityPolicyNonce = contentSecurityPolicyNonce; 174 options.contentSecurityPolicyNonce = contentSecurityPolicyNonce;
175 options.integrityMetadata = integrityMetadata;
172 return options; 176 return options;
173 } 177 }
174 178
175 DataBufferingPolicy dataBufferingPolicy; 179 DataBufferingPolicy dataBufferingPolicy;
176 StoredCredentials allowCredentials; 180 StoredCredentials allowCredentials;
177 CredentialRequest credentialsRequested; 181 CredentialRequest credentialsRequested;
178 ContentSecurityPolicyDisposition contentSecurityPolicyOption; 182 ContentSecurityPolicyDisposition contentSecurityPolicyOption;
179 CrossThreadFetchInitiatorInfoData initiatorInfo; 183 CrossThreadFetchInitiatorInfoData initiatorInfo;
180 RequestInitiatorContext requestInitiatorContext; 184 RequestInitiatorContext requestInitiatorContext;
181 SynchronousPolicy synchronousPolicy; 185 SynchronousPolicy synchronousPolicy;
182 CORSEnabled corsEnabled; 186 CORSEnabled corsEnabled;
183 RefPtr<SecurityOrigin> securityOrigin; 187 RefPtr<SecurityOrigin> securityOrigin;
184 String contentSecurityPolicyNonce; 188 String contentSecurityPolicyNonce;
189 IntegrityMetadataSet integrityMetadata;
185 }; 190 };
186 191
187 template <> 192 template <>
188 struct CrossThreadCopier<ResourceLoaderOptions> { 193 struct CrossThreadCopier<ResourceLoaderOptions> {
189 using Type = CrossThreadResourceLoaderOptionsData; 194 using Type = CrossThreadResourceLoaderOptionsData;
190 static Type copy(const ResourceLoaderOptions& options) 195 static Type copy(const ResourceLoaderOptions& options)
191 { 196 {
192 return CrossThreadResourceLoaderOptionsData(options); 197 return CrossThreadResourceLoaderOptionsData(options);
193 } 198 }
194 }; 199 };
195 200
196 } // namespace blink 201 } // namespace blink
197 202
198 #endif // ResourceLoaderOptions_h 203 #endif // ResourceLoaderOptions_h
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698