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 |