Chromium Code Reviews| Index: content/browser/service_worker/service_worker_context_wrapper.cc |
| diff --git a/content/browser/service_worker/service_worker_context_wrapper.cc b/content/browser/service_worker/service_worker_context_wrapper.cc |
| index 5298a24f7a823fa3f444f8e0969e074d601158d5..ba130bd37e383ffc6e0f219308853b5c6edaa84f 100644 |
| --- a/content/browser/service_worker/service_worker_context_wrapper.cc |
| +++ b/content/browser/service_worker/service_worker_context_wrapper.cc |
| @@ -6,6 +6,7 @@ |
| #include <map> |
| +#include "base/barrier_closure.h" |
| #include "base/files/file_path.h" |
| #include "base/logging.h" |
| #include "base/threading/sequenced_worker_pool.h" |
| @@ -13,6 +14,7 @@ |
| #include "content/browser/service_worker/service_worker_context_core.h" |
| #include "content/browser/service_worker/service_worker_context_observer.h" |
| #include "content/browser/service_worker/service_worker_process_manager.h" |
| +#include "content/browser/service_worker/service_worker_quota_client.h" |
| #include "content/public/browser/browser_context.h" |
| #include "content/public/browser/browser_thread.h" |
| #include "net/url_request/url_request_context_getter.h" |
| @@ -183,35 +185,26 @@ void ServiceWorkerContextWrapper::DidGetAllRegistrationsForGetAllOrigins( |
| } |
| namespace { |
| +void ConvertUnregisterToBool( |
|
jsbell
2014/10/13 20:54:25
How about: StatusCodeToBoolCallbackAdapter ?
dmurph
2014/10/14 00:16:31
Done.
|
| + const ServiceWorkerContext::ResultCallback& callback, |
| + ServiceWorkerStatusCode code) { |
| + callback.Run(code == ServiceWorkerStatusCode::SERVICE_WORKER_OK); |
| +} |
| void EmptySuccessCallback(bool success) { |
| } |
| - |
| } // namespace |
| -void ServiceWorkerContextWrapper::DeleteForOrigin(const GURL& origin_url) { |
| +void ServiceWorkerContextWrapper::DeleteForOrigin( |
| + const GURL& origin_url, |
| + const ResultCallback& result) { |
| DCHECK_CURRENTLY_ON(BrowserThread::IO); |
| - context_core_->storage()->GetAllRegistrations(base::Bind( |
| - &ServiceWorkerContextWrapper::DidGetAllRegistrationsForDeleteForOrigin, |
| - this, |
| - origin_url)); |
| + context_core_->UnregisterServiceWorkers( |
| + origin_url, base::Bind(&ConvertUnregisterToBool, result)); |
| } |
| -void ServiceWorkerContextWrapper::DidGetAllRegistrationsForDeleteForOrigin( |
| - const GURL& origin, |
| - const std::vector<ServiceWorkerRegistrationInfo>& registrations) { |
| - DCHECK_CURRENTLY_ON(BrowserThread::IO); |
| - |
| - for (std::vector<ServiceWorkerRegistrationInfo>::const_iterator it = |
| - registrations.begin(); |
| - it != registrations.end(); |
| - ++it) { |
| - const ServiceWorkerRegistrationInfo& registration_info = *it; |
| - if (origin == registration_info.pattern.GetOrigin()) { |
| - UnregisterServiceWorker(registration_info.pattern, |
| - base::Bind(&EmptySuccessCallback)); |
| - } |
| - } |
| +void ServiceWorkerContextWrapper::DeleteForOrigin(const GURL& origin_url) { |
| + DeleteForOrigin(origin_url, base::Bind(&EmptySuccessCallback)); |
| } |
| void ServiceWorkerContextWrapper::AddObserver( |
| @@ -256,6 +249,9 @@ void ServiceWorkerContextWrapper::InitInternal( |
| return; |
| } |
| DCHECK(!context_core_); |
| + if (quota_manager_proxy) { |
| + quota_manager_proxy->RegisterClient(new ServiceWorkerQuotaClient(this)); |
| + } |
| context_core_.reset(new ServiceWorkerContextCore(user_data_directory, |
| stores_task_runner, |
| database_task_runner, |