summaryrefslogtreecommitdiff
path: root/chromium/content/browser/payments/payment_app_provider_impl.h
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/content/browser/payments/payment_app_provider_impl.h')
-rw-r--r--chromium/content/browser/payments/payment_app_provider_impl.h17
1 files changed, 16 insertions, 1 deletions
diff --git a/chromium/content/browser/payments/payment_app_provider_impl.h b/chromium/content/browser/payments/payment_app_provider_impl.h
index 620baa3f3c1..09cd78ff9f5 100644
--- a/chromium/content/browser/payments/payment_app_provider_impl.h
+++ b/chromium/content/browser/payments/payment_app_provider_impl.h
@@ -9,6 +9,7 @@
#include "base/memory/singleton.h"
#include "content/common/content_export.h"
#include "content/public/browser/payment_app_provider.h"
+#include "content/public/browser/web_contents_observer.h"
namespace content {
@@ -28,10 +29,11 @@ class CONTENT_EXPORT PaymentAppProviderImpl : public PaymentAppProvider {
WebContents* web_contents,
payments::mojom::PaymentRequestEventDataPtr event_data,
const std::string& app_name,
+ const SkBitmap& app_icon,
const std::string& sw_js_url,
const std::string& sw_scope,
bool sw_use_cache,
- const std::vector<std::string>& enabled_methods,
+ const std::string& method,
InvokePaymentAppCallback callback) override;
void CanMakePayment(BrowserContext* browser_context,
int64_t registration_id,
@@ -40,6 +42,8 @@ class CONTENT_EXPORT PaymentAppProviderImpl : public PaymentAppProvider {
void AbortPayment(BrowserContext* browser_context,
int64_t registration_id,
PaymentEventResultCallback callback) override;
+ void SetOpenedWindow(WebContents* web_contents) override;
+ void CloseOpenedWindow(BrowserContext* browser_context) override;
private:
PaymentAppProviderImpl();
@@ -47,6 +51,17 @@ class CONTENT_EXPORT PaymentAppProviderImpl : public PaymentAppProvider {
friend struct base::DefaultSingletonTraits<PaymentAppProviderImpl>;
+ // Note that constructor of WebContentsObserver is protected.
+ class PaymentHandlerWindowObserver : public WebContentsObserver {
+ public:
+ explicit PaymentHandlerWindowObserver(WebContents* web_contents);
+ ~PaymentHandlerWindowObserver() override;
+ };
+
+ // Map to maintain at most one opened window per browser context.
+ std::map<BrowserContext*, std::unique_ptr<PaymentHandlerWindowObserver>>
+ payment_handler_windows_;
+
DISALLOW_COPY_AND_ASSIGN(PaymentAppProviderImpl);
};