// Copyright 2016 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef CONTENT_BROWSER_PAYMENTS_PAYMENT_MANAGER_H_ #define CONTENT_BROWSER_PAYMENTS_PAYMENT_MANAGER_H_ #include #include "base/macros.h" #include "base/memory/weak_ptr.h" #include "components/payments/mojom/payment_app.mojom.h" #include "content/common/content_export.h" #include "mojo/public/cpp/bindings/binding.h" #include "url/gurl.h" namespace content { class PaymentAppContextImpl; class CONTENT_EXPORT PaymentManager : public NON_EXPORTED_BASE(payments::mojom::PaymentManager) { public: PaymentManager( PaymentAppContextImpl* payment_app_context, mojo::InterfaceRequest request); ~PaymentManager() override; private: friend class PaymentAppContentUnitTestBase; friend class PaymentAppProviderTest; friend class PaymentManagerTest; // payments::mojom::PaymentManager methods: void Init(const std::string& scope) override; void DeletePaymentInstrument( const std::string& instrument_key, DeletePaymentInstrumentCallback callback) override; void GetPaymentInstrument(const std::string& instrument_key, GetPaymentInstrumentCallback callback) override; void KeysOfPaymentInstruments( KeysOfPaymentInstrumentsCallback callback) override; void HasPaymentInstrument(const std::string& instrument_key, HasPaymentInstrumentCallback callback) override; void SetPaymentInstrument(const std::string& instrument_key, payments::mojom::PaymentInstrumentPtr details, SetPaymentInstrumentCallback callback) override; void ClearPaymentInstruments( ClearPaymentInstrumentsCallback callback) override; // Called when an error is detected on binding_. void OnConnectionError(); // PaymentAppContextImpl owns PaymentManager PaymentAppContextImpl* payment_app_context_; GURL scope_; mojo::Binding binding_; base::WeakPtrFactory weak_ptr_factory_; DISALLOW_COPY_AND_ASSIGN(PaymentManager); }; } // namespace content #endif // CONTENT_BROWSER_PAYMENTS_PAYMENT_MANAGER_H_