| 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 76 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 87 | 87 |
| 88 return job_.get(); | 88 return job_.get(); |
| 89 } | 89 } |
| 90 | 90 |
| 91 void ServiceWorkerControlleeRequestHandler::PrepareForMainResource( | 91 void ServiceWorkerControlleeRequestHandler::PrepareForMainResource( |
| 92 const GURL& url) { | 92 const GURL& url) { |
| 93 DCHECK(job_.get()); | 93 DCHECK(job_.get()); |
| 94 DCHECK(context_); | 94 DCHECK(context_); |
| 95 // The corresponding provider_host may already have associate version in | 95 // The corresponding provider_host may already have associate version in |
| 96 // redirect case, unassociate it now. | 96 // redirect case, unassociate it now. |
| 97 provider_host_->SetActiveVersion(NULL); | 97 provider_host_->UnsetVersion(NULL); |
| 98 provider_host_->SetWaitingVersion(NULL); | |
| 99 | 98 |
| 100 GURL stripped_url = net::SimplifyUrlForRequest(url); | 99 GURL stripped_url = net::SimplifyUrlForRequest(url); |
| 101 provider_host_->SetDocumentUrl(stripped_url); | 100 provider_host_->SetDocumentUrl(stripped_url); |
| 102 context_->storage()->FindRegistrationForDocument( | 101 context_->storage()->FindRegistrationForDocument( |
| 103 stripped_url, | 102 stripped_url, |
| 104 base::Bind(&self::DidLookupRegistrationForMainResource, | 103 base::Bind(&self::DidLookupRegistrationForMainResource, |
| 105 weak_factory_.GetWeakPtr())); | 104 weak_factory_.GetWeakPtr())); |
| 106 } | 105 } |
| 107 | 106 |
| 108 void | 107 void |
| 109 ServiceWorkerControlleeRequestHandler::DidLookupRegistrationForMainResource( | 108 ServiceWorkerControlleeRequestHandler::DidLookupRegistrationForMainResource( |
| 110 ServiceWorkerStatusCode status, | 109 ServiceWorkerStatusCode status, |
| 111 const scoped_refptr<ServiceWorkerRegistration>& registration) { | 110 const scoped_refptr<ServiceWorkerRegistration>& registration) { |
| 112 DCHECK(job_.get()); | 111 DCHECK(job_.get()); |
| 113 if (status != SERVICE_WORKER_OK || !registration->active_version()) { | 112 if (status != SERVICE_WORKER_OK || !registration->active_version()) { |
| 114 // No registration, or no active version for the registration is available. | 113 // No registration, or no active version for the registration is available. |
| 115 job_->FallbackToNetwork(); | 114 job_->FallbackToNetwork(); |
| 116 return; | 115 return; |
| 117 } | 116 } |
| 118 | 117 |
| 119 ServiceWorkerMetrics::CountControlledPageLoad(); | 118 ServiceWorkerMetrics::CountControlledPageLoad(); |
| 120 | 119 |
| 121 // TODO(michaeln): should SetWaitingVersion() even if no active version so | 120 // TODO(michaeln): should SetWaitingVersion() even if no active version so |
| 122 // so the versions in the pipeline (.installing, .waiting) show up in the | 121 // so the versions in the pipeline (.installing, .waiting) show up in the |
| 123 // attribute values. | 122 // attribute values. |
| 124 DCHECK(registration); | 123 DCHECK(registration); |
| 124 provider_host_->SetControllerVersion(registration->active_version()); |
| 125 provider_host_->SetActiveVersion(registration->active_version()); | 125 provider_host_->SetActiveVersion(registration->active_version()); |
| 126 provider_host_->SetWaitingVersion(registration->waiting_version()); | 126 provider_host_->SetWaitingVersion(registration->waiting_version()); |
| 127 job_->ForwardToServiceWorker(); | 127 job_->ForwardToServiceWorker(); |
| 128 } | 128 } |
| 129 | 129 |
| 130 void ServiceWorkerControlleeRequestHandler::PrepareForSubResource() { | 130 void ServiceWorkerControlleeRequestHandler::PrepareForSubResource() { |
| 131 DCHECK(job_.get()); | 131 DCHECK(job_.get()); |
| 132 DCHECK(context_); | 132 DCHECK(context_); |
| 133 DCHECK(provider_host_->active_version()); | 133 DCHECK(provider_host_->active_version()); |
| 134 job_->ForwardToServiceWorker(); | 134 job_->ForwardToServiceWorker(); |
| 135 } | 135 } |
| 136 | 136 |
| 137 } // namespace content | 137 } // namespace content |
| OLD | NEW |