| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "content/browser/service_worker/service_worker_controllee_request_handl
er.h" | 5 #include "content/browser/service_worker/service_worker_controllee_request_handl
er.h" |
| 6 | 6 |
| 7 #include "content/browser/service_worker/service_worker_context_core.h" | 7 #include "content/browser/service_worker/service_worker_context_core.h" |
| 8 #include "content/browser/service_worker/service_worker_metrics.h" | 8 #include "content/browser/service_worker/service_worker_metrics.h" |
| 9 #include "content/browser/service_worker/service_worker_provider_host.h" | 9 #include "content/browser/service_worker/service_worker_provider_host.h" |
| 10 #include "content/browser/service_worker/service_worker_registration.h" | 10 #include "content/browser/service_worker/service_worker_registration.h" |
| (...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 108 original_url_via_service_worker); | 108 original_url_via_service_worker); |
| 109 } | 109 } |
| 110 | 110 |
| 111 void ServiceWorkerControlleeRequestHandler::PrepareForMainResource( | 111 void ServiceWorkerControlleeRequestHandler::PrepareForMainResource( |
| 112 const GURL& url) { | 112 const GURL& url) { |
| 113 DCHECK(job_.get()); | 113 DCHECK(job_.get()); |
| 114 DCHECK(context_); | 114 DCHECK(context_); |
| 115 // The corresponding provider_host may already have associated a registration | 115 // The corresponding provider_host may already have associated a registration |
| 116 // in redirect case, unassociate it now. | 116 // in redirect case, unassociate it now. |
| 117 provider_host_->UnassociateRegistration(); | 117 provider_host_->UnassociateRegistration(); |
| 118 provider_host_->SetControllerVersion(NULL); | |
| 119 | 118 |
| 120 GURL stripped_url = net::SimplifyUrlForRequest(url); | 119 GURL stripped_url = net::SimplifyUrlForRequest(url); |
| 121 provider_host_->SetDocumentUrl(stripped_url); | 120 provider_host_->SetDocumentUrl(stripped_url); |
| 122 context_->storage()->FindRegistrationForDocument( | 121 context_->storage()->FindRegistrationForDocument( |
| 123 stripped_url, | 122 stripped_url, |
| 124 base::Bind(&self::DidLookupRegistrationForMainResource, | 123 base::Bind(&self::DidLookupRegistrationForMainResource, |
| 125 weak_factory_.GetWeakPtr())); | 124 weak_factory_.GetWeakPtr())); |
| 126 } | 125 } |
| 127 | 126 |
| 128 void | 127 void |
| (...skipping 30 matching lines...) Expand all Loading... |
| 159 return; | 158 return; |
| 160 } | 159 } |
| 161 | 160 |
| 162 if (!active_version || | 161 if (!active_version || |
| 163 active_version->status() != ServiceWorkerVersion::ACTIVATED) { | 162 active_version->status() != ServiceWorkerVersion::ACTIVATED) { |
| 164 job_->FallbackToNetwork(); | 163 job_->FallbackToNetwork(); |
| 165 return; | 164 return; |
| 166 } | 165 } |
| 167 | 166 |
| 168 provider_host_->AssociateRegistration(registration); | 167 provider_host_->AssociateRegistration(registration); |
| 169 provider_host_->SetControllerVersion(registration->active_version()); | |
| 170 | |
| 171 job_->ForwardToServiceWorker(); | 168 job_->ForwardToServiceWorker(); |
| 172 } | 169 } |
| 173 | 170 |
| 174 void ServiceWorkerControlleeRequestHandler::OnVersionStatusChanged( | 171 void ServiceWorkerControlleeRequestHandler::OnVersionStatusChanged( |
| 175 ServiceWorkerRegistration* registration, | 172 ServiceWorkerRegistration* registration, |
| 176 ServiceWorkerVersion* version) { | 173 ServiceWorkerVersion* version) { |
| 177 if (version != registration->active_version() || | 174 if (version != registration->active_version() || |
| 178 version->status() != ServiceWorkerVersion::ACTIVATED) { | 175 version->status() != ServiceWorkerVersion::ACTIVATED) { |
| 179 job_->FallbackToNetwork(); | 176 job_->FallbackToNetwork(); |
| 180 return; | 177 return; |
| 181 } | 178 } |
| 182 | 179 |
| 183 provider_host_->AssociateRegistration(registration); | 180 provider_host_->AssociateRegistration(registration); |
| 184 provider_host_->SetControllerVersion(registration->active_version()); | |
| 185 | |
| 186 job_->ForwardToServiceWorker(); | 181 job_->ForwardToServiceWorker(); |
| 187 } | 182 } |
| 188 | 183 |
| 189 void ServiceWorkerControlleeRequestHandler::PrepareForSubResource() { | 184 void ServiceWorkerControlleeRequestHandler::PrepareForSubResource() { |
| 190 DCHECK(job_.get()); | 185 DCHECK(job_.get()); |
| 191 DCHECK(context_); | 186 DCHECK(context_); |
| 192 DCHECK(provider_host_->active_version()); | 187 DCHECK(provider_host_->active_version()); |
| 193 job_->ForwardToServiceWorker(); | 188 job_->ForwardToServiceWorker(); |
| 194 } | 189 } |
| 195 | 190 |
| 196 } // namespace content | 191 } // namespace content |
| OLD | NEW |