| 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_wrapper.h" | 5 #include "content/browser/service_worker/service_worker_context_wrapper.h" |
| 6 | 6 |
| 7 #include <map> | 7 #include <map> |
| 8 #include <set> | 8 #include <set> |
| 9 #include <string> | 9 #include <string> |
| 10 #include <utility> | 10 #include <utility> |
| (...skipping 25 matching lines...) Expand all Loading... |
| 36 #include "storage/browser/quota/special_storage_policy.h" | 36 #include "storage/browser/quota/special_storage_policy.h" |
| 37 | 37 |
| 38 namespace content { | 38 namespace content { |
| 39 | 39 |
| 40 namespace { | 40 namespace { |
| 41 | 41 |
| 42 typedef std::set<std::string> HeaderNameSet; | 42 typedef std::set<std::string> HeaderNameSet; |
| 43 base::LazyInstance<HeaderNameSet>::DestructorAtExit g_excluded_header_name_set = | 43 base::LazyInstance<HeaderNameSet>::DestructorAtExit g_excluded_header_name_set = |
| 44 LAZY_INSTANCE_INITIALIZER; | 44 LAZY_INSTANCE_INITIALIZER; |
| 45 | 45 |
| 46 void RunSoon(const base::Closure& closure) { | 46 void RunSoonFunctionNumber21(const base::Closure& closure) { |
| 47 base::ThreadTaskRunnerHandle::Get()->PostTask(FROM_HERE, closure); | 47 base::ThreadTaskRunnerHandle::Get()->PostTask(FROM_HERE, closure); |
| 48 } | 48 } |
| 49 | 49 |
| 50 void WorkerStarted(const ServiceWorkerContextWrapper::StatusCallback& callback, | 50 void WorkerStarted(const ServiceWorkerContextWrapper::StatusCallback& callback, |
| 51 ServiceWorkerStatusCode status) { | 51 ServiceWorkerStatusCode status) { |
| 52 DCHECK_CURRENTLY_ON(BrowserThread::IO); | 52 DCHECK_CURRENTLY_ON(BrowserThread::IO); |
| 53 BrowserThread::PostTask(BrowserThread::UI, FROM_HERE, | 53 BrowserThread::PostTask(BrowserThread::UI, FROM_HERE, |
| 54 base::Bind(callback, status)); | 54 base::Bind(callback, status)); |
| 55 } | 55 } |
| 56 | 56 |
| (...skipping 583 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 640 net::SimplifyUrlForRequest(document_url), | 640 net::SimplifyUrlForRequest(document_url), |
| 641 base::Bind(&ServiceWorkerContextWrapper::DidFindRegistrationForFindReady, | 641 base::Bind(&ServiceWorkerContextWrapper::DidFindRegistrationForFindReady, |
| 642 this, callback)); | 642 this, callback)); |
| 643 } | 643 } |
| 644 | 644 |
| 645 void ServiceWorkerContextWrapper::FindReadyRegistrationForPattern( | 645 void ServiceWorkerContextWrapper::FindReadyRegistrationForPattern( |
| 646 const GURL& scope, | 646 const GURL& scope, |
| 647 const FindRegistrationCallback& callback) { | 647 const FindRegistrationCallback& callback) { |
| 648 DCHECK_CURRENTLY_ON(BrowserThread::IO); | 648 DCHECK_CURRENTLY_ON(BrowserThread::IO); |
| 649 if (!context_core_) { | 649 if (!context_core_) { |
| 650 RunSoon(base::Bind(callback, SERVICE_WORKER_ERROR_ABORT, nullptr)); | 650 RunSoonFunctionNumber21(base::Bind(callback, SERVICE_WORKER_ERROR_ABORT, nul
lptr)); |
| 651 return; | 651 return; |
| 652 } | 652 } |
| 653 context_core_->storage()->FindRegistrationForPattern( | 653 context_core_->storage()->FindRegistrationForPattern( |
| 654 net::SimplifyUrlForRequest(scope), | 654 net::SimplifyUrlForRequest(scope), |
| 655 base::Bind(&ServiceWorkerContextWrapper::DidFindRegistrationForFindReady, | 655 base::Bind(&ServiceWorkerContextWrapper::DidFindRegistrationForFindReady, |
| 656 this, callback)); | 656 this, callback)); |
| 657 } | 657 } |
| 658 | 658 |
| 659 void ServiceWorkerContextWrapper::FindReadyRegistrationForId( | 659 void ServiceWorkerContextWrapper::FindReadyRegistrationForId( |
| 660 int64_t registration_id, | 660 int64_t registration_id, |
| (...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 732 callback.Run(SERVICE_WORKER_ERROR_NOT_FOUND, nullptr); | 732 callback.Run(SERVICE_WORKER_ERROR_NOT_FOUND, nullptr); |
| 733 return; | 733 return; |
| 734 } | 734 } |
| 735 callback.Run(SERVICE_WORKER_OK, registration); | 735 callback.Run(SERVICE_WORKER_OK, registration); |
| 736 } | 736 } |
| 737 | 737 |
| 738 void ServiceWorkerContextWrapper::GetAllRegistrations( | 738 void ServiceWorkerContextWrapper::GetAllRegistrations( |
| 739 const GetRegistrationsInfosCallback& callback) { | 739 const GetRegistrationsInfosCallback& callback) { |
| 740 DCHECK_CURRENTLY_ON(BrowserThread::IO); | 740 DCHECK_CURRENTLY_ON(BrowserThread::IO); |
| 741 if (!context_core_) { | 741 if (!context_core_) { |
| 742 RunSoon(base::Bind(callback, SERVICE_WORKER_ERROR_ABORT, | 742 RunSoonFunctionNumber21(base::Bind(callback, SERVICE_WORKER_ERROR_ABORT, |
| 743 std::vector<ServiceWorkerRegistrationInfo>())); | 743 std::vector<ServiceWorkerRegistrationInfo>())); |
| 744 return; | 744 return; |
| 745 } | 745 } |
| 746 context_core_->storage()->GetAllRegistrationsInfos(callback); | 746 context_core_->storage()->GetAllRegistrationsInfos(callback); |
| 747 } | 747 } |
| 748 | 748 |
| 749 void ServiceWorkerContextWrapper::GetRegistrationUserData( | 749 void ServiceWorkerContextWrapper::GetRegistrationUserData( |
| 750 int64_t registration_id, | 750 int64_t registration_id, |
| 751 const std::vector<std::string>& keys, | 751 const std::vector<std::string>& keys, |
| 752 const GetUserDataCallback& callback) { | 752 const GetUserDataCallback& callback) { |
| 753 DCHECK_CURRENTLY_ON(BrowserThread::IO); | 753 DCHECK_CURRENTLY_ON(BrowserThread::IO); |
| 754 if (!context_core_) { | 754 if (!context_core_) { |
| 755 RunSoon(base::Bind(callback, std::vector<std::string>(), | 755 RunSoonFunctionNumber21(base::Bind(callback, std::vector<std::string>(), |
| 756 SERVICE_WORKER_ERROR_ABORT)); | 756 SERVICE_WORKER_ERROR_ABORT)); |
| 757 return; | 757 return; |
| 758 } | 758 } |
| 759 context_core_->storage()->GetUserData(registration_id, keys, callback); | 759 context_core_->storage()->GetUserData(registration_id, keys, callback); |
| 760 } | 760 } |
| 761 | 761 |
| 762 void ServiceWorkerContextWrapper::GetRegistrationUserDataByKeyPrefix( | 762 void ServiceWorkerContextWrapper::GetRegistrationUserDataByKeyPrefix( |
| 763 int64_t registration_id, | 763 int64_t registration_id, |
| 764 const std::string& key_prefix, | 764 const std::string& key_prefix, |
| 765 const GetUserDataCallback& callback) { | 765 const GetUserDataCallback& callback) { |
| 766 DCHECK_CURRENTLY_ON(BrowserThread::IO); | 766 DCHECK_CURRENTLY_ON(BrowserThread::IO); |
| 767 if (!context_core_) { | 767 if (!context_core_) { |
| 768 RunSoon(base::Bind(callback, std::vector<std::string>(), | 768 RunSoonFunctionNumber21(base::Bind(callback, std::vector<std::string>(), |
| 769 SERVICE_WORKER_ERROR_ABORT)); | 769 SERVICE_WORKER_ERROR_ABORT)); |
| 770 return; | 770 return; |
| 771 } | 771 } |
| 772 context_core_->storage()->GetUserDataByKeyPrefix(registration_id, key_prefix, | 772 context_core_->storage()->GetUserDataByKeyPrefix(registration_id, key_prefix, |
| 773 callback); | 773 callback); |
| 774 } | 774 } |
| 775 | 775 |
| 776 void ServiceWorkerContextWrapper::StoreRegistrationUserData( | 776 void ServiceWorkerContextWrapper::StoreRegistrationUserData( |
| 777 int64_t registration_id, | 777 int64_t registration_id, |
| 778 const GURL& origin, | 778 const GURL& origin, |
| 779 const std::vector<std::pair<std::string, std::string>>& key_value_pairs, | 779 const std::vector<std::pair<std::string, std::string>>& key_value_pairs, |
| 780 const StatusCallback& callback) { | 780 const StatusCallback& callback) { |
| 781 DCHECK_CURRENTLY_ON(BrowserThread::IO); | 781 DCHECK_CURRENTLY_ON(BrowserThread::IO); |
| 782 if (!context_core_) { | 782 if (!context_core_) { |
| 783 RunSoon(base::Bind(callback, SERVICE_WORKER_ERROR_ABORT)); | 783 RunSoonFunctionNumber21(base::Bind(callback, SERVICE_WORKER_ERROR_ABORT)); |
| 784 return; | 784 return; |
| 785 } | 785 } |
| 786 context_core_->storage()->StoreUserData(registration_id, origin.GetOrigin(), | 786 context_core_->storage()->StoreUserData(registration_id, origin.GetOrigin(), |
| 787 key_value_pairs, callback); | 787 key_value_pairs, callback); |
| 788 } | 788 } |
| 789 | 789 |
| 790 void ServiceWorkerContextWrapper::ClearRegistrationUserData( | 790 void ServiceWorkerContextWrapper::ClearRegistrationUserData( |
| 791 int64_t registration_id, | 791 int64_t registration_id, |
| 792 const std::vector<std::string>& keys, | 792 const std::vector<std::string>& keys, |
| 793 const StatusCallback& callback) { | 793 const StatusCallback& callback) { |
| 794 DCHECK_CURRENTLY_ON(BrowserThread::IO); | 794 DCHECK_CURRENTLY_ON(BrowserThread::IO); |
| 795 if (!context_core_) { | 795 if (!context_core_) { |
| 796 RunSoon(base::Bind(callback, SERVICE_WORKER_ERROR_ABORT)); | 796 RunSoonFunctionNumber21(base::Bind(callback, SERVICE_WORKER_ERROR_ABORT)); |
| 797 return; | 797 return; |
| 798 } | 798 } |
| 799 context_core_->storage()->ClearUserData(registration_id, keys, callback); | 799 context_core_->storage()->ClearUserData(registration_id, keys, callback); |
| 800 } | 800 } |
| 801 | 801 |
| 802 void ServiceWorkerContextWrapper::GetUserDataForAllRegistrations( | 802 void ServiceWorkerContextWrapper::GetUserDataForAllRegistrations( |
| 803 const std::string& key, | 803 const std::string& key, |
| 804 const GetUserDataForAllRegistrationsCallback& callback) { | 804 const GetUserDataForAllRegistrationsCallback& callback) { |
| 805 DCHECK_CURRENTLY_ON(BrowserThread::IO); | 805 DCHECK_CURRENTLY_ON(BrowserThread::IO); |
| 806 if (!context_core_) { | 806 if (!context_core_) { |
| 807 RunSoon(base::Bind(callback, std::vector<std::pair<int64_t, std::string>>(), | 807 RunSoonFunctionNumber21(base::Bind(callback, std::vector<std::pair<int64_t,
std::string>>(), |
| 808 SERVICE_WORKER_ERROR_ABORT)); | 808 SERVICE_WORKER_ERROR_ABORT)); |
| 809 return; | 809 return; |
| 810 } | 810 } |
| 811 context_core_->storage()->GetUserDataForAllRegistrations(key, callback); | 811 context_core_->storage()->GetUserDataForAllRegistrations(key, callback); |
| 812 } | 812 } |
| 813 | 813 |
| 814 void ServiceWorkerContextWrapper::GetUserDataForAllRegistrationsByKeyPrefix( | 814 void ServiceWorkerContextWrapper::GetUserDataForAllRegistrationsByKeyPrefix( |
| 815 const std::string& key_prefix, | 815 const std::string& key_prefix, |
| 816 const GetUserDataForAllRegistrationsCallback& callback) { | 816 const GetUserDataForAllRegistrationsCallback& callback) { |
| 817 DCHECK_CURRENTLY_ON(BrowserThread::IO); | 817 DCHECK_CURRENTLY_ON(BrowserThread::IO); |
| 818 if (!context_core_) { | 818 if (!context_core_) { |
| 819 RunSoon(base::Bind(callback, std::vector<std::pair<int64_t, std::string>>(), | 819 RunSoonFunctionNumber21(base::Bind(callback, std::vector<std::pair<int64_t,
std::string>>(), |
| 820 SERVICE_WORKER_ERROR_ABORT)); | 820 SERVICE_WORKER_ERROR_ABORT)); |
| 821 return; | 821 return; |
| 822 } | 822 } |
| 823 context_core_->storage()->GetUserDataForAllRegistrationsByKeyPrefix( | 823 context_core_->storage()->GetUserDataForAllRegistrationsByKeyPrefix( |
| 824 key_prefix, callback); | 824 key_prefix, callback); |
| 825 } | 825 } |
| 826 | 826 |
| 827 void ServiceWorkerContextWrapper::AddObserver( | 827 void ServiceWorkerContextWrapper::AddObserver( |
| 828 ServiceWorkerContextCoreObserver* observer) { | 828 ServiceWorkerContextCoreObserver* observer) { |
| 829 core_observer_list_->AddObserver(observer); | 829 core_observer_list_->AddObserver(observer); |
| (...skipping 202 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1032 service_worker_provider_id, | 1032 service_worker_provider_id, |
| 1033 std::move(client_ptr_info)); | 1033 std::move(client_ptr_info)); |
| 1034 } | 1034 } |
| 1035 | 1035 |
| 1036 ServiceWorkerContextCore* ServiceWorkerContextWrapper::context() { | 1036 ServiceWorkerContextCore* ServiceWorkerContextWrapper::context() { |
| 1037 DCHECK_CURRENTLY_ON(BrowserThread::IO); | 1037 DCHECK_CURRENTLY_ON(BrowserThread::IO); |
| 1038 return context_core_.get(); | 1038 return context_core_.get(); |
| 1039 } | 1039 } |
| 1040 | 1040 |
| 1041 } // namespace content | 1041 } // namespace content |
| OLD | NEW |