dom/payments/PaymentActionResponse.h
author Manuel Rego Casasnovas <rego@igalia.com>
Mon, 19 Nov 2018 18:46:13 +0000
changeset 506778 359ee839f1a358175a0d4d537476d32a7f4a39a4
parent 502620 4b9fa41aa4ecbf8079011d1906f4287493434d70
child 507643 1809212f5f295dc72c9306eabde08eea7468245e
permissions -rw-r--r--
Bug 1507805 [wpt PR 14092] - [css-grid] Some fixes on grid-container-scrollbar-* tests, a=testonly Automatic update from web-platform-tests[css-grid] Some fixes on grid-container-scrollbar-* tests * Use Ahem font to avoid weird small pixel differences on iOS. * Fix some typos reported by @fred-wang at https://bugs.webkit.org/show_bug.cgi?id=191656#c14 -- Merge pull request #14092 from mrego/grid-container-scrollbars [css-grid] Some fixes on grid-container-scrollbar-* tests -- wpt-commits: ef7824a8ff88c95d36b31b377fe252f7c56d2da0, 1b543a1083f48c13b25f23a5f23d14f6ade958d4 wpt-pr: 14092

/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* vim: set ts=8 sts=2 et sw=2 tw=80: */
/* This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */

#ifndef mozilla_dom_PaymentActionResponse_h
#define mozilla_dom_PaymentActionResponse_h

#include "nsIPaymentActionResponse.h"

namespace mozilla {
namespace dom {

class PaymentRequestParent;

class PaymentResponseData : public nsIPaymentResponseData
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_NSIPAYMENTRESPONSEDATA

  PaymentResponseData() = default;

protected:
  virtual ~PaymentResponseData() = default;

  uint32_t mType;
};

class GeneralResponseData final : public PaymentResponseData
                                , public nsIGeneralResponseData
{
public:
  NS_DECL_ISUPPORTS_INHERITED
  NS_FORWARD_NSIPAYMENTRESPONSEDATA(PaymentResponseData::)
  NS_DECL_NSIGENERALRESPONSEDATA

  GeneralResponseData();

private:
  ~GeneralResponseData() = default;

  nsString mData;
};

class BasicCardResponseData final : public nsIBasicCardResponseData
                                  , public PaymentResponseData
{
public:
  NS_DECL_ISUPPORTS_INHERITED
  NS_FORWARD_NSIPAYMENTRESPONSEDATA(PaymentResponseData::)
  NS_DECL_NSIBASICCARDRESPONSEDATA

  BasicCardResponseData();

private:
  ~BasicCardResponseData() = default;

  nsString mCardholderName;
  nsString mCardNumber;
  nsString mExpiryMonth;
  nsString mExpiryYear;
  nsString mCardSecurityCode;
  nsCOMPtr<nsIPaymentAddress> mBillingAddress;
};

class PaymentActionResponse : public nsIPaymentActionResponse
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_NSIPAYMENTACTIONRESPONSE

  PaymentActionResponse();

protected:
  virtual ~PaymentActionResponse() = default;

  nsString mRequestId;
  uint32_t mType;
};

class PaymentCanMakeActionResponse final : public nsIPaymentCanMakeActionResponse
                                         , public PaymentActionResponse
{
public:
  NS_DECL_ISUPPORTS_INHERITED
  NS_FORWARD_NSIPAYMENTACTIONRESPONSE(PaymentActionResponse::)
  NS_DECL_NSIPAYMENTCANMAKEACTIONRESPONSE

  PaymentCanMakeActionResponse();

private:
  ~PaymentCanMakeActionResponse() = default;

  bool mResult;
};

class PaymentShowActionResponse final : public nsIPaymentShowActionResponse
                                      , public PaymentActionResponse
{
public:
  NS_DECL_ISUPPORTS_INHERITED
  NS_FORWARD_NSIPAYMENTACTIONRESPONSE(PaymentActionResponse::)
  NS_DECL_NSIPAYMENTSHOWACTIONRESPONSE

  PaymentShowActionResponse();

private:
  ~PaymentShowActionResponse() = default;

  uint32_t mAcceptStatus;
  nsString mMethodName;
  nsCOMPtr<nsIPaymentResponseData> mData;
  nsString mPayerName;
  nsString mPayerEmail;
  nsString mPayerPhone;
};

class PaymentAbortActionResponse final : public nsIPaymentAbortActionResponse
                                       , public PaymentActionResponse
{
public:
  NS_DECL_ISUPPORTS_INHERITED
  NS_FORWARD_NSIPAYMENTACTIONRESPONSE(PaymentActionResponse::)
  NS_DECL_NSIPAYMENTABORTACTIONRESPONSE

  PaymentAbortActionResponse();

private:
  ~PaymentAbortActionResponse() = default;

  uint32_t mAbortStatus;
};

class PaymentCompleteActionResponse final : public nsIPaymentCompleteActionResponse
                                          , public PaymentActionResponse
{
public:
  NS_DECL_ISUPPORTS_INHERITED
  NS_FORWARD_NSIPAYMENTACTIONRESPONSE(PaymentActionResponse::)
  NS_DECL_NSIPAYMENTCOMPLETEACTIONRESPONSE

  PaymentCompleteActionResponse();

private:
  ~PaymentCompleteActionResponse() = default;

  uint32_t mCompleteStatus;
};

} // end of dom
} // end of namespace mozilla

#endif