Chromium Code Reviews| 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 7b9b35c2f65f13ebd0b38aab55b6107763f09df3..9c24bc37bcf29c0d040c30399558424bcf596332 100644 |
| --- a/content/browser/service_worker/service_worker_controllee_request_handler.cc |
| +++ b/content/browser/service_worker/service_worker_controllee_request_handler.cc |
| @@ -26,6 +26,23 @@ |
| namespace content { |
| +namespace { |
| + |
| +bool MaybeForwardToServiceWorker(ServiceWorkerURLRequestJob* job, |
| + ServiceWorkerVersion* version) { |
|
falken
2016/05/31 02:24:51
nit: const SWVersion*
shimazu
2016/05/31 04:15:10
Done.
|
| + DCHECK(job); |
| + DCHECK(version); |
| + if (version->has_fetch_handler()) { |
| + job->ForwardToServiceWorker(); |
| + return true; |
| + } |
| + |
| + job->FallbackToNetwork(); |
| + return false; |
| +} |
| + |
| +} // namespace |
| + |
| ServiceWorkerControlleeRequestHandler::ServiceWorkerControlleeRequestHandler( |
| base::WeakPtr<ServiceWorkerContextCore> context, |
| base::WeakPtr<ServiceWorkerProviderHost> provider_host, |
| @@ -251,15 +268,15 @@ ServiceWorkerControlleeRequestHandler::DidLookupRegistrationForMainResource( |
| } |
| ServiceWorkerMetrics::CountControlledPageLoad(stripped_url_); |
| + bool is_forwarded = |
| + MaybeForwardToServiceWorker(job_.get(), active_version.get()); |
| - job_->ForwardToServiceWorker(); |
| TRACE_EVENT_ASYNC_END2( |
| "ServiceWorker", |
| "ServiceWorkerControlleeRequestHandler::PrepareForMainResource", |
| - job_.get(), |
| - "Status", status, |
| - "Info", |
| - "Forwarded to the ServiceWorker"); |
| + job_.get(), "Status", status, "Info", |
| + (is_forwarded) ? "Forwarded to the ServiceWorker" |
| + : "Skipped the ServiceWorker which has no fetch handler"); |
| } |
| void ServiceWorkerControlleeRequestHandler::OnVersionStatusChanged( |
| @@ -282,7 +299,8 @@ void ServiceWorkerControlleeRequestHandler::OnVersionStatusChanged( |
| provider_host_->AssociateRegistration(registration, |
| false /* notify_controllerchange */); |
| - job_->ForwardToServiceWorker(); |
| + |
| + MaybeForwardToServiceWorker(job_.get(), version); |
| } |
| void ServiceWorkerControlleeRequestHandler::DidUpdateRegistration( |
| @@ -352,7 +370,7 @@ void ServiceWorkerControlleeRequestHandler::PrepareForSubResource() { |
| DCHECK(job_.get()); |
| DCHECK(context_); |
| DCHECK(provider_host_->active_version()); |
| - job_->ForwardToServiceWorker(); |
| + MaybeForwardToServiceWorker(job_.get(), provider_host_->active_version()); |
| } |
| void ServiceWorkerControlleeRequestHandler::OnPrepareToRestart() { |