Index: content/browser/service_worker/service_worker_url_request_job.cc |
diff --git a/content/browser/service_worker/service_worker_url_request_job.cc b/content/browser/service_worker/service_worker_url_request_job.cc |
index 17afffd832b3ff2034d3603455bf7516d1fec3c4..bd1abd9236ae430afa3308a252a71eb847dec0ea 100644 |
--- a/content/browser/service_worker/service_worker_url_request_job.cc |
+++ b/content/browser/service_worker/service_worker_url_request_job.cc |
@@ -490,6 +490,9 @@ void ServiceWorkerURLRequestJob::DidDispatchFetchEvent( |
if (status != SERVICE_WORKER_OK) { |
// TODO(falken): Add UMA and the report error to the version. |
if (is_main_resource_load_) { |
+ // Using the service worker failed, so fallback to network. Detach the |
+ // controller so subresource requests also skip the worker. |
+ provider_host_->NotifyControllerLost(); |
response_type_ = FALLBACK_TO_NETWORK; |
NotifyRestartRequired(); |
} else { |