// 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_DISPLAY_MANAGER_H_ #define COMPONENTS_PAYMENTS_CONTENT_PAYMENT_REQUEST_DISPLAY_MANAGER_H_ #include <memory> #include "base/functional/callback.h" #include "base/memory/weak_ptr.h" #include "components/keyed_service/core/keyed_service.h" #include "content/public/browser/render_frame_host.h" #include "url/gurl.h" namespace payments { class ContentPaymentRequestDelegate; class PaymentRequest; // The callback type for functions that need to signal back to the ServiceWorker // when a window was/failed to open following an openWindow call. The parameter // indicates whether the call was successful or not. PaymentHandlerOpenWindowCallback; // Enum of possible outcomes from a call to // PaymentRequestDisplayManager::TryShow, used for logging purposes. // // These values are persisted to logs. Entries should not be renumbered and // numeric values should never be reused. // // LINT.IfChange(PaymentRequestTryShowOutcome) enum class PaymentRequestTryShowOutcome { … }; // LINT.ThenChange(//tools/metrics/histograms/enums.xml:PaymentRequestTryShowOutcome) // This KeyedService is responsible for displaying and hiding Payment Request // UI. It ensures that only one Payment Request is showing per profile. class PaymentRequestDisplayManager : public KeyedService { … }; } // namespace payments #endif // COMPONENTS_PAYMENTS_CONTENT_PAYMENT_REQUEST_DISPLAY_MANAGER_H_