Chromium Code Reviews| Index: content/browser/service_worker/service_worker_url_request_job.cc |
| diff --git a/content/browser/service_worker/service_worker_url_request_job.cc b/content/browser/service_worker/service_worker_url_request_job.cc |
| index 77a82de84346149dd8e02194c33410b7140a8db7..f462d42b812be9bda60330ccc31e5879cc198488 100644 |
| --- a/content/browser/service_worker/service_worker_url_request_job.cc |
| +++ b/content/browser/service_worker/service_worker_url_request_job.cc |
| @@ -565,7 +565,11 @@ void ServiceWorkerURLRequestJob::DidDispatchFetchEvent( |
| ServiceWorkerFetchEventResult fetch_result, |
| const ServiceWorkerResponse& response, |
| const scoped_refptr<ServiceWorkerVersion>& version) { |
| - fetch_dispatcher_.reset(); |
| + // Do not clear |fetch_dispatcher_| if it has dispached a navigation prelaod |
|
falken
2017/01/18 14:24:58
nit: dispatched
horo
2017/01/18 16:14:57
Done.
|
| + // request to keep the mojom::URLLoader related objects in it. |
|
falken
2017/01/18 14:24:58
Ah, I see... can you add something to the comment
horo
2017/01/18 16:14:57
Yes.
Done.
|
| + if (!did_navigation_preload_) { |
| + fetch_dispatcher_.reset(); |
| + } |
| ServiceWorkerMetrics::RecordFetchEventStatus(IsMainResourceLoad(), status); |
| ServiceWorkerMetrics::URLRequestJobResult result = |
| @@ -879,7 +883,8 @@ void ServiceWorkerURLRequestJob::RequestBodyFileSizesResolved(bool success) { |
| base::Bind(&ServiceWorkerURLRequestJob::DidDispatchFetchEvent, |
| weak_factory_.GetWeakPtr()))); |
| worker_start_time_ = base::TimeTicks::Now(); |
| - fetch_dispatcher_->MaybeStartNavigationPreload(request()); |
| + did_navigation_preload_ = |
| + fetch_dispatcher_->MaybeStartNavigationPreload(request()); |
| fetch_dispatcher_->Run(); |
| } |