Backed out changeset 5a77e82d273e (bug 1480872) for browser-chorme failure on dom/payments/test/browser_payment_in_different_tabs.js. CLOSED TREE

This commit is contained in:
Dorel Luca 2018-08-16 11:58:12 +03:00
parent 2b8aa56d1e
commit 536ac71605
5 changed files with 68 additions and 53 deletions

View File

@ -365,6 +365,7 @@ PaymentDetails::Create(const IPCPaymentDetails& aIPCDetails,
} }
nsCOMPtr<nsIArray> displayItems; nsCOMPtr<nsIArray> displayItems;
if (aIPCDetails.displayItemsPassed()) {
nsCOMPtr<nsIMutableArray> items = do_CreateInstance(NS_ARRAY_CONTRACTID); nsCOMPtr<nsIMutableArray> items = do_CreateInstance(NS_ARRAY_CONTRACTID);
MOZ_ASSERT(items); MOZ_ASSERT(items);
for (const IPCPaymentItem& displayItem : aIPCDetails.displayItems()) { for (const IPCPaymentItem& displayItem : aIPCDetails.displayItems()) {
@ -379,8 +380,10 @@ PaymentDetails::Create(const IPCPaymentDetails& aIPCDetails,
} }
} }
displayItems = items.forget(); displayItems = items.forget();
}
nsCOMPtr<nsIArray> shippingOptions; nsCOMPtr<nsIArray> shippingOptions;
if (aIPCDetails.shippingOptionsPassed()) {
nsCOMPtr<nsIMutableArray> options = do_CreateInstance(NS_ARRAY_CONTRACTID); nsCOMPtr<nsIMutableArray> options = do_CreateInstance(NS_ARRAY_CONTRACTID);
MOZ_ASSERT(options); MOZ_ASSERT(options);
for (const IPCPaymentShippingOption& shippingOption : aIPCDetails.shippingOptions()) { for (const IPCPaymentShippingOption& shippingOption : aIPCDetails.shippingOptions()) {
@ -395,8 +398,10 @@ PaymentDetails::Create(const IPCPaymentDetails& aIPCDetails,
} }
} }
shippingOptions = options.forget(); shippingOptions = options.forget();
}
nsCOMPtr<nsIArray> modifiers; nsCOMPtr<nsIArray> modifiers;
if (aIPCDetails.modifiersPassed()) {
nsCOMPtr<nsIMutableArray> detailsModifiers = do_CreateInstance(NS_ARRAY_CONTRACTID); nsCOMPtr<nsIMutableArray> detailsModifiers = do_CreateInstance(NS_ARRAY_CONTRACTID);
MOZ_ASSERT(detailsModifiers); MOZ_ASSERT(detailsModifiers);
for (const IPCPaymentDetailsModifier& modifier : aIPCDetails.modifiers()) { for (const IPCPaymentDetailsModifier& modifier : aIPCDetails.modifiers()) {
@ -411,6 +416,7 @@ PaymentDetails::Create(const IPCPaymentDetails& aIPCDetails,
} }
} }
modifiers = detailsModifiers.forget(); modifiers = detailsModifiers.forget();
}
nsCOMPtr<nsIPaymentDetails> details = nsCOMPtr<nsIPaymentDetails> details =
new PaymentDetails(aIPCDetails.id(), total, displayItems, shippingOptions, new PaymentDetails(aIPCDetails.id(), total, displayItems, shippingOptions,

View File

@ -178,7 +178,10 @@ ConvertDetailsInit(JSContext* aCx,
shippingOptions, shippingOptions,
modifiers, modifiers,
EmptyString(), // error message EmptyString(), // error message
EmptyString()); // shippingAddressErrors EmptyString(), // shippingAddressErrors
aDetails.mDisplayItems.WasPassed(),
aDetails.mShippingOptions.WasPassed(),
aDetails.mModifiers.WasPassed());
return NS_OK; return NS_OK;
} }
@ -220,7 +223,10 @@ ConvertDetailsUpdate(JSContext* aCx,
shippingOptions, shippingOptions,
modifiers, modifiers,
error, error,
shippingAddressErrors); shippingAddressErrors,
aDetails.mDisplayItems.WasPassed(),
aDetails.mShippingOptions.WasPassed(),
aDetails.mModifiers.WasPassed());
return NS_OK; return NS_OK;
} }

View File

@ -56,6 +56,9 @@ struct IPCPaymentDetails
IPCPaymentDetailsModifier[] modifiers; IPCPaymentDetailsModifier[] modifiers;
nsString error; nsString error;
nsString shippingAddressErrors; nsString shippingAddressErrors;
bool displayItemsPassed;
bool shippingOptionsPassed;
bool modifiersPassed;
}; };
struct IPCPaymentOptions struct IPCPaymentOptions

View File

@ -45,14 +45,14 @@ function checkSimplestRequest(payRequest) {
emitTestFail("total item's value should be '1.00'."); emitTestFail("total item's value should be '1.00'.");
} }
if (details.displayItems.length !== 0) { if (details.displayItems) {
emitTestFail("details.displayItems should be an empty array."); emitTestFail("details.displayItems should be undefined.");
} }
if (details.modifiers.length !== 0) { if (details.modifiers) {
emitTestFail("details.modifiers should be an empty array."); emitTestFail("details.displayItems should be undefined.");
} }
if (details.shippingOptions.length !== 0) { if (details.shippingOptions) {
emitTestFail("details.shippingOptions should be an empty array."); emitTestFail("details.shippingOptions should be undefined.");
} }
// checking the default generated PaymentOptions parameter // checking the default generated PaymentOptions parameter
@ -319,14 +319,14 @@ function checkNonBasicCardRequest(payRequest) {
emitTestFail("total item's value should be '1.00'."); emitTestFail("total item's value should be '1.00'.");
} }
if (details.displayItems.length !== 0) { if (details.displayItems) {
emitTestFail("details.displayItems should be an zero length array."); emitTestFail("details.displayItems should be undefined.");
} }
if (details.displayItems.length !== 0) { if (details.modifiers) {
emitTestFail("details.modifiers should be an zero length array."); emitTestFail("details.displayItems should be undefined.");
} }
if (details.displayItems.length !== 0) { if (details.shippingOptions) {
emitTestFail("details.shippingOptions should be an zero length array."); emitTestFail("details.shippingOptions should be undefined.");
} }
// checking the default generated PaymentOptions parameter // checking the default generated PaymentOptions parameter

View File

@ -17,9 +17,9 @@ function checkSimplePayment(aSimplePayment) {
is(details.totalItem.amount.currency, "USD", "total item's currency should be 'USD'."); is(details.totalItem.amount.currency, "USD", "total item's currency should be 'USD'.");
is(details.totalItem.amount.value, "55.00", "total item's value should be '55.00'."); is(details.totalItem.amount.value, "55.00", "total item's value should be '55.00'.");
ok(details.displayItems.length, 0, "details.displayItems should be a zero length array."); ok(!details.displayItems, "details.displayItems should be undefined.");
ok(details.modifiers.length, 0, "details.modifiers should be a zero length array."); ok(!details.modifiers, "details.modifiers should be undefined.");
ok(details.shippingOptions.length, 0, "details.shippingOptions should be a zero length array."); ok(!details.shippingOptions, "details.shippingOptions should be undefined.");
// checking the default generated PaymentOptions parameter // checking the default generated PaymentOptions parameter
const paymentOptions = aSimplePayment.paymentOptions; const paymentOptions = aSimplePayment.paymentOptions;