// Copyright 2017 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef COMPONENTS_PAYMENTS_CONTENT_PAYMENT_REQUEST_SPEC_H_ #define COMPONENTS_PAYMENTS_CONTENT_PAYMENT_REQUEST_SPEC_H_ #include <map> #include <set> #include <string> #include <vector> #include "base/memory/raw_ptr.h" #include "base/memory/weak_ptr.h" #include "base/observer_list.h" #include "build/build_config.h" #include "components/autofill/core/browser/field_types.h" #include "components/payments/content/initialization_task.h" #include "components/payments/core/currency_formatter.h" #include "components/payments/core/payment_options_provider.h" #include "third_party/blink/public/mojom/payments/payment_request.mojom.h" #include "url/gurl.h" namespace payments { class PaymentApp; // The spec contains all the options that the merchant has specified about this // Payment Request. It's a (mostly) read-only view, which can be updated in // certain occasions by the merchant (see API). // // The spec starts out completely initialized when a PaymentRequest object is // created, but can be placed into uninitialized state if PaymentRequest.show() // was called with a promise. This allows for asynchronous calculation of the // shopping cart contents, the total, the shipping options, and the modifiers. // // The initialization state is observed by PaymentRequestDialogView for showing // a "Loading..." spinner. class PaymentRequestSpec : public PaymentOptionsProvider, public InitializationTask { … }; } // namespace payments #endif // COMPONENTS_PAYMENTS_CONTENT_PAYMENT_REQUEST_SPEC_H_