зеркало из https://github.com/mozilla/gecko-dev.git
186 строки
3.5 KiB
C++
186 строки
3.5 KiB
C++
/* -*- 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;
|
|
|
|
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;
|
|
bool displayItemsPassed;
|
|
bool shippingOptionsPassed;
|
|
bool modifiersPassed;
|
|
};
|
|
|
|
struct IPCPaymentOptions
|
|
{
|
|
bool requestPayerName;
|
|
bool requestPayerEmail;
|
|
bool requestPayerPhone;
|
|
bool requestShipping;
|
|
nsString shippingType;
|
|
};
|
|
|
|
struct IPCPaymentCreateActionRequest
|
|
{
|
|
nsString requestId;
|
|
IPCPaymentMethodData[] methodData;
|
|
IPCPaymentDetails details;
|
|
IPCPaymentOptions options;
|
|
};
|
|
|
|
struct IPCPaymentCanMakeActionRequest
|
|
{
|
|
nsString requestId;
|
|
};
|
|
|
|
struct IPCPaymentShowActionRequest
|
|
{
|
|
nsString requestId;
|
|
};
|
|
|
|
struct IPCPaymentAbortActionRequest
|
|
{
|
|
nsString requestId;
|
|
};
|
|
|
|
struct IPCPaymentCompleteActionRequest
|
|
{
|
|
nsString requestId;
|
|
nsString completeStatus;
|
|
};
|
|
|
|
struct IPCPaymentUpdateActionRequest
|
|
{
|
|
nsString requestId;
|
|
IPCPaymentDetails details;
|
|
};
|
|
|
|
union IPCPaymentActionRequest
|
|
{
|
|
IPCPaymentCreateActionRequest;
|
|
IPCPaymentCanMakeActionRequest;
|
|
IPCPaymentShowActionRequest;
|
|
IPCPaymentAbortActionRequest;
|
|
IPCPaymentCompleteActionRequest;
|
|
IPCPaymentUpdateActionRequest;
|
|
};
|
|
|
|
struct IPCPaymentCanMakeActionResponse
|
|
{
|
|
nsString requestId;
|
|
bool result;
|
|
};
|
|
|
|
struct IPCPaymentShowActionResponse
|
|
{
|
|
nsString requestId;
|
|
bool isAccepted;
|
|
nsString methodName;
|
|
nsString 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 IPCPaymentAddress
|
|
{
|
|
nsString country;
|
|
nsString[] addressLine;
|
|
nsString region;
|
|
nsString city;
|
|
nsString dependentLocality;
|
|
nsString postalCode;
|
|
nsString sortingCode;
|
|
nsString languageCode;
|
|
nsString organization;
|
|
nsString recipient;
|
|
nsString phone;
|
|
};
|
|
|
|
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);
|
|
};
|
|
|
|
} // end of namespace dom
|
|
} // end of namespace mozilla
|