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..181dc951909e50900f54fc224d36a7786fc0904e 100644 |
--- a/content/browser/service_worker/service_worker_controllee_request_handler.cc |
+++ b/content/browser/service_worker/service_worker_controllee_request_handler.cc |
@@ -252,7 +252,11 @@ ServiceWorkerControlleeRequestHandler::DidLookupRegistrationForMainResource( |
ServiceWorkerMetrics::CountControlledPageLoad(stripped_url_); |
- job_->ForwardToServiceWorker(); |
+ if (!active_version->has_fetch_handler()) |
+ job_->FallbackToNetwork(); |
+ else |
+ job_->ForwardToServiceWorker(); |
+ |
TRACE_EVENT_ASYNC_END2( |
"ServiceWorker", |
"ServiceWorkerControlleeRequestHandler::PrepareForMainResource", |
@@ -282,7 +286,11 @@ void ServiceWorkerControlleeRequestHandler::OnVersionStatusChanged( |
provider_host_->AssociateRegistration(registration, |
false /* notify_controllerchange */); |
- job_->ForwardToServiceWorker(); |
+ |
+ if (!version->has_fetch_handler()) |
+ job_->FallbackToNetwork(); |
+ else |
+ job_->ForwardToServiceWorker(); |
} |
void ServiceWorkerControlleeRequestHandler::DidUpdateRegistration( |
@@ -352,7 +360,10 @@ void ServiceWorkerControlleeRequestHandler::PrepareForSubResource() { |
DCHECK(job_.get()); |
DCHECK(context_); |
DCHECK(provider_host_->active_version()); |
- job_->ForwardToServiceWorker(); |
+ if (!provider_host_->active_version()->has_fetch_handler()) |
+ job_->FallbackToNetwork(); |
+ else |
+ job_->ForwardToServiceWorker(); |
falken
2016/05/27 09:53:34
Can you factor out these three blocks into a helpe
shimazu
2016/05/30 05:41:59
I roughly checked the performance improvements by
|
} |
void ServiceWorkerControlleeRequestHandler::OnPrepareToRestart() { |