| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 // An implementation of WebURLLoader in terms of ResourceLoaderBridge. | 5 // An implementation of WebURLLoader in terms of ResourceLoaderBridge. |
| 6 | 6 |
| 7 #include "content/child/web_url_loader_impl.h" | 7 #include "content/child/web_url_loader_impl.h" |
| 8 | 8 |
| 9 #include "base/bind.h" | 9 #include "base/bind.h" |
| 10 #include "base/files/file_path.h" | 10 #include "base/files/file_path.h" |
| (...skipping 212 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 223 WebURLRequest::FetchCredentialsModeOmit); | 223 WebURLRequest::FetchCredentialsModeOmit); |
| 224 COMPILE_ASSERT_MATCHING_ENUMS(FETCH_CREDENTIALS_MODE_SAME_ORIGIN, | 224 COMPILE_ASSERT_MATCHING_ENUMS(FETCH_CREDENTIALS_MODE_SAME_ORIGIN, |
| 225 WebURLRequest::FetchCredentialsModeSameOrigin); | 225 WebURLRequest::FetchCredentialsModeSameOrigin); |
| 226 COMPILE_ASSERT_MATCHING_ENUMS(FETCH_CREDENTIALS_MODE_INCLUDE, | 226 COMPILE_ASSERT_MATCHING_ENUMS(FETCH_CREDENTIALS_MODE_INCLUDE, |
| 227 WebURLRequest::FetchCredentialsModeInclude); | 227 WebURLRequest::FetchCredentialsModeInclude); |
| 228 | 228 |
| 229 FetchCredentialsMode GetFetchCredentialsMode(const WebURLRequest& request) { | 229 FetchCredentialsMode GetFetchCredentialsMode(const WebURLRequest& request) { |
| 230 return static_cast<FetchCredentialsMode>(request.fetchCredentialsMode()); | 230 return static_cast<FetchCredentialsMode>(request.fetchCredentialsMode()); |
| 231 } | 231 } |
| 232 | 232 |
| 233 COMPILE_ASSERT_MATCHING_ENUMS(REQUEST_CONTEXT_FRAME_TYPE_AUXILIARY, |
| 234 WebURLRequest::FrameTypeAuxiliary); |
| 235 COMPILE_ASSERT_MATCHING_ENUMS(REQUEST_CONTEXT_FRAME_TYPE_NESTED, |
| 236 WebURLRequest::FrameTypeNested); |
| 237 COMPILE_ASSERT_MATCHING_ENUMS(REQUEST_CONTEXT_FRAME_TYPE_NONE, |
| 238 WebURLRequest::FrameTypeNone); |
| 239 COMPILE_ASSERT_MATCHING_ENUMS(REQUEST_CONTEXT_FRAME_TYPE_TOP_LEVEL, |
| 240 WebURLRequest::FrameTypeTopLevel); |
| 241 |
| 242 RequestContextFrameType GetRequestContextFrameType( |
| 243 const WebURLRequest& request) { |
| 244 return static_cast<RequestContextFrameType>(request.frameType()); |
| 245 } |
| 246 |
| 247 COMPILE_ASSERT_MATCHING_ENUMS(REQUEST_CONTEXT_TYPE_UNSPECIFIED, |
| 248 WebURLRequest::RequestContextUnspecified); |
| 249 COMPILE_ASSERT_MATCHING_ENUMS(REQUEST_CONTEXT_TYPE_AUDIO, |
| 250 WebURLRequest::RequestContextAudio); |
| 251 COMPILE_ASSERT_MATCHING_ENUMS(REQUEST_CONTEXT_TYPE_BEACON, |
| 252 WebURLRequest::RequestContextBeacon); |
| 253 COMPILE_ASSERT_MATCHING_ENUMS(REQUEST_CONTEXT_TYPE_CSP_REPORT, |
| 254 WebURLRequest::RequestContextCSPReport); |
| 255 COMPILE_ASSERT_MATCHING_ENUMS(REQUEST_CONTEXT_TYPE_DOWNLOAD, |
| 256 WebURLRequest::RequestContextDownload); |
| 257 COMPILE_ASSERT_MATCHING_ENUMS(REQUEST_CONTEXT_TYPE_EMBED, |
| 258 WebURLRequest::RequestContextEmbed); |
| 259 COMPILE_ASSERT_MATCHING_ENUMS(REQUEST_CONTEXT_TYPE_EVENT_SOURCE, |
| 260 WebURLRequest::RequestContextEventSource); |
| 261 COMPILE_ASSERT_MATCHING_ENUMS(REQUEST_CONTEXT_TYPE_FAVICON, |
| 262 WebURLRequest::RequestContextFavicon); |
| 263 COMPILE_ASSERT_MATCHING_ENUMS(REQUEST_CONTEXT_TYPE_FETCH, |
| 264 WebURLRequest::RequestContextFetch); |
| 265 COMPILE_ASSERT_MATCHING_ENUMS(REQUEST_CONTEXT_TYPE_FONT, |
| 266 WebURLRequest::RequestContextFont); |
| 267 COMPILE_ASSERT_MATCHING_ENUMS(REQUEST_CONTEXT_TYPE_FORM, |
| 268 WebURLRequest::RequestContextForm); |
| 269 COMPILE_ASSERT_MATCHING_ENUMS(REQUEST_CONTEXT_TYPE_FRAME, |
| 270 WebURLRequest::RequestContextFrame); |
| 271 COMPILE_ASSERT_MATCHING_ENUMS(REQUEST_CONTEXT_TYPE_HYPERLINK, |
| 272 WebURLRequest::RequestContextHyperlink); |
| 273 COMPILE_ASSERT_MATCHING_ENUMS(REQUEST_CONTEXT_TYPE_IFRAME, |
| 274 WebURLRequest::RequestContextIframe); |
| 275 COMPILE_ASSERT_MATCHING_ENUMS(REQUEST_CONTEXT_TYPE_IMAGE, |
| 276 WebURLRequest::RequestContextImage); |
| 277 COMPILE_ASSERT_MATCHING_ENUMS(REQUEST_CONTEXT_TYPE_IMAGE_SET, |
| 278 WebURLRequest::RequestContextImageSet); |
| 279 COMPILE_ASSERT_MATCHING_ENUMS(REQUEST_CONTEXT_TYPE_IMPORT, |
| 280 WebURLRequest::RequestContextImport); |
| 281 COMPILE_ASSERT_MATCHING_ENUMS(REQUEST_CONTEXT_TYPE_INTERNAL, |
| 282 WebURLRequest::RequestContextInternal); |
| 283 COMPILE_ASSERT_MATCHING_ENUMS(REQUEST_CONTEXT_TYPE_LOCATION, |
| 284 WebURLRequest::RequestContextLocation); |
| 285 COMPILE_ASSERT_MATCHING_ENUMS(REQUEST_CONTEXT_TYPE_MANIFEST, |
| 286 WebURLRequest::RequestContextManifest); |
| 287 COMPILE_ASSERT_MATCHING_ENUMS(REQUEST_CONTEXT_TYPE_OBJECT, |
| 288 WebURLRequest::RequestContextObject); |
| 289 COMPILE_ASSERT_MATCHING_ENUMS(REQUEST_CONTEXT_TYPE_PING, |
| 290 WebURLRequest::RequestContextPing); |
| 291 COMPILE_ASSERT_MATCHING_ENUMS(REQUEST_CONTEXT_TYPE_PLUGIN, |
| 292 WebURLRequest::RequestContextPlugin); |
| 293 COMPILE_ASSERT_MATCHING_ENUMS(REQUEST_CONTEXT_TYPE_PREFETCH, |
| 294 WebURLRequest::RequestContextPrefetch); |
| 295 COMPILE_ASSERT_MATCHING_ENUMS(REQUEST_CONTEXT_TYPE_SCRIPT, |
| 296 WebURLRequest::RequestContextScript); |
| 297 COMPILE_ASSERT_MATCHING_ENUMS(REQUEST_CONTEXT_TYPE_SERVICE_WORKER, |
| 298 WebURLRequest::RequestContextServiceWorker); |
| 299 COMPILE_ASSERT_MATCHING_ENUMS(REQUEST_CONTEXT_TYPE_SHARED_WORKER, |
| 300 WebURLRequest::RequestContextSharedWorker); |
| 301 COMPILE_ASSERT_MATCHING_ENUMS(REQUEST_CONTEXT_TYPE_SUBRESOURCE, |
| 302 WebURLRequest::RequestContextSubresource); |
| 303 COMPILE_ASSERT_MATCHING_ENUMS(REQUEST_CONTEXT_TYPE_STYLE, |
| 304 WebURLRequest::RequestContextStyle); |
| 305 COMPILE_ASSERT_MATCHING_ENUMS(REQUEST_CONTEXT_TYPE_TRACK, |
| 306 WebURLRequest::RequestContextTrack); |
| 307 COMPILE_ASSERT_MATCHING_ENUMS(REQUEST_CONTEXT_TYPE_VIDEO, |
| 308 WebURLRequest::RequestContextVideo); |
| 309 COMPILE_ASSERT_MATCHING_ENUMS(REQUEST_CONTEXT_TYPE_WORKER, |
| 310 WebURLRequest::RequestContextWorker); |
| 311 COMPILE_ASSERT_MATCHING_ENUMS(REQUEST_CONTEXT_TYPE_XML_HTTP_REQUEST, |
| 312 WebURLRequest::RequestContextXMLHttpRequest); |
| 313 COMPILE_ASSERT_MATCHING_ENUMS(REQUEST_CONTEXT_TYPE_XSLT, |
| 314 WebURLRequest::RequestContextXSLT); |
| 315 |
| 316 RequestContextType GetRequestContextType(const WebURLRequest& request) { |
| 317 return static_cast<RequestContextType>(request.requestContext()); |
| 318 } |
| 319 |
| 233 } // namespace | 320 } // namespace |
| 234 | 321 |
| 235 // WebURLLoaderImpl::Context -------------------------------------------------- | 322 // WebURLLoaderImpl::Context -------------------------------------------------- |
| 236 | 323 |
| 237 // This inner class exists since the WebURLLoader may be deleted while inside a | 324 // This inner class exists since the WebURLLoader may be deleted while inside a |
| 238 // call to WebURLLoaderClient. Refcounting is to keep the context from being | 325 // call to WebURLLoaderClient. Refcounting is to keep the context from being |
| 239 // deleted if it may have work to do after calling into the client. | 326 // deleted if it may have work to do after calling into the client. |
| 240 class WebURLLoaderImpl::Context : public base::RefCounted<Context>, | 327 class WebURLLoaderImpl::Context : public base::RefCounted<Context>, |
| 241 public RequestPeer { | 328 public RequestPeer { |
| 242 public: | 329 public: |
| (...skipping 183 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 426 request_info.request_type = WebURLRequestToResourceType(request); | 513 request_info.request_type = WebURLRequestToResourceType(request); |
| 427 request_info.priority = | 514 request_info.priority = |
| 428 ConvertWebKitPriorityToNetPriority(request.priority()); | 515 ConvertWebKitPriorityToNetPriority(request.priority()); |
| 429 request_info.appcache_host_id = request.appCacheHostID(); | 516 request_info.appcache_host_id = request.appCacheHostID(); |
| 430 request_info.routing_id = request.requestorID(); | 517 request_info.routing_id = request.requestorID(); |
| 431 request_info.download_to_file = request.downloadToFile(); | 518 request_info.download_to_file = request.downloadToFile(); |
| 432 request_info.has_user_gesture = request.hasUserGesture(); | 519 request_info.has_user_gesture = request.hasUserGesture(); |
| 433 request_info.skip_service_worker = request.skipServiceWorker(); | 520 request_info.skip_service_worker = request.skipServiceWorker(); |
| 434 request_info.fetch_request_mode = GetFetchRequestMode(request); | 521 request_info.fetch_request_mode = GetFetchRequestMode(request); |
| 435 request_info.fetch_credentials_mode = GetFetchCredentialsMode(request); | 522 request_info.fetch_credentials_mode = GetFetchCredentialsMode(request); |
| 523 request_info.fetch_request_context_type = GetRequestContextType(request); |
| 524 request_info.fetch_frame_type = GetRequestContextFrameType(request); |
| 436 request_info.extra_data = request.extraData(); | 525 request_info.extra_data = request.extraData(); |
| 437 referrer_policy_ = request.referrerPolicy(); | 526 referrer_policy_ = request.referrerPolicy(); |
| 438 request_info.referrer_policy = request.referrerPolicy(); | 527 request_info.referrer_policy = request.referrerPolicy(); |
| 439 bridge_.reset(resource_dispatcher_->CreateBridge(request_info)); | 528 bridge_.reset(resource_dispatcher_->CreateBridge(request_info)); |
| 440 | 529 |
| 441 if (!request.httpBody().isNull()) { | 530 if (!request.httpBody().isNull()) { |
| 442 // GET and HEAD requests shouldn't have http bodies. | 531 // GET and HEAD requests shouldn't have http bodies. |
| 443 DCHECK(method != "GET" && method != "HEAD"); | 532 DCHECK(method != "GET" && method != "HEAD"); |
| 444 const WebHTTPBody& httpBody = request.httpBody(); | 533 const WebHTTPBody& httpBody = request.httpBody(); |
| 445 size_t i = 0; | 534 size_t i = 0; |
| (...skipping 497 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 943 int intra_priority_value) { | 1032 int intra_priority_value) { |
| 944 context_->DidChangePriority(new_priority, intra_priority_value); | 1033 context_->DidChangePriority(new_priority, intra_priority_value); |
| 945 } | 1034 } |
| 946 | 1035 |
| 947 bool WebURLLoaderImpl::attachThreadedDataReceiver( | 1036 bool WebURLLoaderImpl::attachThreadedDataReceiver( |
| 948 blink::WebThreadedDataReceiver* threaded_data_receiver) { | 1037 blink::WebThreadedDataReceiver* threaded_data_receiver) { |
| 949 return context_->AttachThreadedDataReceiver(threaded_data_receiver); | 1038 return context_->AttachThreadedDataReceiver(threaded_data_receiver); |
| 950 } | 1039 } |
| 951 | 1040 |
| 952 } // namespace content | 1041 } // namespace content |
| OLD | NEW |