mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-09 03:15:11 +00:00
Bug 1440041 - Add a new readonly attribute nsIPaymentRequest.shippingOption. r=baku.
This commit is contained in:
parent
bbd8c5be30
commit
b206167b93
@ -81,6 +81,11 @@ interface nsIPaymentCreateActionRequest : nsIPaymentActionRequest
|
|||||||
*/
|
*/
|
||||||
readonly attribute nsIPaymentOptions options;
|
readonly attribute nsIPaymentOptions options;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* The selected shipping option of the payment request;
|
||||||
|
*/
|
||||||
|
readonly attribute AString shippingOption;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Initialize function the this request.
|
* Initialize function the this request.
|
||||||
*/
|
*/
|
||||||
@ -90,7 +95,8 @@ interface nsIPaymentCreateActionRequest : nsIPaymentActionRequest
|
|||||||
in nsIPrincipal aPrincipal,
|
in nsIPrincipal aPrincipal,
|
||||||
in nsIArray aMethodData,
|
in nsIArray aMethodData,
|
||||||
in nsIPaymentDetails aDetails,
|
in nsIPaymentDetails aDetails,
|
||||||
in nsIPaymentOptions aOptions);
|
in nsIPaymentOptions aOptions,
|
||||||
|
in AString aShippingOption);
|
||||||
};
|
};
|
||||||
|
|
||||||
[builtinclass, uuid(4429697d-1135-47de-a46e-5196d399ec55)]
|
[builtinclass, uuid(4429697d-1135-47de-a46e-5196d399ec55)]
|
||||||
@ -117,12 +123,18 @@ interface nsIPaymentUpdateActionRequest : nsIPaymentActionRequest
|
|||||||
*/
|
*/
|
||||||
readonly attribute nsIPaymentDetails details;
|
readonly attribute nsIPaymentDetails details;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* The selected shipping option information
|
||||||
|
*/
|
||||||
|
readonly attribute AString shippingOption;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Initialize function for this request.
|
* Initialize function for this request.
|
||||||
*/
|
*/
|
||||||
void initRequest(in AString aRequestId,
|
void initRequest(in AString aRequestId,
|
||||||
in nsIPaymentActionCallback aCallback,
|
in nsIPaymentActionCallback aCallback,
|
||||||
in nsIPaymentDetails aDetails);
|
in nsIPaymentDetails aDetails,
|
||||||
|
in AString aShippingOption);
|
||||||
};
|
};
|
||||||
|
|
||||||
%{C++
|
%{C++
|
||||||
|
@ -85,7 +85,9 @@ interface nsIPaymentRequest : nsISupports
|
|||||||
readonly attribute nsIArray paymentMethods;
|
readonly attribute nsIArray paymentMethods;
|
||||||
readonly attribute nsIPaymentDetails paymentDetails;
|
readonly attribute nsIPaymentDetails paymentDetails;
|
||||||
readonly attribute nsIPaymentOptions paymentOptions;
|
readonly attribute nsIPaymentOptions paymentOptions;
|
||||||
|
readonly attribute AString shippingOption;
|
||||||
|
|
||||||
[noscript] void setCompleteStatus(in AString aCompleteStatus);
|
[noscript] void setCompleteStatus(in AString aCompleteStatus);
|
||||||
void updatePaymentDetails(in nsIPaymentDetails aDetails);
|
void updatePaymentDetails(in nsIPaymentDetails aDetails,
|
||||||
|
in AString aShippingOption);
|
||||||
};
|
};
|
||||||
|
@ -78,7 +78,8 @@ PaymentCreateActionRequest::InitRequest(const nsAString& aRequestId,
|
|||||||
nsIPrincipal* aTopLevelPrincipal,
|
nsIPrincipal* aTopLevelPrincipal,
|
||||||
nsIArray* aMethodData,
|
nsIArray* aMethodData,
|
||||||
nsIPaymentDetails* aDetails,
|
nsIPaymentDetails* aDetails,
|
||||||
nsIPaymentOptions* aOptions)
|
nsIPaymentOptions* aOptions,
|
||||||
|
const nsAString& aShippingOption)
|
||||||
{
|
{
|
||||||
NS_ENSURE_ARG_POINTER(aCallback);
|
NS_ENSURE_ARG_POINTER(aCallback);
|
||||||
NS_ENSURE_ARG_POINTER(aTopLevelPrincipal);
|
NS_ENSURE_ARG_POINTER(aTopLevelPrincipal);
|
||||||
@ -94,6 +95,7 @@ PaymentCreateActionRequest::InitRequest(const nsAString& aRequestId,
|
|||||||
mMethodData = aMethodData;
|
mMethodData = aMethodData;
|
||||||
mDetails = aDetails;
|
mDetails = aDetails;
|
||||||
mOptions = aOptions;
|
mOptions = aOptions;
|
||||||
|
mShippingOption = aShippingOption;
|
||||||
return NS_OK;
|
return NS_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -145,6 +147,13 @@ PaymentCreateActionRequest::GetOptions(nsIPaymentOptions** aOptions)
|
|||||||
return NS_OK;
|
return NS_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
NS_IMETHODIMP
|
||||||
|
PaymentCreateActionRequest::GetShippingOption(nsAString& aShippingOption)
|
||||||
|
{
|
||||||
|
aShippingOption = mShippingOption;
|
||||||
|
return NS_OK;
|
||||||
|
}
|
||||||
|
|
||||||
/* PaymentCompleteActionRequest */
|
/* PaymentCompleteActionRequest */
|
||||||
|
|
||||||
NS_IMPL_ISUPPORTS_INHERITED(PaymentCompleteActionRequest,
|
NS_IMPL_ISUPPORTS_INHERITED(PaymentCompleteActionRequest,
|
||||||
@ -193,10 +202,18 @@ PaymentUpdateActionRequest::GetDetails(nsIPaymentDetails** aDetails)
|
|||||||
return NS_OK;
|
return NS_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
NS_IMETHODIMP
|
||||||
|
PaymentUpdateActionRequest::GetShippingOption(nsAString& aShippingOption)
|
||||||
|
{
|
||||||
|
aShippingOption = mShippingOption;
|
||||||
|
return NS_OK;
|
||||||
|
}
|
||||||
|
|
||||||
NS_IMETHODIMP
|
NS_IMETHODIMP
|
||||||
PaymentUpdateActionRequest::InitRequest(const nsAString& aRequestId,
|
PaymentUpdateActionRequest::InitRequest(const nsAString& aRequestId,
|
||||||
nsIPaymentActionCallback* aCallback,
|
nsIPaymentActionCallback* aCallback,
|
||||||
nsIPaymentDetails* aDetails)
|
nsIPaymentDetails* aDetails,
|
||||||
|
const nsAString& aShippingOption)
|
||||||
{
|
{
|
||||||
NS_ENSURE_ARG_POINTER(aCallback);
|
NS_ENSURE_ARG_POINTER(aCallback);
|
||||||
NS_ENSURE_ARG_POINTER(aDetails);
|
NS_ENSURE_ARG_POINTER(aDetails);
|
||||||
@ -205,6 +222,7 @@ PaymentUpdateActionRequest::InitRequest(const nsAString& aRequestId,
|
|||||||
return rv;
|
return rv;
|
||||||
}
|
}
|
||||||
mDetails = aDetails;
|
mDetails = aDetails;
|
||||||
|
mShippingOption = aShippingOption;
|
||||||
return NS_OK;
|
return NS_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -49,6 +49,7 @@ private:
|
|||||||
nsCOMPtr<nsIArray> mMethodData;
|
nsCOMPtr<nsIArray> mMethodData;
|
||||||
nsCOMPtr<nsIPaymentDetails> mDetails;
|
nsCOMPtr<nsIPaymentDetails> mDetails;
|
||||||
nsCOMPtr<nsIPaymentOptions> mOptions;
|
nsCOMPtr<nsIPaymentOptions> mOptions;
|
||||||
|
nsString mShippingOption;
|
||||||
};
|
};
|
||||||
|
|
||||||
class PaymentCompleteActionRequest final : public nsIPaymentCompleteActionRequest
|
class PaymentCompleteActionRequest final : public nsIPaymentCompleteActionRequest
|
||||||
@ -80,6 +81,7 @@ private:
|
|||||||
~PaymentUpdateActionRequest() = default;
|
~PaymentUpdateActionRequest() = default;
|
||||||
|
|
||||||
nsCOMPtr<nsIPaymentDetails> mDetails;
|
nsCOMPtr<nsIPaymentDetails> mDetails;
|
||||||
|
nsString mShippingOption;
|
||||||
};
|
};
|
||||||
|
|
||||||
} // end of namespace dom
|
} // end of namespace dom
|
||||||
|
@ -609,13 +609,15 @@ PaymentRequest::PaymentRequest(const uint64_t aTabId,
|
|||||||
nsIPrincipal* aTopLevelPrincipal,
|
nsIPrincipal* aTopLevelPrincipal,
|
||||||
nsIArray* aPaymentMethods,
|
nsIArray* aPaymentMethods,
|
||||||
nsIPaymentDetails* aPaymentDetails,
|
nsIPaymentDetails* aPaymentDetails,
|
||||||
nsIPaymentOptions* aPaymentOptions)
|
nsIPaymentOptions* aPaymentOptions,
|
||||||
|
const nsAString& aShippingOption)
|
||||||
: mTabId(aTabId)
|
: mTabId(aTabId)
|
||||||
, mRequestId(aRequestId)
|
, mRequestId(aRequestId)
|
||||||
, mTopLevelPrincipal(aTopLevelPrincipal)
|
, mTopLevelPrincipal(aTopLevelPrincipal)
|
||||||
, mPaymentMethods(aPaymentMethods)
|
, mPaymentMethods(aPaymentMethods)
|
||||||
, mPaymentDetails(aPaymentDetails)
|
, mPaymentDetails(aPaymentDetails)
|
||||||
, mPaymentOptions(aPaymentOptions)
|
, mPaymentOptions(aPaymentOptions)
|
||||||
|
, mShippingOption(aShippingOption)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -675,7 +677,15 @@ PaymentRequest::GetPaymentOptions(nsIPaymentOptions** aPaymentOptions)
|
|||||||
}
|
}
|
||||||
|
|
||||||
NS_IMETHODIMP
|
NS_IMETHODIMP
|
||||||
PaymentRequest::UpdatePaymentDetails(nsIPaymentDetails* aPaymentDetails)
|
PaymentRequest::GetShippingOption(nsAString& aShippingOption)
|
||||||
|
{
|
||||||
|
aShippingOption = mShippingOption;
|
||||||
|
return NS_OK;
|
||||||
|
}
|
||||||
|
|
||||||
|
NS_IMETHODIMP
|
||||||
|
PaymentRequest::UpdatePaymentDetails(nsIPaymentDetails* aPaymentDetails,
|
||||||
|
const nsAString& aShippingOption)
|
||||||
{
|
{
|
||||||
MOZ_ASSERT(aPaymentDetails);
|
MOZ_ASSERT(aPaymentDetails);
|
||||||
bool requestShipping;
|
bool requestShipping;
|
||||||
@ -683,6 +693,7 @@ PaymentRequest::UpdatePaymentDetails(nsIPaymentDetails* aPaymentDetails)
|
|||||||
if (NS_WARN_IF(NS_FAILED(rv))) {
|
if (NS_WARN_IF(NS_FAILED(rv))) {
|
||||||
return rv;
|
return rv;
|
||||||
}
|
}
|
||||||
|
mShippingOption = aShippingOption;
|
||||||
return mPaymentDetails->Update(aPaymentDetails, requestShipping);
|
return mPaymentDetails->Update(aPaymentDetails, requestShipping);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -184,7 +184,8 @@ public:
|
|||||||
nsIPrincipal* aPrincipal,
|
nsIPrincipal* aPrincipal,
|
||||||
nsIArray* aPaymentMethods,
|
nsIArray* aPaymentMethods,
|
||||||
nsIPaymentDetails* aPaymentDetails,
|
nsIPaymentDetails* aPaymentDetails,
|
||||||
nsIPaymentOptions* aPaymentOptions);
|
nsIPaymentOptions* aPaymentOptions,
|
||||||
|
const nsAString& aShippingOption);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
~PaymentRequest() = default;
|
~PaymentRequest() = default;
|
||||||
@ -196,6 +197,7 @@ private:
|
|||||||
nsCOMPtr<nsIArray> mPaymentMethods;
|
nsCOMPtr<nsIArray> mPaymentMethods;
|
||||||
nsCOMPtr<nsIPaymentDetails> mPaymentDetails;
|
nsCOMPtr<nsIPaymentDetails> mPaymentDetails;
|
||||||
nsCOMPtr<nsIPaymentOptions> mPaymentOptions;
|
nsCOMPtr<nsIPaymentOptions> mPaymentOptions;
|
||||||
|
nsString mShippingOption;
|
||||||
};
|
};
|
||||||
|
|
||||||
class PaymentAddress final : public nsIPaymentAddress
|
class PaymentAddress final : public nsIPaymentAddress
|
||||||
|
@ -467,7 +467,8 @@ PaymentRequestManager::CreatePayment(JSContext* aCx,
|
|||||||
IPC::Principal(aTopLevelPrincipal),
|
IPC::Principal(aTopLevelPrincipal),
|
||||||
methodData,
|
methodData,
|
||||||
details,
|
details,
|
||||||
options);
|
options,
|
||||||
|
shippingOption);
|
||||||
|
|
||||||
rv = SendRequestPayment(request, action, true);
|
rv = SendRequestPayment(request, action, true);
|
||||||
if (NS_WARN_IF(NS_FAILED(rv))) {
|
if (NS_WARN_IF(NS_FAILED(rv))) {
|
||||||
@ -573,7 +574,7 @@ PaymentRequestManager::UpdatePayment(JSContext* aCx,
|
|||||||
}
|
}
|
||||||
|
|
||||||
nsAutoString requestId(aRequestId);
|
nsAutoString requestId(aRequestId);
|
||||||
IPCPaymentUpdateActionRequest action(requestId, details);
|
IPCPaymentUpdateActionRequest action(requestId, details, shippingOption);
|
||||||
return SendRequestPayment(request, action);
|
return SendRequestPayment(request, action);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -253,9 +253,13 @@ PaymentRequestService::RequestPayment(nsIPaymentActionRequest* aRequest)
|
|||||||
rv = request->GetOptions(getter_AddRefs(options));
|
rv = request->GetOptions(getter_AddRefs(options));
|
||||||
NS_ENSURE_SUCCESS(rv, rv);
|
NS_ENSURE_SUCCESS(rv, rv);
|
||||||
|
|
||||||
|
nsAutoString shippingOption;
|
||||||
|
rv = request->GetShippingOption(shippingOption);
|
||||||
|
NS_ENSURE_SUCCESS(rv, rv);
|
||||||
|
|
||||||
nsCOMPtr<nsIPaymentRequest> payment =
|
nsCOMPtr<nsIPaymentRequest> payment =
|
||||||
new payments::PaymentRequest(tabId, requestId, topLevelPrincipal,
|
new payments::PaymentRequest(tabId, requestId, topLevelPrincipal,
|
||||||
methodData, details, options);
|
methodData, details, options, shippingOption);
|
||||||
|
|
||||||
if (!mRequestQueue.AppendElement(payment, mozilla::fallible)) {
|
if (!mRequestQueue.AppendElement(payment, mozilla::fallible)) {
|
||||||
return NS_ERROR_OUT_OF_MEMORY;
|
return NS_ERROR_OUT_OF_MEMORY;
|
||||||
@ -357,6 +361,10 @@ PaymentRequestService::RequestPayment(nsIPaymentActionRequest* aRequest)
|
|||||||
rv = request->GetDetails(getter_AddRefs(details));
|
rv = request->GetDetails(getter_AddRefs(details));
|
||||||
NS_ENSURE_SUCCESS(rv, rv);
|
NS_ENSURE_SUCCESS(rv, rv);
|
||||||
|
|
||||||
|
nsAutoString shippingOption;
|
||||||
|
rv = request->GetShippingOption(shippingOption);
|
||||||
|
NS_ENSURE_SUCCESS(rv, rv);
|
||||||
|
|
||||||
rv = request->GetRequestId(requestId);
|
rv = request->GetRequestId(requestId);
|
||||||
NS_ENSURE_SUCCESS(rv, rv);
|
NS_ENSURE_SUCCESS(rv, rv);
|
||||||
nsCOMPtr<nsIPaymentRequest> payment;
|
nsCOMPtr<nsIPaymentRequest> payment;
|
||||||
@ -364,7 +372,7 @@ PaymentRequestService::RequestPayment(nsIPaymentActionRequest* aRequest)
|
|||||||
if (NS_WARN_IF(NS_FAILED(rv))) {
|
if (NS_WARN_IF(NS_FAILED(rv))) {
|
||||||
return rv;
|
return rv;
|
||||||
}
|
}
|
||||||
rv = payment->UpdatePaymentDetails(details);
|
rv = payment->UpdatePaymentDetails(details, shippingOption);
|
||||||
if (NS_WARN_IF(NS_FAILED(rv))) {
|
if (NS_WARN_IF(NS_FAILED(rv))) {
|
||||||
return rv;
|
return rv;
|
||||||
}
|
}
|
||||||
|
@ -76,6 +76,7 @@ struct IPCPaymentCreateActionRequest
|
|||||||
IPCPaymentMethodData[] methodData;
|
IPCPaymentMethodData[] methodData;
|
||||||
IPCPaymentDetails details;
|
IPCPaymentDetails details;
|
||||||
IPCPaymentOptions options;
|
IPCPaymentOptions options;
|
||||||
|
nsString shippingOption;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct IPCPaymentCanMakeActionRequest
|
struct IPCPaymentCanMakeActionRequest
|
||||||
@ -103,6 +104,7 @@ struct IPCPaymentUpdateActionRequest
|
|||||||
{
|
{
|
||||||
nsString requestId;
|
nsString requestId;
|
||||||
IPCPaymentDetails details;
|
IPCPaymentDetails details;
|
||||||
|
nsString shippingOption;
|
||||||
};
|
};
|
||||||
|
|
||||||
union IPCPaymentActionRequest
|
union IPCPaymentActionRequest
|
||||||
|
@ -76,7 +76,8 @@ PaymentRequestParent::RecvRequestPayment(const IPCPaymentActionRequest& aRequest
|
|||||||
request.topLevelPrincipal(),
|
request.topLevelPrincipal(),
|
||||||
methodData,
|
methodData,
|
||||||
details,
|
details,
|
||||||
options);
|
options,
|
||||||
|
request.shippingOption());
|
||||||
if (NS_WARN_IF(NS_FAILED(rv))) {
|
if (NS_WARN_IF(NS_FAILED(rv))) {
|
||||||
return IPC_FAIL_NO_REASON(this);
|
return IPC_FAIL_NO_REASON(this);
|
||||||
}
|
}
|
||||||
@ -142,7 +143,8 @@ PaymentRequestParent::RecvRequestPayment(const IPCPaymentActionRequest& aRequest
|
|||||||
do_CreateInstance(NS_PAYMENT_UPDATE_ACTION_REQUEST_CONTRACT_ID);
|
do_CreateInstance(NS_PAYMENT_UPDATE_ACTION_REQUEST_CONTRACT_ID);
|
||||||
rv = updateAction->InitRequest(request.requestId(),
|
rv = updateAction->InitRequest(request.requestId(),
|
||||||
callback,
|
callback,
|
||||||
details);
|
details,
|
||||||
|
request.shippingOption());
|
||||||
action = do_QueryInterface(updateAction);
|
action = do_QueryInterface(updateAction);
|
||||||
MOZ_ASSERT(action);
|
MOZ_ASSERT(action);
|
||||||
break;
|
break;
|
||||||
|
Loading…
Reference in New Issue
Block a user