| Index: content/browser/payments/payment_app_context_impl.cc
|
| diff --git a/content/browser/payments/payment_app_context_impl.cc b/content/browser/payments/payment_app_context_impl.cc
|
| index 2565567a5e68e025fe168a7b55fda0731f75f66e..37a3fcbf4bdefeb7366d0a38c75f728eb33b4f10 100644
|
| --- a/content/browser/payments/payment_app_context_impl.cc
|
| +++ b/content/browser/payments/payment_app_context_impl.cc
|
| @@ -9,47 +9,57 @@
|
| #include "base/bind.h"
|
| #include "base/memory/ptr_util.h"
|
| #include "base/stl_util.h"
|
| +#include "content/browser/payments/payment_app_database.h"
|
| #include "content/browser/payments/payment_app_manager.h"
|
| -#include "content/browser/service_worker/service_worker_context_wrapper.h"
|
| #include "content/public/browser/browser_thread.h"
|
|
|
| namespace content {
|
|
|
| -PaymentAppContextImpl::PaymentAppContextImpl(
|
| - scoped_refptr<ServiceWorkerContextWrapper> service_worker_context)
|
| - : service_worker_context_(std::move(service_worker_context)) {
|
| +PaymentAppContextImpl::PaymentAppContextImpl() : is_shutdown_(false) {
|
| DCHECK_CURRENTLY_ON(BrowserThread::UI);
|
| }
|
|
|
| -void PaymentAppContextImpl::Shutdown() {
|
| +void PaymentAppContextImpl::Init(
|
| + scoped_refptr<ServiceWorkerContextWrapper> service_worker_context) {
|
| DCHECK_CURRENTLY_ON(BrowserThread::UI);
|
| + DCHECK(!is_shutdown_);
|
|
|
| BrowserThread::PostTask(
|
| BrowserThread::IO, FROM_HERE,
|
| - base::Bind(&PaymentAppContextImpl::ShutdownOnIO, this));
|
| + base::Bind(&PaymentAppContextImpl::CreatePaymentAppDatabaseOnIO, this,
|
| + service_worker_context));
|
| +}
|
| +
|
| +void PaymentAppContextImpl::Shutdown() {
|
| + DCHECK_CURRENTLY_ON(BrowserThread::UI);
|
| +
|
| + BrowserThread::PostTaskAndReply(
|
| + BrowserThread::IO, FROM_HERE,
|
| + base::Bind(&PaymentAppContextImpl::ShutdownOnIO, this),
|
| + base::Bind(&PaymentAppContextImpl::DidShutdown, this));
|
| }
|
|
|
| -void PaymentAppContextImpl::CreateService(
|
| +void PaymentAppContextImpl::CreatePaymentAppManager(
|
| mojo::InterfaceRequest<payments::mojom::PaymentAppManager> request) {
|
| DCHECK_CURRENTLY_ON(BrowserThread::UI);
|
|
|
| BrowserThread::PostTask(
|
| BrowserThread::IO, FROM_HERE,
|
| - base::Bind(&PaymentAppContextImpl::CreateServiceOnIOThread, this,
|
| + base::Bind(&PaymentAppContextImpl::CreatePaymentAppManagerOnIO, this,
|
| base::Passed(&request)));
|
| }
|
|
|
| -void PaymentAppContextImpl::ServiceHadConnectionError(
|
| - PaymentAppManager* service) {
|
| +void PaymentAppContextImpl::PaymentAppManagerHadConnectionError(
|
| + PaymentAppManager* payment_app_manager) {
|
| DCHECK_CURRENTLY_ON(BrowserThread::IO);
|
| - DCHECK(base::ContainsKey(services_, service));
|
| + DCHECK(base::ContainsKey(payment_app_managers_, payment_app_manager));
|
|
|
| - services_.erase(service);
|
| + payment_app_managers_.erase(payment_app_manager);
|
| }
|
|
|
| -ServiceWorkerContextWrapper* PaymentAppContextImpl::service_worker_context()
|
| - const {
|
| - return service_worker_context_.get();
|
| +PaymentAppDatabase* PaymentAppContextImpl::payment_app_database() const {
|
| + DCHECK_CURRENTLY_ON(BrowserThread::IO);
|
| + return payment_app_database_.get();
|
| }
|
|
|
| void PaymentAppContextImpl::GetAllManifests(
|
| @@ -58,20 +68,37 @@ void PaymentAppContextImpl::GetAllManifests(
|
| }
|
|
|
| PaymentAppContextImpl::~PaymentAppContextImpl() {
|
| - DCHECK(services_.empty());
|
| + DCHECK_CURRENTLY_ON(BrowserThread::UI);
|
| + DCHECK(is_shutdown_);
|
| +}
|
| +
|
| +void PaymentAppContextImpl::CreatePaymentAppDatabaseOnIO(
|
| + scoped_refptr<ServiceWorkerContextWrapper> service_worker_context) {
|
| + DCHECK_CURRENTLY_ON(BrowserThread::IO);
|
| + payment_app_database_ =
|
| + base::MakeUnique<PaymentAppDatabase>(service_worker_context);
|
| }
|
|
|
| -void PaymentAppContextImpl::CreateServiceOnIOThread(
|
| +void PaymentAppContextImpl::CreatePaymentAppManagerOnIO(
|
| mojo::InterfaceRequest<payments::mojom::PaymentAppManager> request) {
|
| DCHECK_CURRENTLY_ON(BrowserThread::IO);
|
| - PaymentAppManager* service = new PaymentAppManager(this, std::move(request));
|
| - services_[service] = base::WrapUnique(service);
|
| + PaymentAppManager* payment_app_manager =
|
| + new PaymentAppManager(this, std::move(request));
|
| + payment_app_managers_[payment_app_manager] =
|
| + base::WrapUnique(payment_app_manager);
|
| }
|
|
|
| void PaymentAppContextImpl::ShutdownOnIO() {
|
| DCHECK_CURRENTLY_ON(BrowserThread::IO);
|
|
|
| - services_.clear();
|
| + payment_app_managers_.clear();
|
| + payment_app_database_.reset();
|
| +}
|
| +
|
| +void PaymentAppContextImpl::DidShutdown() {
|
| + DCHECK_CURRENTLY_ON(BrowserThread::UI);
|
| +
|
| + is_shutdown_ = true;
|
| }
|
|
|
| } // namespace content
|
|
|