| 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 #include "content/browser/service_worker/service_worker_url_request_job.h" | 5 #include "content/browser/service_worker/service_worker_url_request_job.h" |
| 6 | 6 |
| 7 #include <map> | 7 #include <map> |
| 8 #include <string> | 8 #include <string> |
| 9 #include <vector> | 9 #include <vector> |
| 10 | 10 |
| (...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 97 } // namespace | 97 } // namespace |
| 98 | 98 |
| 99 ServiceWorkerURLRequestJob::ServiceWorkerURLRequestJob( | 99 ServiceWorkerURLRequestJob::ServiceWorkerURLRequestJob( |
| 100 net::URLRequest* request, | 100 net::URLRequest* request, |
| 101 net::NetworkDelegate* network_delegate, | 101 net::NetworkDelegate* network_delegate, |
| 102 base::WeakPtr<ServiceWorkerProviderHost> provider_host, | 102 base::WeakPtr<ServiceWorkerProviderHost> provider_host, |
| 103 base::WeakPtr<storage::BlobStorageContext> blob_storage_context, | 103 base::WeakPtr<storage::BlobStorageContext> blob_storage_context, |
| 104 const ResourceContext* resource_context, | 104 const ResourceContext* resource_context, |
| 105 FetchRequestMode request_mode, | 105 FetchRequestMode request_mode, |
| 106 FetchCredentialsMode credentials_mode, | 106 FetchCredentialsMode credentials_mode, |
| 107 FetchRedirectMode redirect_mode, |
| 107 bool is_main_resource_load, | 108 bool is_main_resource_load, |
| 108 RequestContextType request_context_type, | 109 RequestContextType request_context_type, |
| 109 RequestContextFrameType frame_type, | 110 RequestContextFrameType frame_type, |
| 110 scoped_refptr<ResourceRequestBody> body) | 111 scoped_refptr<ResourceRequestBody> body) |
| 111 : net::URLRequestJob(request, network_delegate), | 112 : net::URLRequestJob(request, network_delegate), |
| 112 provider_host_(provider_host), | 113 provider_host_(provider_host), |
| 113 response_type_(NOT_DETERMINED), | 114 response_type_(NOT_DETERMINED), |
| 114 is_started_(false), | 115 is_started_(false), |
| 115 service_worker_response_type_(blink::WebServiceWorkerResponseTypeDefault), | 116 service_worker_response_type_(blink::WebServiceWorkerResponseTypeDefault), |
| 116 blob_storage_context_(blob_storage_context), | 117 blob_storage_context_(blob_storage_context), |
| 117 resource_context_(resource_context), | 118 resource_context_(resource_context), |
| 118 stream_pending_buffer_size_(0), | 119 stream_pending_buffer_size_(0), |
| 119 request_mode_(request_mode), | 120 request_mode_(request_mode), |
| 120 credentials_mode_(credentials_mode), | 121 credentials_mode_(credentials_mode), |
| 122 redirect_mode_(redirect_mode), |
| 121 is_main_resource_load_(is_main_resource_load), | 123 is_main_resource_load_(is_main_resource_load), |
| 122 request_context_type_(request_context_type), | 124 request_context_type_(request_context_type), |
| 123 frame_type_(frame_type), | 125 frame_type_(frame_type), |
| 124 fall_back_required_(false), | 126 fall_back_required_(false), |
| 125 body_(body), | 127 body_(body), |
| 126 weak_factory_(this) { | 128 weak_factory_(this) {} |
| 127 } | |
| 128 | 129 |
| 129 void ServiceWorkerURLRequestJob::FallbackToNetwork() { | 130 void ServiceWorkerURLRequestJob::FallbackToNetwork() { |
| 130 DCHECK_EQ(NOT_DETERMINED, response_type_); | 131 DCHECK_EQ(NOT_DETERMINED, response_type_); |
| 131 response_type_ = FALLBACK_TO_NETWORK; | 132 response_type_ = FALLBACK_TO_NETWORK; |
| 132 MaybeStartRequest(); | 133 MaybeStartRequest(); |
| 133 } | 134 } |
| 134 | 135 |
| 135 void ServiceWorkerURLRequestJob::ForwardToServiceWorker() { | 136 void ServiceWorkerURLRequestJob::ForwardToServiceWorker() { |
| 136 DCHECK_EQ(NOT_DETERMINED, response_type_); | 137 DCHECK_EQ(NOT_DETERMINED, response_type_); |
| 137 response_type_ = FORWARD_TO_SERVICE_WORKER; | 138 response_type_ = FORWARD_TO_SERVICE_WORKER; |
| (...skipping 337 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 475 request->method = request_->method(); | 476 request->method = request_->method(); |
| 476 const net::HttpRequestHeaders& headers = request_->extra_request_headers(); | 477 const net::HttpRequestHeaders& headers = request_->extra_request_headers(); |
| 477 for (net::HttpRequestHeaders::Iterator it(headers); it.GetNext();) { | 478 for (net::HttpRequestHeaders::Iterator it(headers); it.GetNext();) { |
| 478 if (ServiceWorkerContext::IsExcludedHeaderNameForFetchEvent(it.name())) | 479 if (ServiceWorkerContext::IsExcludedHeaderNameForFetchEvent(it.name())) |
| 479 continue; | 480 continue; |
| 480 request->headers[it.name()] = it.value(); | 481 request->headers[it.name()] = it.value(); |
| 481 } | 482 } |
| 482 request->blob_uuid = blob_uuid; | 483 request->blob_uuid = blob_uuid; |
| 483 request->blob_size = blob_size; | 484 request->blob_size = blob_size; |
| 484 request->credentials_mode = credentials_mode_; | 485 request->credentials_mode = credentials_mode_; |
| 486 request->redirect_mode = redirect_mode_; |
| 485 const ResourceRequestInfo* info = ResourceRequestInfo::ForRequest(request_); | 487 const ResourceRequestInfo* info = ResourceRequestInfo::ForRequest(request_); |
| 486 if (info) { | 488 if (info) { |
| 487 request->is_reload = ui::PageTransitionCoreTypeIs( | 489 request->is_reload = ui::PageTransitionCoreTypeIs( |
| 488 info->GetPageTransition(), ui::PAGE_TRANSITION_RELOAD); | 490 info->GetPageTransition(), ui::PAGE_TRANSITION_RELOAD); |
| 489 request->referrer = | 491 request->referrer = |
| 490 Referrer(GURL(request_->referrer()), info->GetReferrerPolicy()); | 492 Referrer(GURL(request_->referrer()), info->GetReferrerPolicy()); |
| 491 } else { | 493 } else { |
| 492 CHECK( | 494 CHECK( |
| 493 request_->referrer_policy() == | 495 request_->referrer_policy() == |
| 494 net::URLRequest::CLEAR_REFERRER_ON_TRANSITION_FROM_SECURE_TO_INSECURE); | 496 net::URLRequest::CLEAR_REFERRER_ON_TRANSITION_FROM_SECURE_TO_INSECURE); |
| (...skipping 307 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 802 } | 804 } |
| 803 if (!waiting_stream_url_.is_empty()) { | 805 if (!waiting_stream_url_.is_empty()) { |
| 804 StreamRegistry* stream_registry = | 806 StreamRegistry* stream_registry = |
| 805 GetStreamContextForResourceContext(resource_context_)->registry(); | 807 GetStreamContextForResourceContext(resource_context_)->registry(); |
| 806 stream_registry->RemoveRegisterObserver(waiting_stream_url_); | 808 stream_registry->RemoveRegisterObserver(waiting_stream_url_); |
| 807 stream_registry->AbortPendingStream(waiting_stream_url_); | 809 stream_registry->AbortPendingStream(waiting_stream_url_); |
| 808 } | 810 } |
| 809 } | 811 } |
| 810 | 812 |
| 811 } // namespace content | 813 } // namespace content |
| OLD | NEW |