| 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 44bc75d4b1ef2bfa34541677372ae808c686100a..b6b81abdf1bf752b47e4398ecad2e7857d53364a 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
|
| @@ -18,6 +18,7 @@ import org.chromium.base.VisibleForTesting;
|
| import org.chromium.base.metrics.RecordHistogram;
|
| import org.chromium.chrome.R;
|
| import org.chromium.chrome.browser.ChromeActivity;
|
| +import org.chromium.chrome.browser.ChromeFeatureList;
|
| import org.chromium.chrome.browser.autofill.PersonalDataManager;
|
| import org.chromium.chrome.browser.autofill.PersonalDataManager.AutofillProfile;
|
| import org.chromium.chrome.browser.autofill.PersonalDataManager.NormalizedAddressRequestDelegate;
|
| @@ -1029,6 +1030,22 @@ public class PaymentRequestImpl implements PaymentRequest, PaymentRequestUI.Clie
|
| return true;
|
| }
|
|
|
| + if (ChromeFeatureList.isEnabled(ChromeFeatureList.NO_CREDIT_CARD_ABORT)
|
| + && PersonalDataManager.getInstance().getCreditCardsToSuggest().size() == 0
|
| + && (!mArePaymentMethodsSupported
|
| + || (mIsShowing && !waitingForPaymentApps && !foundPaymentMethods))) {
|
| + // The experiment to abort if the user has no credit card is enabled, the user has no
|
| + // credit card, and there is no intersection between the other payment apps that the
|
| + // merchant supports and the ones the user has with instruments. The payment request
|
| + // must be rejected.
|
| + disconnectFromClientWithDebugMessage(
|
| + "User has no credit card", PaymentErrorReason.NOT_SUPPORTED);
|
| + recordAbortReasonHistogram(
|
| + PaymentRequestMetrics.ABORT_REASON_NO_MATCHING_PAYMENT_METHOD);
|
| + if (sObserverForTest != null) sObserverForTest.onPaymentRequestServiceShowFailed();
|
| + return true;
|
| + }
|
| +
|
| return false;
|
| }
|
|
|
|
|