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 278 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
289 if (range_response_info_) | 289 if (range_response_info_) |
290 return range_response_info_.get(); | 290 return range_response_info_.get(); |
291 return http_response_info_.get(); | 291 return http_response_info_.get(); |
292 } | 292 } |
293 | 293 |
294 void ServiceWorkerURLRequestJob::GetExtraResponseInfo( | 294 void ServiceWorkerURLRequestJob::GetExtraResponseInfo( |
295 bool* was_fetched_via_service_worker, | 295 bool* was_fetched_via_service_worker, |
296 bool* was_fallback_required_by_service_worker, | 296 bool* was_fallback_required_by_service_worker, |
297 GURL* original_url_via_service_worker, | 297 GURL* original_url_via_service_worker, |
298 blink::WebServiceWorkerResponseType* response_type_via_service_worker, | 298 blink::WebServiceWorkerResponseType* response_type_via_service_worker, |
299 base::TimeTicks* worker_start_time) const { | 299 base::TimeTicks* worker_start_time, |
| 300 base::TimeTicks* worker_ready_time) const { |
300 if (response_type_ != FORWARD_TO_SERVICE_WORKER) { | 301 if (response_type_ != FORWARD_TO_SERVICE_WORKER) { |
301 *was_fetched_via_service_worker = false; | 302 *was_fetched_via_service_worker = false; |
302 *was_fallback_required_by_service_worker = false; | 303 *was_fallback_required_by_service_worker = false; |
303 *original_url_via_service_worker = GURL(); | 304 *original_url_via_service_worker = GURL(); |
304 *response_type_via_service_worker = | 305 *response_type_via_service_worker = |
305 blink::WebServiceWorkerResponseTypeDefault; | 306 blink::WebServiceWorkerResponseTypeDefault; |
306 return; | 307 return; |
307 } | 308 } |
308 *was_fetched_via_service_worker = true; | 309 *was_fetched_via_service_worker = true; |
309 *was_fallback_required_by_service_worker = fall_back_required_; | 310 *was_fallback_required_by_service_worker = fall_back_required_; |
310 *original_url_via_service_worker = response_url_; | 311 *original_url_via_service_worker = response_url_; |
311 *response_type_via_service_worker = service_worker_response_type_; | 312 *response_type_via_service_worker = service_worker_response_type_; |
312 *worker_start_time = worker_start_time_; | 313 *worker_start_time = worker_start_time_; |
| 314 *worker_ready_time = worker_ready_time_; |
313 } | 315 } |
314 | 316 |
315 | 317 |
316 ServiceWorkerURLRequestJob::~ServiceWorkerURLRequestJob() { | 318 ServiceWorkerURLRequestJob::~ServiceWorkerURLRequestJob() { |
317 ClearStream(); | 319 ClearStream(); |
318 } | 320 } |
319 | 321 |
320 void ServiceWorkerURLRequestJob::MaybeStartRequest() { | 322 void ServiceWorkerURLRequestJob::MaybeStartRequest() { |
321 if (is_started_ && response_type_ != NOT_DETERMINED) { | 323 if (is_started_ && response_type_ != NOT_DETERMINED) { |
322 // Start asynchronously. | 324 // Start asynchronously. |
(...skipping 141 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
464 } | 466 } |
465 | 467 |
466 request_body_blob_data_handle_ = | 468 request_body_blob_data_handle_ = |
467 blob_storage_context_->AddFinishedBlob(&blob_builder); | 469 blob_storage_context_->AddFinishedBlob(&blob_builder); |
468 *blob_uuid = uuid; | 470 *blob_uuid = uuid; |
469 *blob_size = total_size; | 471 *blob_size = total_size; |
470 return true; | 472 return true; |
471 } | 473 } |
472 | 474 |
473 void ServiceWorkerURLRequestJob::DidPrepareFetchEvent() { | 475 void ServiceWorkerURLRequestJob::DidPrepareFetchEvent() { |
474 load_timing_info_.send_start = base::TimeTicks::Now(); | 476 worker_ready_time_ = base::TimeTicks::Now(); |
| 477 load_timing_info_.send_start = worker_ready_time_; |
475 } | 478 } |
476 | 479 |
477 void ServiceWorkerURLRequestJob::DidDispatchFetchEvent( | 480 void ServiceWorkerURLRequestJob::DidDispatchFetchEvent( |
478 ServiceWorkerStatusCode status, | 481 ServiceWorkerStatusCode status, |
479 ServiceWorkerFetchEventResult fetch_result, | 482 ServiceWorkerFetchEventResult fetch_result, |
480 const ServiceWorkerResponse& response, | 483 const ServiceWorkerResponse& response, |
481 scoped_refptr<ServiceWorkerVersion> version) { | 484 scoped_refptr<ServiceWorkerVersion> version) { |
482 fetch_dispatcher_.reset(); | 485 fetch_dispatcher_.reset(); |
483 | 486 |
484 // Check if we're not orphaned. | 487 // Check if we're not orphaned. |
(...skipping 159 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
644 } | 647 } |
645 if (!waiting_stream_url_.is_empty()) { | 648 if (!waiting_stream_url_.is_empty()) { |
646 StreamRegistry* stream_registry = | 649 StreamRegistry* stream_registry = |
647 GetStreamContextForResourceContext(resource_context_)->registry(); | 650 GetStreamContextForResourceContext(resource_context_)->registry(); |
648 stream_registry->RemoveRegisterObserver(waiting_stream_url_); | 651 stream_registry->RemoveRegisterObserver(waiting_stream_url_); |
649 stream_registry->AbortPendingStream(waiting_stream_url_); | 652 stream_registry->AbortPendingStream(waiting_stream_url_); |
650 } | 653 } |
651 } | 654 } |
652 | 655 |
653 } // namespace content | 656 } // namespace content |
OLD | NEW |