OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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_register_job.h" | 5 #include "content/browser/service_worker/service_worker_register_job.h" |
6 | 6 |
7 #include <vector> | 7 #include <vector> |
8 | 8 |
9 #include "base/message_loop/message_loop.h" | 9 #include "base/message_loop/message_loop.h" |
10 #include "content/browser/service_worker/service_worker_context_core.h" | 10 #include "content/browser/service_worker/service_worker_context_core.h" |
(...skipping 263 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
274 void ServiceWorkerRegisterJob::RegisterAndContinue( | 274 void ServiceWorkerRegisterJob::RegisterAndContinue( |
275 ServiceWorkerStatusCode status) { | 275 ServiceWorkerStatusCode status) { |
276 SetPhase(REGISTER); | 276 SetPhase(REGISTER); |
277 if (status != SERVICE_WORKER_OK) { | 277 if (status != SERVICE_WORKER_OK) { |
278 Complete(status); | 278 Complete(status); |
279 return; | 279 return; |
280 } | 280 } |
281 | 281 |
282 set_registration(new ServiceWorkerRegistration( | 282 set_registration(new ServiceWorkerRegistration( |
283 pattern_, context_->storage()->NewRegistrationId(), context_)); | 283 pattern_, context_->storage()->NewRegistrationId(), context_)); |
284 AssociateProviderHostsToRegistration(registration()); | 284 NotifyProviderHostsForRegistration(registration()); |
285 UpdateAndContinue(); | 285 UpdateAndContinue(); |
286 } | 286 } |
287 | 287 |
288 void ServiceWorkerRegisterJob::WaitForUninstall( | 288 void ServiceWorkerRegisterJob::WaitForUninstall( |
289 const scoped_refptr<ServiceWorkerRegistration>& existing_registration) { | 289 const scoped_refptr<ServiceWorkerRegistration>& existing_registration) { |
290 SetPhase(WAIT_FOR_UNINSTALL); | 290 SetPhase(WAIT_FOR_UNINSTALL); |
291 set_uninstalling_registration(existing_registration); | 291 set_uninstalling_registration(existing_registration); |
292 uninstalling_registration()->AddListener(this); | 292 uninstalling_registration()->AddListener(this); |
293 } | 293 } |
294 | 294 |
(...skipping 268 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
563 ResolvePromise(SERVICE_WORKER_OK, std::string(), registration()); | 563 ResolvePromise(SERVICE_WORKER_OK, std::string(), registration()); |
564 Complete(SERVICE_WORKER_ERROR_EXISTS); | 564 Complete(SERVICE_WORKER_ERROR_EXISTS); |
565 return; | 565 return; |
566 } | 566 } |
567 | 567 |
568 // Proceed with really starting the worker. | 568 // Proceed with really starting the worker. |
569 new_version()->embedded_worker()->ResumeAfterDownload(); | 569 new_version()->embedded_worker()->ResumeAfterDownload(); |
570 new_version()->embedded_worker()->RemoveListener(this); | 570 new_version()->embedded_worker()->RemoveListener(this); |
571 } | 571 } |
572 | 572 |
573 void ServiceWorkerRegisterJob::AssociateProviderHostsToRegistration( | 573 void ServiceWorkerRegisterJob::NotifyProviderHostsForRegistration( |
574 ServiceWorkerRegistration* registration) { | 574 ServiceWorkerRegistration* registration) { |
575 DCHECK(registration); | 575 DCHECK(registration); |
576 for (scoped_ptr<ServiceWorkerContextCore::ProviderHostIterator> it = | 576 for (scoped_ptr<ServiceWorkerContextCore::ProviderHostIterator> it = |
577 context_->GetProviderHostIterator(); | 577 context_->GetProviderHostIterator(); |
578 !it->IsAtEnd(); it->Advance()) { | 578 !it->IsAtEnd(); it->Advance()) { |
579 ServiceWorkerProviderHost* host = it->GetProviderHost(); | 579 ServiceWorkerProviderHost* host = it->GetProviderHost(); |
580 if (ServiceWorkerUtils::ScopeMatches(registration->pattern(), | 580 if (!ServiceWorkerUtils::ScopeMatches(registration->pattern(), |
581 host->document_url())) { | 581 host->document_url())) |
582 if (host->CanAssociateRegistration(registration)) | 582 continue; |
583 host->AssociateRegistration(registration); | 583 host->AddPotentialRegistration(registration); |
584 } | |
585 } | 584 } |
586 } | 585 } |
587 | 586 |
588 } // namespace content | 587 } // namespace content |
OLD | NEW |