Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(73)

Side by Side Diff: content/browser/service_worker/service_worker_context_core.cc

Issue 2888043006: ServiceWorker: Refactor CrossSiteTransfer on ServiceWorkerProviderHost (Closed)
Patch Set: Created 3 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | content/browser/service_worker/service_worker_provider_host.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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
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
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
OLDNEW
« no previous file with comments | « no previous file | content/browser/service_worker/service_worker_provider_host.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698