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 | 9 |
10 #include <map> | 10 #include <map> |
(...skipping 547 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
558 ServiceWorkerMetrics::RecordActivatedWorkerPreparationTimeForMainFrame( | 558 ServiceWorkerMetrics::RecordActivatedWorkerPreparationTimeForMainFrame( |
559 worker_ready_time_ - request()->creation_time(), initial_worker_status_, | 559 worker_ready_time_ - request()->creation_time(), initial_worker_status_, |
560 version->embedded_worker()->start_situation()); | 560 version->embedded_worker()->start_situation()); |
561 } | 561 } |
562 | 562 |
563 void ServiceWorkerURLRequestJob::DidDispatchFetchEvent( | 563 void ServiceWorkerURLRequestJob::DidDispatchFetchEvent( |
564 ServiceWorkerStatusCode status, | 564 ServiceWorkerStatusCode status, |
565 ServiceWorkerFetchEventResult fetch_result, | 565 ServiceWorkerFetchEventResult fetch_result, |
566 const ServiceWorkerResponse& response, | 566 const ServiceWorkerResponse& response, |
567 const scoped_refptr<ServiceWorkerVersion>& version) { | 567 const scoped_refptr<ServiceWorkerVersion>& version) { |
568 fetch_dispatcher_.reset(); | 568 // Do not clear |fetch_dispatcher_| if it has dispatched a navigation prelaod |
falken
2017/01/19 05:26:47
preload
horo
2017/01/19 05:48:57
Done.
| |
569 // request to keep the mojom::URLLoader related objects in it, because the | |
570 // preload response might still need to be streamed even after calling | |
571 // respondWith(). | |
572 if (!did_navigation_preload_) { | |
573 fetch_dispatcher_.reset(); | |
574 } | |
569 ServiceWorkerMetrics::RecordFetchEventStatus(IsMainResourceLoad(), status); | 575 ServiceWorkerMetrics::RecordFetchEventStatus(IsMainResourceLoad(), status); |
570 | 576 |
571 ServiceWorkerMetrics::URLRequestJobResult result = | 577 ServiceWorkerMetrics::URLRequestJobResult result = |
572 ServiceWorkerMetrics::REQUEST_JOB_ERROR_BAD_DELEGATE; | 578 ServiceWorkerMetrics::REQUEST_JOB_ERROR_BAD_DELEGATE; |
573 if (!delegate_->RequestStillValid(&result)) { | 579 if (!delegate_->RequestStillValid(&result)) { |
574 RecordResult(result); | 580 RecordResult(result); |
575 DeliverErrorResponse(); | 581 DeliverErrorResponse(); |
576 return; | 582 return; |
577 } | 583 } |
578 | 584 |
(...skipping 293 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
872 | 878 |
873 DCHECK(!fetch_dispatcher_); | 879 DCHECK(!fetch_dispatcher_); |
874 fetch_dispatcher_.reset(new ServiceWorkerFetchDispatcher( | 880 fetch_dispatcher_.reset(new ServiceWorkerFetchDispatcher( |
875 CreateFetchRequest(), active_worker, resource_type_, timeout_, | 881 CreateFetchRequest(), active_worker, resource_type_, timeout_, |
876 request()->net_log(), | 882 request()->net_log(), |
877 base::Bind(&ServiceWorkerURLRequestJob::DidPrepareFetchEvent, | 883 base::Bind(&ServiceWorkerURLRequestJob::DidPrepareFetchEvent, |
878 weak_factory_.GetWeakPtr(), active_worker), | 884 weak_factory_.GetWeakPtr(), active_worker), |
879 base::Bind(&ServiceWorkerURLRequestJob::DidDispatchFetchEvent, | 885 base::Bind(&ServiceWorkerURLRequestJob::DidDispatchFetchEvent, |
880 weak_factory_.GetWeakPtr()))); | 886 weak_factory_.GetWeakPtr()))); |
881 worker_start_time_ = base::TimeTicks::Now(); | 887 worker_start_time_ = base::TimeTicks::Now(); |
882 fetch_dispatcher_->MaybeStartNavigationPreload(request()); | 888 did_navigation_preload_ = |
889 fetch_dispatcher_->MaybeStartNavigationPreload(request()); | |
883 fetch_dispatcher_->Run(); | 890 fetch_dispatcher_->Run(); |
884 } | 891 } |
885 | 892 |
886 } // namespace content | 893 } // namespace content |
OLD | NEW |