Index: chrome/android/java/src/org/chromium/chrome/browser/payments/PaymentRequestImpl.java |
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/payments/PaymentRequestImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/payments/PaymentRequestImpl.java |
index 4e55ca2236ca7355cf2699a18eb05d050e86b6ae..53a8a0cee4e7e21abd014c53de0c1bd57c823757 100644 |
--- a/chrome/android/java/src/org/chromium/chrome/browser/payments/PaymentRequestImpl.java |
+++ b/chrome/android/java/src/org/chromium/chrome/browser/payments/PaymentRequestImpl.java |
@@ -114,6 +114,7 @@ public class PaymentRequestImpl implements PaymentRequest, PaymentRequestUI.Clie |
private Callback<PaymentInformation> mPaymentInformationCallback; |
private Pattern mRegionCodePattern; |
private boolean mMerchantNeedsShippingAddress; |
+ private boolean mPaymentAppRunning; |
/** |
* Builds the dialog. |
@@ -556,6 +557,7 @@ public class PaymentRequestImpl implements PaymentRequest, PaymentRequestUI.Clie |
PaymentOption selectedShippingOption, PaymentOption selectedPaymentMethod) { |
assert selectedPaymentMethod instanceof PaymentInstrument; |
PaymentInstrument instrument = (PaymentInstrument) selectedPaymentMethod; |
+ mPaymentAppRunning = true; |
instrument.getDetails(mMerchantName, mOrigin, mRawTotal, mRawLineItems, |
mData.optJSONObject(instrument.getMethodName()), this); |
} |
@@ -576,8 +578,11 @@ public class PaymentRequestImpl implements PaymentRequest, PaymentRequestUI.Clie |
*/ |
@Override |
public void abort() { |
- closeClient(); |
- closeUI(false); |
+ mClient.onAbort(!mPaymentAppRunning); |
+ if (!mPaymentAppRunning) { |
+ closeClient(); |
+ closeUI(false); |
+ } |
} |
/** |