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 e45ca4c7d3f425d276d0c548aa33c3be1e74b974..55b4348a4356d6a21fc262784d88c1c05afbb7a4 100644 |
| --- a/content/browser/service_worker/service_worker_controllee_request_handler.cc |
| +++ b/content/browser/service_worker/service_worker_controllee_request_handler.cc |
| @@ -27,6 +27,23 @@ |
| namespace content { |
| +namespace { |
| + |
| +bool MaybeForwardToServiceWorker(ServiceWorkerURLRequestJob* job, |
| + const ServiceWorkerVersion* version) { |
| + DCHECK(job); |
| + DCHECK(version); |
| + if (version->has_fetch_handler()) { |
| + job->ForwardToServiceWorker(); |
| + return true; |
| + } |
| + |
| + job->FallbackToNetwork(); |
|
horo
2016/06/29 05:38:30
I think this should be FallbackToNetworkOrRenderer
shimazu
2016/07/04 07:50:27
Done.
|
| + return false; |
| +} |
| + |
| +} // namespace |
| + |
| ServiceWorkerControlleeRequestHandler::ServiceWorkerControlleeRequestHandler( |
| base::WeakPtr<ServiceWorkerContextCore> context, |
| base::WeakPtr<ServiceWorkerProviderHost> provider_host, |
| @@ -266,11 +283,15 @@ ServiceWorkerControlleeRequestHandler::DidLookupRegistrationForMainResource( |
| ServiceWorkerMetrics::CountControlledPageLoad( |
| stripped_url_, active_version->has_fetch_handler(), is_main_frame_load_); |
| - job_->ForwardToServiceWorker(); |
| + bool is_forwarded = |
| + MaybeForwardToServiceWorker(job_.get(), active_version.get()); |
| + |
| 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( |
| @@ -294,7 +315,8 @@ void ServiceWorkerControlleeRequestHandler::OnVersionStatusChanged( |
| provider_host_->AssociateRegistration(registration, |
| false /* notify_controllerchange */); |
| - job_->ForwardToServiceWorker(); |
| + |
| + MaybeForwardToServiceWorker(job_.get(), version); |
| } |
| void ServiceWorkerControlleeRequestHandler::DidUpdateRegistration( |
| @@ -364,7 +386,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() { |