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_context_core.h" | 5 #include "content/browser/service_worker/service_worker_context_core.h" |
6 | 6 |
7 #include <limits> | 7 #include <limits> |
8 #include <set> | 8 #include <set> |
9 #include <utility> | 9 #include <utility> |
10 | 10 |
(...skipping 663 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
674 const StatusCallback& callback) { | 674 const StatusCallback& callback) { |
675 job_coordinator_->AbortAll(); | 675 job_coordinator_->AbortAll(); |
676 storage_->DeleteAndStartOver(callback); | 676 storage_->DeleteAndStartOver(callback); |
677 } | 677 } |
678 | 678 |
679 std::unique_ptr<ServiceWorkerProviderHost> | 679 std::unique_ptr<ServiceWorkerProviderHost> |
680 ServiceWorkerContextCore::TransferProviderHostOut(int process_id, | 680 ServiceWorkerContextCore::TransferProviderHostOut(int process_id, |
681 int provider_id) { | 681 int provider_id) { |
682 ProviderMap* map = GetProviderMapForProcess(process_id); | 682 ProviderMap* map = GetProviderMapForProcess(process_id); |
683 ServiceWorkerProviderHost* transferee = map->Lookup(provider_id); | 683 ServiceWorkerProviderHost* transferee = map->Lookup(provider_id); |
684 std::unique_ptr<ServiceWorkerProviderHost> replacement = | 684 std::unique_ptr<ServiceWorkerProviderHost> provisional_host = |
685 transferee->PrepareForCrossSiteTransfer(); | 685 transferee->PrepareForCrossSiteTransfer(); |
686 return map->Replace(provider_id, std::move(replacement)); | 686 return map->Replace(provider_id, std::move(provisional_host)); |
687 } | 687 } |
688 | 688 |
689 void ServiceWorkerContextCore::TransferProviderHostIn( | 689 void ServiceWorkerContextCore::TransferProviderHostIn( |
690 int new_process_id, | 690 int new_process_id, |
691 int new_provider_id, | 691 int new_provider_id, |
692 std::unique_ptr<ServiceWorkerProviderHost> transferee) { | 692 std::unique_ptr<ServiceWorkerProviderHost> transferee) { |
693 ProviderMap* map = GetProviderMapForProcess(new_process_id); | 693 ProviderMap* map = GetProviderMapForProcess(new_process_id); |
694 ServiceWorkerProviderHost* temp = map->Lookup(new_provider_id); | 694 ServiceWorkerProviderHost* provisional_host = map->Lookup(new_provider_id); |
695 if (!temp) | 695 if (!provisional_host) |
696 return; | 696 return; |
697 | 697 |
698 DCHECK(temp->document_url().is_empty()); | 698 DCHECK(provisional_host->document_url().is_empty()); |
699 transferee->CompleteCrossSiteTransfer(new_process_id, | 699 transferee->CompleteCrossSiteTransfer(provisional_host); |
700 temp->frame_id(), | |
701 new_provider_id, | |
702 temp->provider_type(), | |
703 temp->dispatcher_host()); | |
704 map->Replace(new_provider_id, std::move(transferee)); | 700 map->Replace(new_provider_id, std::move(transferee)); |
705 } | 701 } |
706 | 702 |
707 void ServiceWorkerContextCore::ClearAllServiceWorkersForTest( | 703 void ServiceWorkerContextCore::ClearAllServiceWorkersForTest( |
708 const base::Closure& callback) { | 704 const base::Closure& callback) { |
709 DCHECK_CURRENTLY_ON(BrowserThread::IO); | 705 DCHECK_CURRENTLY_ON(BrowserThread::IO); |
710 // |callback| will be called in the destructor of |helper| on the UI thread. | 706 // |callback| will be called in the destructor of |helper| on the UI thread. |
711 scoped_refptr<ClearAllServiceWorkersHelper> helper( | 707 scoped_refptr<ClearAllServiceWorkersHelper> helper( |
712 new ClearAllServiceWorkersHelper(callback)); | 708 new ClearAllServiceWorkersHelper(callback)); |
713 if (!was_service_worker_registered_) | 709 if (!was_service_worker_registered_) |
(...skipping 204 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
918 int service_worker_provider_id, | 914 int service_worker_provider_id, |
919 mojom::ServiceWorkerWorkerClientAssociatedPtrInfo client_ptr_info) { | 915 mojom::ServiceWorkerWorkerClientAssociatedPtrInfo client_ptr_info) { |
920 ServiceWorkerProviderHost* provider_host = | 916 ServiceWorkerProviderHost* provider_host = |
921 GetProviderHost(render_process_id, service_worker_provider_id); | 917 GetProviderHost(render_process_id, service_worker_provider_id); |
922 if (!provider_host) | 918 if (!provider_host) |
923 return; | 919 return; |
924 provider_host->BindWorkerFetchContext(std::move(client_ptr_info)); | 920 provider_host->BindWorkerFetchContext(std::move(client_ptr_info)); |
925 } | 921 } |
926 | 922 |
927 } // namespace content | 923 } // namespace content |
OLD | NEW |