| 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 <stddef.h> | 7 #include <stddef.h> |
| 8 #include <stdint.h> | 8 #include <stdint.h> |
| 9 #include <limits> | 9 #include <limits> |
| 10 #include <map> | 10 #include <map> |
| (...skipping 292 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 303 } | 303 } |
| 304 | 304 |
| 305 void ServiceWorkerURLRequestJob::OnBeforeNetworkStart(net::URLRequest* request, | 305 void ServiceWorkerURLRequestJob::OnBeforeNetworkStart(net::URLRequest* request, |
| 306 bool* defer) { | 306 bool* defer) { |
| 307 NOTREACHED(); | 307 NOTREACHED(); |
| 308 } | 308 } |
| 309 | 309 |
| 310 void ServiceWorkerURLRequestJob::OnResponseStarted(net::URLRequest* request) { | 310 void ServiceWorkerURLRequestJob::OnResponseStarted(net::URLRequest* request) { |
| 311 // TODO(falken): Add Content-Length, Content-Type if they were not provided in | 311 // TODO(falken): Add Content-Length, Content-Type if they were not provided in |
| 312 // the ServiceWorkerResponse. | 312 // the ServiceWorkerResponse. |
| 313 if (response_time_.is_null()) | 313 response_time_ = base::Time::Now(); |
| 314 response_time_ = base::Time::Now(); | |
| 315 CommitResponseHeader(); | 314 CommitResponseHeader(); |
| 316 } | 315 } |
| 317 | 316 |
| 318 void ServiceWorkerURLRequestJob::OnReadCompleted(net::URLRequest* request, | 317 void ServiceWorkerURLRequestJob::OnReadCompleted(net::URLRequest* request, |
| 319 int bytes_read) { | 318 int bytes_read) { |
| 320 if (!request->status().is_success()) { | 319 if (!request->status().is_success()) { |
| 321 RecordResult(ServiceWorkerMetrics::REQUEST_JOB_ERROR_BLOB_READ); | 320 RecordResult(ServiceWorkerMetrics::REQUEST_JOB_ERROR_BLOB_READ); |
| 322 } else if (bytes_read == 0) { | 321 } else if (bytes_read == 0) { |
| 323 RecordResult(ServiceWorkerMetrics::REQUEST_JOB_BLOB_RESPONSE); | 322 RecordResult(ServiceWorkerMetrics::REQUEST_JOB_BLOB_RESPONSE); |
| 324 } | 323 } |
| (...skipping 332 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 657 } | 656 } |
| 658 | 657 |
| 659 // Set up a request for reading the stream. | 658 // Set up a request for reading the stream. |
| 660 if (response.stream_url.is_valid()) { | 659 if (response.stream_url.is_valid()) { |
| 661 DCHECK(response.blob_uuid.empty()); | 660 DCHECK(response.blob_uuid.empty()); |
| 662 SetResponseBodyType(STREAM); | 661 SetResponseBodyType(STREAM); |
| 663 streaming_version_ = version; | 662 streaming_version_ = version; |
| 664 streaming_version_->AddStreamingURLRequestJob(this); | 663 streaming_version_->AddStreamingURLRequestJob(this); |
| 665 response_url_ = response.url; | 664 response_url_ = response.url; |
| 666 service_worker_response_type_ = response.response_type; | 665 service_worker_response_type_ = response.response_type; |
| 667 response_time_ = response.response_time; | |
| 668 CreateResponseHeader( | 666 CreateResponseHeader( |
| 669 response.status_code, response.status_text, response.headers); | 667 response.status_code, response.status_text, response.headers); |
| 670 load_timing_info_.receive_headers_end = base::TimeTicks::Now(); | 668 load_timing_info_.receive_headers_end = base::TimeTicks::Now(); |
| 671 StreamContext* stream_context = | 669 StreamContext* stream_context = |
| 672 GetStreamContextForResourceContext(resource_context_); | 670 GetStreamContextForResourceContext(resource_context_); |
| 673 stream_ = | 671 stream_ = |
| 674 stream_context->registry()->GetStream(response.stream_url); | 672 stream_context->registry()->GetStream(response.stream_url); |
| 675 if (!stream_.get()) { | 673 if (!stream_.get()) { |
| 676 waiting_stream_url_ = response.stream_url; | 674 waiting_stream_url_ = response.stream_url; |
| 677 // Wait for StreamHostMsg_StartBuilding message from the ServiceWorker. | 675 // Wait for StreamHostMsg_StartBuilding message from the ServiceWorker. |
| (...skipping 156 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 834 base::TimeTicks() /* service_worker_ready_time */); | 832 base::TimeTicks() /* service_worker_ready_time */); |
| 835 return; | 833 return; |
| 836 } | 834 } |
| 837 delegate_->OnStartCompleted(true /* was_fetched_via_service_worker */, | 835 delegate_->OnStartCompleted(true /* was_fetched_via_service_worker */, |
| 838 fall_back_required_, response_url_, | 836 fall_back_required_, response_url_, |
| 839 service_worker_response_type_, worker_start_time_, | 837 service_worker_response_type_, worker_start_time_, |
| 840 worker_ready_time_); | 838 worker_ready_time_); |
| 841 } | 839 } |
| 842 | 840 |
| 843 } // namespace content | 841 } // namespace content |
| OLD | NEW |