Index: content/browser/service_worker/service_worker_controllee_request_handler.cc |
diff --git a/content/browser/service_worker/service_worker_controllee_request_handler.cc b/content/browser/service_worker/service_worker_controllee_request_handler.cc |
index 3ac742ca3d8a95c82a60c98a1d5d66292ae9f3f8..2ef8b6fa823ceb1d09b7560f006321453480e732 100644 |
--- a/content/browser/service_worker/service_worker_controllee_request_handler.cc |
+++ b/content/browser/service_worker/service_worker_controllee_request_handler.cc |
@@ -64,6 +64,11 @@ net::URLRequestJob* ServiceWorkerControlleeRequestHandler::MaybeCreateJob( |
net::URLRequest* request, |
net::NetworkDelegate* network_delegate, |
ResourceContext* resource_context) { |
+ if (job_.get() && worker_start_time_.is_null()) { |
+ // Save worker-start time of the first job. |
+ worker_start_time_ = job_->worker_start_time(); |
+ } |
+ |
if (!context_ || !provider_host_) { |
// We can't do anything other than to fall back to network. |
job_ = NULL; |
@@ -119,12 +124,17 @@ void ServiceWorkerControlleeRequestHandler::GetExtraResponseInfo( |
*was_fetched_via_service_worker = false; |
*was_fallback_required_by_service_worker = false; |
*original_url_via_service_worker = GURL(); |
+ *worker_start_time = worker_start_time_; |
return; |
} |
job_->GetExtraResponseInfo( |
was_fetched_via_service_worker, was_fallback_required_by_service_worker, |
original_url_via_service_worker, response_type_via_service_worker, |
worker_start_time); |
+ if (!worker_start_time_.is_null()) { |
+ // If we have worker start time from previous job, use it. |
+ *worker_start_time = worker_start_time_; |
+ } |
} |
void ServiceWorkerControlleeRequestHandler::PrepareForMainResource( |