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 613 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
624 const StatusCallback& callback) { | 624 const StatusCallback& callback) { |
625 job_coordinator_->AbortAll(); | 625 job_coordinator_->AbortAll(); |
626 storage_->DeleteAndStartOver(callback); | 626 storage_->DeleteAndStartOver(callback); |
627 } | 627 } |
628 | 628 |
629 std::unique_ptr<ServiceWorkerProviderHost> | 629 std::unique_ptr<ServiceWorkerProviderHost> |
630 ServiceWorkerContextCore::TransferProviderHostOut(int process_id, | 630 ServiceWorkerContextCore::TransferProviderHostOut(int process_id, |
631 int provider_id) { | 631 int provider_id) { |
632 ProviderMap* map = GetProviderMapForProcess(process_id); | 632 ProviderMap* map = GetProviderMapForProcess(process_id); |
633 ServiceWorkerProviderHost* transferee = map->Lookup(provider_id); | 633 ServiceWorkerProviderHost* transferee = map->Lookup(provider_id); |
634 ServiceWorkerProviderHost* replacement = | 634 ServiceWorkerProviderHost* replacement = new ServiceWorkerProviderHost( |
635 new ServiceWorkerProviderHost(process_id, | 635 process_id, transferee->frame_id(), provider_id, |
636 transferee->frame_id(), | 636 transferee->provider_type(), transferee->is_parent_frame_secure(), |
637 provider_id, | 637 AsWeakPtr(), transferee->dispatcher_host()); |
638 transferee->provider_type(), | |
639 AsWeakPtr(), | |
640 transferee->dispatcher_host()); | |
641 map->Replace(provider_id, replacement); | 638 map->Replace(provider_id, replacement); |
642 transferee->PrepareForCrossSiteTransfer(); | 639 transferee->PrepareForCrossSiteTransfer(); |
643 return base::WrapUnique(transferee); | 640 return base::WrapUnique(transferee); |
644 } | 641 } |
645 | 642 |
646 void ServiceWorkerContextCore::TransferProviderHostIn( | 643 bool ServiceWorkerContextCore::TransferProviderHostIn( |
647 int new_process_id, | 644 int new_process_id, |
648 int new_provider_id, | 645 int new_provider_id, |
649 std::unique_ptr<ServiceWorkerProviderHost> transferee) { | 646 std::unique_ptr<ServiceWorkerProviderHost> transferee) { |
650 ProviderMap* map = GetProviderMapForProcess(new_process_id); | 647 ProviderMap* map = GetProviderMapForProcess(new_process_id); |
651 ServiceWorkerProviderHost* temp = map->Lookup(new_provider_id); | 648 ServiceWorkerProviderHost* temp = map->Lookup(new_provider_id); |
652 if (!temp) | 649 if (!temp) |
653 return; | 650 return false; |
horo
2016/06/03 09:54:44
Do we need the returned value?
falken
2016/06/03 12:10:45
Not anymore. Failed partial revert. Done.
| |
654 | 651 |
655 DCHECK(temp->document_url().is_empty()); | 652 DCHECK(temp->document_url().is_empty()); |
656 transferee->CompleteCrossSiteTransfer(new_process_id, | 653 transferee->CompleteCrossSiteTransfer(new_process_id, |
657 temp->frame_id(), | 654 temp->frame_id(), |
658 new_provider_id, | 655 new_provider_id, |
659 temp->provider_type(), | 656 temp->provider_type(), |
660 temp->dispatcher_host()); | 657 temp->dispatcher_host()); |
661 map->Replace(new_provider_id, transferee.release()); | 658 map->Replace(new_provider_id, transferee.release()); |
662 delete temp; | 659 delete temp; |
660 return true; | |
663 } | 661 } |
664 | 662 |
665 void ServiceWorkerContextCore::ClearAllServiceWorkersForTest( | 663 void ServiceWorkerContextCore::ClearAllServiceWorkersForTest( |
666 const base::Closure& callback) { | 664 const base::Closure& callback) { |
667 DCHECK_CURRENTLY_ON(BrowserThread::IO); | 665 DCHECK_CURRENTLY_ON(BrowserThread::IO); |
668 // |callback| will be called in the destructor of |helper| on the UI thread. | 666 // |callback| will be called in the destructor of |helper| on the UI thread. |
669 scoped_refptr<ClearAllServiceWorkersHelper> helper( | 667 scoped_refptr<ClearAllServiceWorkersHelper> helper( |
670 new ClearAllServiceWorkersHelper(callback)); | 668 new ClearAllServiceWorkersHelper(callback)); |
671 if (!was_service_worker_registered_) | 669 if (!was_service_worker_registered_) |
672 return; | 670 return; |
(...skipping 177 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
850 } | 848 } |
851 | 849 |
852 void ServiceWorkerContextCore::OnRegistrationFinishedForCheckHasServiceWorker( | 850 void ServiceWorkerContextCore::OnRegistrationFinishedForCheckHasServiceWorker( |
853 const ServiceWorkerContext::CheckHasServiceWorkerCallback callback, | 851 const ServiceWorkerContext::CheckHasServiceWorkerCallback callback, |
854 const scoped_refptr<ServiceWorkerRegistration>& registration) { | 852 const scoped_refptr<ServiceWorkerRegistration>& registration) { |
855 callback.Run(registration->active_version() || | 853 callback.Run(registration->active_version() || |
856 registration->waiting_version()); | 854 registration->waiting_version()); |
857 } | 855 } |
858 | 856 |
859 } // namespace content | 857 } // namespace content |
OLD | NEW |