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