| 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 a8af415c1c55e750fffe72b5243be9f3263d34f5..3977e3cf3913af6ebd83809cd4f19ad762a0476b 100644
|
| --- a/content/browser/service_worker/service_worker_controllee_request_handler.cc
|
| +++ b/content/browser/service_worker/service_worker_controllee_request_handler.cc
|
| @@ -86,11 +86,8 @@ net::URLRequestJob* ServiceWorkerControlleeRequestHandler::MaybeCreateJob(
|
|
|
| // We've come here by restart, we already have original request and it
|
| // tells we should fallback to network. (Case B-c)
|
| - // Once the request was fallbacked to the network, skip-service-worker flag
|
| - // must be set and the request shoud not go to the service worker.
|
| if ((job_.get() && job_->ShouldFallbackToNetwork()) || skip_service_worker_) {
|
| - skip_service_worker_ = true;
|
| - job_ = NULL;
|
| + FallbackToNetwork();
|
| return NULL;
|
| }
|
|
|
| @@ -112,7 +109,7 @@ net::URLRequestJob* ServiceWorkerControlleeRequestHandler::MaybeCreateJob(
|
| // If we know we can fallback to network at this point (in case
|
| // the storage lookup returned immediately), just return NULL here to
|
| // fallback to network.
|
| - job_ = NULL;
|
| + FallbackToNetwork();
|
| return NULL;
|
| }
|
|
|
| @@ -276,4 +273,13 @@ void ServiceWorkerControlleeRequestHandler::PrepareForSubResource() {
|
| job_->ForwardToServiceWorker();
|
| }
|
|
|
| +void ServiceWorkerControlleeRequestHandler::FallbackToNetwork() {
|
| + // Once a subresource request was fallbacked to the network, we set
|
| + // |skip_service_worker_| because the request should not go to the service
|
| + // worker.
|
| + if (!is_main_resource_load_)
|
| + skip_service_worker_ = true;
|
| + job_ = NULL;
|
| +}
|
| +
|
| } // namespace content
|
|
|