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 e06e5935e242c6eada3978d177e1aeeb823458eb..53fe6973bd37ff6312aee772156abe5f015bb97e 100644 |
| --- a/content/browser/service_worker/service_worker_url_request_job.cc |
| +++ b/content/browser/service_worker/service_worker_url_request_job.cc |
| @@ -22,6 +22,7 @@ |
| #include "base/threading/thread_task_runner_handle.h" |
| #include "base/time/time.h" |
| #include "content/browser/resource_context_impl.h" |
| +#include "content/browser/service_worker/embedded_worker_instance.h" |
| #include "content/browser/service_worker/service_worker_fetch_dispatcher.h" |
| #include "content/browser/service_worker/service_worker_provider_host.h" |
| #include "content/browser/service_worker/service_worker_response_info.h" |
| @@ -632,9 +633,18 @@ void ServiceWorkerURLRequestJob::CreateRequestBodyBlob(std::string* blob_uuid, |
| *blob_size = total_size; |
| } |
| -void ServiceWorkerURLRequestJob::DidPrepareFetchEvent() { |
| +void ServiceWorkerURLRequestJob::DidPrepareFetchEvent( |
| + const scoped_refptr<ServiceWorkerVersion>& version) { |
|
falken
2016/06/07 06:20:30
const scoped_refptr& is deprecated. Now we use sco
horo
2016/06/07 06:58:48
Done.
|
| worker_ready_time_ = base::TimeTicks::Now(); |
| load_timing_info_.send_start = worker_ready_time_; |
| + if (resource_type_ == RESOURCE_TYPE_MAIN_FRAME && worker_already_activated_ && |
| + !(version->skip_recording_startup_time() && |
| + initial_worker_status_ != EmbeddedWorkerStatus::RUNNING) && |
|
falken
2016/06/07 06:20:30
Doesn't that mean ServiceWorker.ActivatedWorkerPre
horo
2016/06/07 06:58:48
"!(version->skip_recording_startup_time() &&
in
|
| + !ServiceWorkerMetrics::ShouldExcludeURLFromHistogram(request()->url())) { |
| + ServiceWorkerMetrics::RecordActivatedWorkerPreparationTimeForMainFrame( |
| + worker_ready_time_ - request()->creation_time(), initial_worker_status_, |
| + version->embedded_worker()->start_situation()); |
| + } |
| } |
| void ServiceWorkerURLRequestJob::DidDispatchFetchEvent( |
| @@ -962,11 +972,15 @@ void ServiceWorkerURLRequestJob::RequestBodyBlobsCompleted(bool success) { |
| return; |
| } |
| + worker_already_activated_ = |
| + active_worker->status() == ServiceWorkerVersion::ACTIVATED; |
| + initial_worker_status_ = active_worker->running_status(); |
| + |
| DCHECK(!fetch_dispatcher_); |
| fetch_dispatcher_.reset(new ServiceWorkerFetchDispatcher( |
| CreateFetchRequest(), active_worker, resource_type_, |
| base::Bind(&ServiceWorkerURLRequestJob::DidPrepareFetchEvent, |
| - weak_factory_.GetWeakPtr()), |
| + weak_factory_.GetWeakPtr(), active_worker), |
| base::Bind(&ServiceWorkerURLRequestJob::DidDispatchFetchEvent, |
| weak_factory_.GetWeakPtr()))); |
| worker_start_time_ = base::TimeTicks::Now(); |