Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1856)

Unified Diff: chrome/android/java/src/org/chromium/chrome/browser/payments/PaymentRequestImpl.java

Issue 2437593007: [Payments] Field trial and flag to abort payment request if no card. (Closed)
Patch Set: Added histogram Created 4 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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;
}

Powered by Google App Engine
This is Rietveld 408576698