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 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
48 base::WeakPtr<storage::BlobStorageContext> blob_storage_context, | 48 base::WeakPtr<storage::BlobStorageContext> blob_storage_context, |
49 FetchRequestMode request_mode, | 49 FetchRequestMode request_mode, |
50 FetchCredentialsMode credentials_mode, | 50 FetchCredentialsMode credentials_mode, |
51 RequestContextType request_context_type, | 51 RequestContextType request_context_type, |
52 RequestContextFrameType frame_type, | 52 RequestContextFrameType frame_type, |
53 scoped_refptr<ResourceRequestBody> body) | 53 scoped_refptr<ResourceRequestBody> body) |
54 : net::URLRequestJob(request, network_delegate), | 54 : net::URLRequestJob(request, network_delegate), |
55 provider_host_(provider_host), | 55 provider_host_(provider_host), |
56 response_type_(NOT_DETERMINED), | 56 response_type_(NOT_DETERMINED), |
57 is_started_(false), | 57 is_started_(false), |
| 58 service_worker_response_type_(blink::WebServiceWorkerResponseTypeDefault), |
58 blob_storage_context_(blob_storage_context), | 59 blob_storage_context_(blob_storage_context), |
59 request_mode_(request_mode), | 60 request_mode_(request_mode), |
60 credentials_mode_(credentials_mode), | 61 credentials_mode_(credentials_mode), |
61 request_context_type_(request_context_type), | 62 request_context_type_(request_context_type), |
62 frame_type_(frame_type), | 63 frame_type_(frame_type), |
63 fall_back_required_(false), | 64 fall_back_required_(false), |
64 body_(body), | 65 body_(body), |
65 weak_factory_(this) { | 66 weak_factory_(this) { |
66 } | 67 } |
67 | 68 |
(...skipping 140 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
208 return NULL; | 209 return NULL; |
209 if (range_response_info_) | 210 if (range_response_info_) |
210 return range_response_info_.get(); | 211 return range_response_info_.get(); |
211 return http_response_info_.get(); | 212 return http_response_info_.get(); |
212 } | 213 } |
213 | 214 |
214 void ServiceWorkerURLRequestJob::GetExtraResponseInfo( | 215 void ServiceWorkerURLRequestJob::GetExtraResponseInfo( |
215 bool* was_fetched_via_service_worker, | 216 bool* was_fetched_via_service_worker, |
216 bool* was_fallback_required_by_service_worker, | 217 bool* was_fallback_required_by_service_worker, |
217 GURL* original_url_via_service_worker, | 218 GURL* original_url_via_service_worker, |
| 219 blink::WebServiceWorkerResponseType* response_type_via_service_worker, |
218 base::TimeTicks* fetch_start_time, | 220 base::TimeTicks* fetch_start_time, |
219 base::TimeTicks* fetch_ready_time, | 221 base::TimeTicks* fetch_ready_time, |
220 base::TimeTicks* fetch_end_time) const { | 222 base::TimeTicks* fetch_end_time) const { |
221 if (response_type_ != FORWARD_TO_SERVICE_WORKER) { | 223 if (response_type_ != FORWARD_TO_SERVICE_WORKER) { |
222 *was_fetched_via_service_worker = false; | 224 *was_fetched_via_service_worker = false; |
223 *was_fallback_required_by_service_worker = false; | 225 *was_fallback_required_by_service_worker = false; |
224 *original_url_via_service_worker = GURL(); | 226 *original_url_via_service_worker = GURL(); |
| 227 *response_type_via_service_worker = |
| 228 blink::WebServiceWorkerResponseTypeDefault; |
225 return; | 229 return; |
226 } | 230 } |
227 *was_fetched_via_service_worker = true; | 231 *was_fetched_via_service_worker = true; |
228 *was_fallback_required_by_service_worker = fall_back_required_; | 232 *was_fallback_required_by_service_worker = fall_back_required_; |
229 *original_url_via_service_worker = response_url_; | 233 *original_url_via_service_worker = response_url_; |
| 234 *response_type_via_service_worker = service_worker_response_type_; |
230 *fetch_start_time = fetch_start_time_; | 235 *fetch_start_time = fetch_start_time_; |
231 *fetch_ready_time = fetch_ready_time_; | 236 *fetch_ready_time = fetch_ready_time_; |
232 *fetch_end_time = fetch_end_time_; | 237 *fetch_end_time = fetch_end_time_; |
233 } | 238 } |
234 | 239 |
235 | 240 |
236 ServiceWorkerURLRequestJob::~ServiceWorkerURLRequestJob() { | 241 ServiceWorkerURLRequestJob::~ServiceWorkerURLRequestJob() { |
237 } | 242 } |
238 | 243 |
239 void ServiceWorkerURLRequestJob::MaybeStartRequest() { | 244 void ServiceWorkerURLRequestJob::MaybeStartRequest() { |
(...skipping 202 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
442 // The renderer gave us a bad blob UUID. | 447 // The renderer gave us a bad blob UUID. |
443 DeliverErrorResponse(); | 448 DeliverErrorResponse(); |
444 return; | 449 return; |
445 } | 450 } |
446 blob_request_ = storage::BlobProtocolHandler::CreateBlobRequest( | 451 blob_request_ = storage::BlobProtocolHandler::CreateBlobRequest( |
447 blob_data_handle.Pass(), request()->context(), this); | 452 blob_data_handle.Pass(), request()->context(), this); |
448 blob_request_->Start(); | 453 blob_request_->Start(); |
449 } | 454 } |
450 | 455 |
451 response_url_ = response.url; | 456 response_url_ = response.url; |
| 457 service_worker_response_type_ = response.response_type; |
452 CreateResponseHeader( | 458 CreateResponseHeader( |
453 response.status_code, response.status_text, response.headers); | 459 response.status_code, response.status_text, response.headers); |
454 load_timing_info_.receive_headers_end = base::TimeTicks::Now(); | 460 load_timing_info_.receive_headers_end = base::TimeTicks::Now(); |
455 if (!blob_request_) | 461 if (!blob_request_) |
456 CommitResponseHeader(); | 462 CommitResponseHeader(); |
457 } | 463 } |
458 | 464 |
459 void ServiceWorkerURLRequestJob::CreateResponseHeader( | 465 void ServiceWorkerURLRequestJob::CreateResponseHeader( |
460 int status_code, | 466 int status_code, |
461 const std::string& status_text, | 467 const std::string& status_text, |
(...skipping 24 matching lines...) Expand all Loading... |
486 | 492 |
487 void ServiceWorkerURLRequestJob::DeliverErrorResponse() { | 493 void ServiceWorkerURLRequestJob::DeliverErrorResponse() { |
488 // TODO(falken): Print an error to the console of the ServiceWorker and of | 494 // TODO(falken): Print an error to the console of the ServiceWorker and of |
489 // the requesting page. | 495 // the requesting page. |
490 CreateResponseHeader( | 496 CreateResponseHeader( |
491 500, "Service Worker Response Error", ServiceWorkerHeaderMap()); | 497 500, "Service Worker Response Error", ServiceWorkerHeaderMap()); |
492 CommitResponseHeader(); | 498 CommitResponseHeader(); |
493 } | 499 } |
494 | 500 |
495 } // namespace content | 501 } // namespace content |
OLD | NEW |