blob: f91b31051c6fe8c62526ccfc1bde40c1148a2ac9 [file] [log] [blame]
Avi Drissman4e1b7bc32022-09-15 14:03:501// Copyright 2016 The Chromium Authors
vasiliie4e2b2b12016-12-12 13:47:272// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
jinho.bang745d987b2016-12-14 19:06:545#include "content/browser/payments/payment_app_context_impl.h"
vasiliie4e2b2b12016-12-12 13:47:276
7#include <utility>
8
Lei Zhangde197672021-04-29 08:11:249#include "base/containers/contains.h"
Avi Drissmanadac21992023-01-11 23:46:3910#include "base/functional/bind.h"
jinho.bangbbb00c32017-03-30 15:09:0911#include "content/browser/payments/payment_manager.h"
Michael Thiessen2d864d92023-04-06 15:20:5612#include "content/public/browser/browser_thread.h"
vasiliie4e2b2b12016-12-12 13:47:2713
14namespace content {
15
Francois Doray5a6eb202018-02-23 19:19:3516PaymentAppContextImpl::PaymentAppContextImpl() {
vasiliie4e2b2b12016-12-12 13:47:2717 DCHECK_CURRENTLY_ON(BrowserThread::UI);
18}
19
jinho.bangab430572016-12-16 14:33:5820void PaymentAppContextImpl::Init(
21 scoped_refptr<ServiceWorkerContextWrapper> service_worker_context) {
22 DCHECK_CURRENTLY_ON(BrowserThread::UI);
Matt Falkenhagen016104e2021-09-10 01:01:3323 payment_app_database_ =
24 std::make_unique<PaymentAppDatabase>(std::move(service_worker_context));
vasiliie4e2b2b12016-12-12 13:47:2725}
26
Rouslan Solomakhin8788e2542019-10-24 01:10:0527void PaymentAppContextImpl::CreatePaymentManagerForOrigin(
28 const url::Origin& origin,
Miyoung Shinf661d572019-09-04 11:58:2729 mojo::PendingReceiver<payments::mojom::PaymentManager> receiver) {
vasiliie4e2b2b12016-12-12 13:47:2730 DCHECK_CURRENTLY_ON(BrowserThread::UI);
Matt Falkenhagen016104e2021-09-10 01:01:3331 auto payment_manager =
32 std::make_unique<PaymentManager>(this, origin, std::move(receiver));
33 payment_managers_[payment_manager.get()] = std::move(payment_manager);
vasiliie4e2b2b12016-12-12 13:47:2734}
35
jinho.bangbbb00c32017-03-30 15:09:0936void PaymentAppContextImpl::PaymentManagerHadConnectionError(
37 PaymentManager* payment_manager) {
Matt Falkenhagen016104e2021-09-10 01:01:3338 DCHECK_CURRENTLY_ON(BrowserThread::UI);
Jan Wilken Dörrie77c581a2019-06-07 16:25:0639 DCHECK(base::Contains(payment_managers_, payment_manager));
vasiliie4e2b2b12016-12-12 13:47:2740
jinho.bangbbb00c32017-03-30 15:09:0941 payment_managers_.erase(payment_manager);
vasiliie4e2b2b12016-12-12 13:47:2742}
43
jinho.bangab430572016-12-16 14:33:5844PaymentAppDatabase* PaymentAppContextImpl::payment_app_database() const {
Matt Falkenhagen016104e2021-09-10 01:01:3345 DCHECK_CURRENTLY_ON(BrowserThread::UI);
jinho.bangab430572016-12-16 14:33:5846 return payment_app_database_.get();
vasiliie4e2b2b12016-12-12 13:47:2747}
48
jinho.bang745d987b2016-12-14 19:06:5449PaymentAppContextImpl::~PaymentAppContextImpl() {
jinho.bangab430572016-12-16 14:33:5850 DCHECK_CURRENTLY_ON(BrowserThread::UI);
vasiliie4e2b2b12016-12-12 13:47:2751}
52
vasiliie4e2b2b12016-12-12 13:47:2753} // namespace content