Source code

Revision control

Copy as Markdown

Other Tools

/* -*- Mode: C++; c-basic-offset: 2; indent-tabs-mode: nil; tab-width: 8 -*- */
/* vim: set sw=4 ts=8 et tw=80 ft=cpp : */
/* 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/. */
include protocol PBrowser;
include "mozilla/dom/PermissionMessageUtils.h";
[RefCounted] using class nsIPrincipal from "nsIPrincipal.h";
namespace mozilla {
namespace dom {
struct IPCPaymentMethodData
{
nsString supportedMethods;
nsString data;
};
struct IPCPaymentCurrencyAmount
{
nsString currency;
nsString value;
};
struct IPCPaymentItem
{
nsString label;
IPCPaymentCurrencyAmount amount;
bool pending;
};
struct IPCPaymentDetailsModifier
{
nsString supportedMethods;
IPCPaymentItem total;
IPCPaymentItem[] additionalDisplayItems;
nsString data;
bool additionalDisplayItemsPassed;
};
struct IPCPaymentShippingOption
{
nsString id;
nsString label;
IPCPaymentCurrencyAmount amount;
bool selected;
};
struct IPCPaymentDetails
{
nsString id;
IPCPaymentItem total;
IPCPaymentItem[] displayItems;
IPCPaymentShippingOption[] shippingOptions;
IPCPaymentDetailsModifier[] modifiers;
nsString error;
nsString shippingAddressErrors;
nsString payerErrors;
nsString paymentMethodErrors;
};
struct IPCPaymentOptions
{
bool requestPayerName;
bool requestPayerEmail;
bool requestPayerPhone;
bool requestShipping;
bool requestBillingAddress;
nsString shippingType;
};
struct IPCPaymentCreateActionRequest
{
uint64_t topOuterWindowId;
nsString requestId;
nullable nsIPrincipal topLevelPrincipal;
IPCPaymentMethodData[] methodData;
IPCPaymentDetails details;
IPCPaymentOptions options;
nsString shippingOption;
};
struct IPCPaymentCanMakeActionRequest
{
nsString requestId;
};
struct IPCPaymentShowActionRequest
{
nsString requestId;
bool isUpdating;
};
struct IPCPaymentAbortActionRequest
{
nsString requestId;
};
struct IPCPaymentCompleteActionRequest
{
nsString requestId;
nsString completeStatus;
};
struct IPCPaymentUpdateActionRequest
{
nsString requestId;
IPCPaymentDetails details;
nsString shippingOption;
};
struct IPCPaymentCloseActionRequest
{
nsString requestId;
};
struct IPCPaymentRetryActionRequest
{
nsString requestId;
nsString error;
nsString payerErrors;
nsString paymentMethodErrors;
nsString shippingAddressErrors;
};
union IPCPaymentActionRequest
{
IPCPaymentCreateActionRequest;
IPCPaymentCanMakeActionRequest;
IPCPaymentShowActionRequest;
IPCPaymentAbortActionRequest;
IPCPaymentCompleteActionRequest;
IPCPaymentUpdateActionRequest;
IPCPaymentCloseActionRequest;
IPCPaymentRetryActionRequest;
};
struct IPCPaymentCanMakeActionResponse
{
nsString requestId;
bool result;
};
struct IPCPaymentAddress
{
nsString country;
nsString[] addressLine;
nsString region;
nsString regionCode;
nsString city;
nsString dependentLocality;
nsString postalCode;
nsString sortingCode;
nsString organization;
nsString recipient;
nsString phone;
};
struct IPCGeneralResponse
{
nsString data;
};
struct IPCBasicCardResponse
{
nsString cardholderName;
nsString cardNumber;
nsString expiryMonth;
nsString expiryYear;
nsString cardSecurityCode;
IPCPaymentAddress billingAddress;
};
union IPCPaymentResponseData
{
IPCGeneralResponse;
IPCBasicCardResponse;
};
struct IPCPaymentShowActionResponse
{
nsString requestId;
uint32_t status;
nsString methodName;
IPCPaymentResponseData data;
nsString payerName;
nsString payerEmail;
nsString payerPhone;
};
struct IPCPaymentAbortActionResponse
{
nsString requestId;
bool isSucceeded;
};
struct IPCPaymentCompleteActionResponse
{
nsString requestId;
bool isCompleted;
};
union IPCPaymentActionResponse
{
IPCPaymentCanMakeActionResponse;
IPCPaymentShowActionResponse;
IPCPaymentAbortActionResponse;
IPCPaymentCompleteActionResponse;
};
struct IPCGeneralChangeDetails
{
nsString details;
};
struct IPCBasicCardChangeDetails
{
IPCPaymentAddress billingAddress;
};
union IPCMethodChangeDetails
{
IPCGeneralChangeDetails;
IPCBasicCardChangeDetails;
};
[ManualDealloc]
sync protocol PPaymentRequest
{
manager PBrowser;
parent:
async __delete__();
async RequestPayment(IPCPaymentActionRequest aAction);
child:
async RespondPayment(IPCPaymentActionResponse aResponse);
async ChangeShippingAddress(nsString aRequestId,
IPCPaymentAddress aAddress);
async ChangeShippingOption(nsString aRequestId,
nsString aOption);
async ChangePayerDetail(nsString aRequestId,
nsString aPayerName,
nsString aPayerEmail,
nsString aPayerPhone);
async ChangePaymentMethod(nsString aRequestId,
nsString aMethodName,
IPCMethodChangeDetails aMethodDetails);
};
} // end of namespace dom
} // end of namespace mozilla