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 fdaa81dc171a21d5994968c4e186dc801e295785..72682b3b43182b4b53d2f24daec50befde374450 100644 |
--- a/content/browser/service_worker/service_worker_controllee_request_handler.cc |
+++ b/content/browser/service_worker/service_worker_controllee_request_handler.cc |
@@ -46,13 +46,21 @@ ServiceWorkerControlleeRequestHandler:: |
net::URLRequestJob* ServiceWorkerControlleeRequestHandler::MaybeCreateJob( |
net::URLRequest* request, |
net::NetworkDelegate* network_delegate) { |
- if (!context_ || !provider_host_ || |
- request->load_flags() & net::LOAD_BYPASS_CACHE) { |
+ if (!context_ || !provider_host_) { |
// We can't do anything other than to fall back to network. |
job_ = NULL; |
return NULL; |
} |
+ if (request->load_flags() & net::LOAD_BYPASS_CACHE) { |
+ if (is_main_resource_load_) { |
+ provider_host_->SetDocumentUrl( |
+ net::SimplifyUrlForRequest(request->url())); |
+ } |
+ job_ = NULL; |
+ return NULL; |
+ } |
+ |
// This may get called multiple times for original and redirect requests: |
// A. original request case: job_ is null, no previous location info. |
// B. redirect or restarted request case: |