| 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 9bf56fd1fd1f37d1e848cdb5154dbd82753c1261..eda30303181dcab876e8e6ab9d7746857e91e4a7 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->FallbackToNetworkOrRenderer();
|
| + 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() {
|
|
|