bug 1497111 - Remove unnecessarily null'ed out values of PaymentRequest.webidl. r=baku

--HG--
extra : histedit_source : 5a1a3f3a49540f92b32a0b94f07e65bb71382d09
This commit is contained in:
Eden Chuang 2018-11-12 17:24:54 +01:00
parent dcc74f176f
commit 9b43e53126
8 changed files with 108 additions and 87 deletions

View File

@ -471,12 +471,14 @@ PaymentRequest::IsValidDetailsUpdate(const PaymentDetailsUpdate& aDetails,
{
nsAutoString message;
// Check the amount.value and amount.currency of detail.total
nsresult rv = IsValidCurrencyAmount(NS_LITERAL_STRING("details.total"),
aDetails.mTotal.mAmount,
true, // isTotalItem
message);
if (NS_FAILED(rv)) {
return rv;
if (aDetails.mTotal.WasPassed()) {
nsresult rv = IsValidCurrencyAmount(NS_LITERAL_STRING("details.total"),
aDetails.mTotal.Value().mAmount,
true, // isTotalItem
message);
if (NS_FAILED(rv)) {
return rv;
}
}
return IsValidDetailsBase(aDetails, aRequestShipping, message);
}
@ -531,12 +533,14 @@ PaymentRequest::IsValidDetailsBase(const PaymentDetailsBase& aDetails,
if (NS_FAILED(rv)) {
return rv;
}
rv = IsValidCurrencyAmount(NS_LITERAL_STRING("details.modifiers.total"),
modifier.mTotal.mAmount,
true, // isTotalItem
aErrorMsg);
if (NS_FAILED(rv)) {
return rv;
if (modifier.mTotal.WasPassed()) {
rv = IsValidCurrencyAmount(NS_LITERAL_STRING("details.modifiers.total"),
modifier.mTotal.Value().mAmount,
true, // isTotalItem
aErrorMsg);
if (NS_FAILED(rv)) {
return rv;
}
}
if (modifier.mAdditionalDisplayItems.WasPassed()) {
const Sequence<PaymentItem>& displayItems = modifier.mAdditionalDisplayItems.Value();

View File

@ -74,7 +74,9 @@ ConvertModifier(JSContext* aCx,
}
IPCPaymentItem total;
ConvertItem(aModifier.mTotal, total);
if (aModifier.mTotal.WasPassed()) {
ConvertItem(aModifier.mTotal.Value(), total);
}
nsTArray<IPCPaymentItem> additionalDisplayItems;
if (aModifier.mAdditionalDisplayItems.WasPassed()) {
@ -195,7 +197,9 @@ ConvertDetailsUpdate(JSContext* aCx,
// Convert required |total|
IPCPaymentItem total;
ConvertItem(aDetails.mTotal, total);
if (aDetails.mTotal.WasPassed()) {
ConvertItem(aDetails.mTotal.Value(), total);
}
// Convert |error|
nsAutoString error;
@ -204,13 +208,17 @@ ConvertDetailsUpdate(JSContext* aCx,
}
nsAutoString shippingAddressErrors;
if (!aDetails.mShippingAddressErrors.ToJSON(shippingAddressErrors)) {
return NS_ERROR_FAILURE;
if (aDetails.mShippingAddressErrors.WasPassed()) {
if (!aDetails.mShippingAddressErrors.Value().ToJSON(shippingAddressErrors)) {
return NS_ERROR_FAILURE;
}
}
nsAutoString payerErrors;
if (!aDetails.mPayerErrors.ToJSON(payerErrors)) {
return NS_ERROR_FAILURE;
if (aDetails.mPayerErrors.WasPassed()) {
if (!aDetails.mPayerErrors.Value().ToJSON(payerErrors)) {
return NS_ERROR_FAILURE;
}
}
nsAutoString paymentMethodErrors;
@ -604,10 +612,18 @@ PaymentRequestManager::RetryPayment(JSContext* aCx,
}
nsAutoString shippingAddressErrors;
aErrors.mShippingAddress.ToJSON(shippingAddressErrors);
if (aErrors.mShippingAddress.WasPassed()) {
if (!aErrors.mShippingAddress.Value().ToJSON(shippingAddressErrors)) {
return NS_ERROR_FAILURE;
}
}
nsAutoString payerErrors;
aErrors.mPayer.ToJSON(payerErrors);
if (aErrors.mPayer.WasPassed()) {
if (!aErrors.mPayer.Value().ToJSON(payerErrors)) {
return NS_ERROR_FAILURE;
}
}
nsAutoString paymentMethodErrors;
if (aErrors.mPaymentMethod.WasPassed()) {

View File

@ -388,61 +388,65 @@ PaymentResponse::ValidatePaymentValidationErrors(
return NS_OK;
}
// check PaymentValidationErrors.payer
PayerErrors payerErrors(aErrors.mPayer);
if (payerErrors.mName.WasPassed() && !payerErrors.mName.Value().IsEmpty()) {
return NS_OK;
}
if (payerErrors.mEmail.WasPassed() && !payerErrors.mEmail.Value().IsEmpty()) {
return NS_OK;
}
if (payerErrors.mPhone.WasPassed() && !payerErrors.mPhone.Value().IsEmpty()) {
return NS_OK;
if (aErrors.mPayer.WasPassed()) {
PayerErrors payerErrors(aErrors.mPayer.Value());
if (payerErrors.mName.WasPassed() && !payerErrors.mName.Value().IsEmpty()) {
return NS_OK;
}
if (payerErrors.mEmail.WasPassed() && !payerErrors.mEmail.Value().IsEmpty()) {
return NS_OK;
}
if (payerErrors.mPhone.WasPassed() && !payerErrors.mPhone.Value().IsEmpty()) {
return NS_OK;
}
}
// check PaymentValidationErrors.paymentMethod
if (aErrors.mPaymentMethod.WasPassed()) {
return NS_OK;
}
// check PaymentValidationErrors.shippingAddress
AddressErrors addErrors(aErrors.mShippingAddress);
if (addErrors.mAddressLine.WasPassed() &&
!addErrors.mAddressLine.Value().IsEmpty()) {
return NS_OK;
}
if (addErrors.mCity.WasPassed() && !addErrors.mCity.Value().IsEmpty()) {
return NS_OK;
}
if (addErrors.mCountry.WasPassed() && !addErrors.mCountry.Value().IsEmpty()) {
return NS_OK;
}
if (addErrors.mDependentLocality.WasPassed() &&
!addErrors.mDependentLocality.Value().IsEmpty()) {
return NS_OK;
}
if (addErrors.mOrganization.WasPassed() &&
!addErrors.mOrganization.Value().IsEmpty()) {
return NS_OK;
}
if (addErrors.mPhone.WasPassed() && !addErrors.mPhone.Value().IsEmpty()) {
return NS_OK;
}
if (addErrors.mPostalCode.WasPassed() &&
!addErrors.mPostalCode.Value().IsEmpty()) {
return NS_OK;
}
if (addErrors.mRecipient.WasPassed() &&
!addErrors.mRecipient.Value().IsEmpty()) {
return NS_OK;
}
if (addErrors.mRegion.WasPassed() && !addErrors.mRegion.Value().IsEmpty()) {
return NS_OK;
}
if (addErrors.mRegionCode.WasPassed() &&
!addErrors.mRegionCode.Value().IsEmpty()) {
return NS_OK;
}
if (addErrors.mSortingCode.WasPassed() &&
!addErrors.mSortingCode.Value().IsEmpty()) {
return NS_OK;
if (aErrors.mShippingAddress.WasPassed()) {
AddressErrors addErrors(aErrors.mShippingAddress.Value());
if (addErrors.mAddressLine.WasPassed() &&
!addErrors.mAddressLine.Value().IsEmpty()) {
return NS_OK;
}
if (addErrors.mCity.WasPassed() && !addErrors.mCity.Value().IsEmpty()) {
return NS_OK;
}
if (addErrors.mCountry.WasPassed() && !addErrors.mCountry.Value().IsEmpty()) {
return NS_OK;
}
if (addErrors.mDependentLocality.WasPassed() &&
!addErrors.mDependentLocality.Value().IsEmpty()) {
return NS_OK;
}
if (addErrors.mOrganization.WasPassed() &&
!addErrors.mOrganization.Value().IsEmpty()) {
return NS_OK;
}
if (addErrors.mPhone.WasPassed() && !addErrors.mPhone.Value().IsEmpty()) {
return NS_OK;
}
if (addErrors.mPostalCode.WasPassed() &&
!addErrors.mPostalCode.Value().IsEmpty()) {
return NS_OK;
}
if (addErrors.mRecipient.WasPassed() &&
!addErrors.mRecipient.Value().IsEmpty()) {
return NS_OK;
}
if (addErrors.mRegion.WasPassed() && !addErrors.mRegion.Value().IsEmpty()) {
return NS_OK;
}
if (addErrors.mRegionCode.WasPassed() &&
!addErrors.mRegionCode.Value().IsEmpty()) {
return NS_OK;
}
if (addErrors.mSortingCode.WasPassed() &&
!addErrors.mSortingCode.Value().IsEmpty()) {
return NS_OK;
}
}
return NS_ERROR_DOM_ABORT_ERR;
}

View File

@ -4,7 +4,7 @@
* You can obtain one at http://mozilla.org/MPL/2.0/.
*
* The origin of this WebIDL file is
* https://www.w3.org/TR/payment-request/#paymentmethodchangeevent-interface
* https://w3c.github.io/payment-request/#paymentmethodchangeevent-interface
*
* Copyright © 2018 W3C® (MIT, ERCIM, Keio), All Rights Reserved. W3C
* liability, trademark and document use rules apply.

View File

@ -4,7 +4,8 @@
* You can obtain one at http://mozilla.org/MPL/2.0/.
*
* The origin of this WebIDL file is
* https://www.w3.org/TR/payment-request/#paymentrequest-interface
* https://w3c.github.io/payment-request/#paymentrequest-interface
* https://w3c.github.io/payment-request/#idl-index
*
* Copyright © 2018 W3C® (MIT, ERCIM, Keio), All Rights Reserved. W3C
* liability, trademark and document use rules apply.
@ -35,8 +36,7 @@ dictionary PaymentShippingOption {
dictionary PaymentDetailsModifier {
required DOMString supportedMethods;
// FIXME: bug 1493860: should this "= null" be here?
PaymentItem total = null;
PaymentItem total;
sequence<PaymentItem> additionalDisplayItems;
object data;
};
@ -67,10 +67,8 @@ dictionary AddressErrors {
};
dictionary PaymentValidationErrors {
// FIXME: bug 1493860: should this "= null" be here?
PayerErrors payer = null;
// FIXME: bug 1493860: should this "= null" be here?
AddressErrors shippingAddress = null;
PayerErrors payer;
AddressErrors shippingAddress;
DOMString error;
object paymentMethod;
};
@ -83,13 +81,10 @@ dictionary PayerErrors {
dictionary PaymentDetailsUpdate : PaymentDetailsBase {
DOMString error;
// FIXME: bug 1493860: should this "= null" be here?
AddressErrors shippingAddressErrors = null;
// FIXME: bug 1493860: should this "= null" be here?
PayerErrors payerErrors = null;
AddressErrors shippingAddressErrors;
PayerErrors payerErrors;
object paymentMethodErrors;
// FIXME: bug 1493860: should this "= null" be here?
PaymentItem total = null;
PaymentItem total;
};
enum PaymentShippingType {

View File

@ -4,7 +4,7 @@
* You can obtain one at http://mozilla.org/MPL/2.0/.
*
* The origin of this WebIDL file is
* https://www.w3.org/TR/payment-request/#paymentrequestupdateevent-interface
* https://w3c.github.io/payment-request/#paymentrequestupdateevent-interface
*
* Copyright © 2018 W3C® (MIT, ERCIM, Keio), All Rights Reserved. W3C
* liability, trademark and document use rules apply.

View File

@ -4,7 +4,7 @@
* You can obtain one at http://mozilla.org/MPL/2.0/.
*
* The origin of this WebIDL file is
* https://www.w3.org/TR/payment-request/#paymentresponse-interface
* https:/w3c.github.io/payment-request/#paymentresponse-interface
*
* Copyright © 2018 W3C® (MIT, ERCIM, Keio), All Rights Reserved. W3C
* liability, trademark and document use rules apply.

View File

@ -584,10 +584,12 @@
if not e10s: FAIL
[Modifier data must be JSON-serializable object (an Array in this case)]
expected: FAIL
expected:
if not e10s: FAIL
[Modifier data must be JSON-serializable object (an Object in this case)]
expected: FAIL
expected:
if not e10s: FAIL
[Rethrow any exceptions of JSON-serializing modifier.data]
expected: