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

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

Issue 2734493002: Incognito mode behavior for 3rd party Android payment apps. (Closed)
Patch Set: Fix test Created 3 years, 9 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 fa2b40a2a3a37f655aaad08d427451d2c4dc9d3e..72a7bc01b3e4b7244195214ab95c441e066307f6 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
@@ -254,6 +254,7 @@ public class PaymentRequestImpl
private final AddressEditor mAddressEditor;
private final CardEditor mCardEditor;
private final PaymentRequestJourneyLogger mJourneyLogger = new PaymentRequestJourneyLogger();
+ private final boolean mIsIncognito;
private PaymentRequestClient mClient;
private boolean mIsCurrentPaymentRequestShowing;
@@ -366,6 +367,10 @@ public class PaymentRequestImpl
mAddressEditor = new AddressEditor();
mCardEditor = new CardEditor(mWebContents, mAddressEditor, sObserverForTest);
+ ChromeActivity activity = ChromeActivity.fromWebContents(mWebContents);
+ mIsIncognito = activity != null && activity.getCurrentTabModel() != null
+ && activity.getCurrentTabModel().isIncognito();
+
if (sCanMakePaymentQueries == null) sCanMakePaymentQueries = new ArrayMap<>();
recordSuccessFunnelHistograms("Initiated");
@@ -637,7 +642,7 @@ public class PaymentRequestImpl
if (queryApps.isEmpty()) {
CanMakePaymentQuery query = sCanMakePaymentQueries.get(mSchemelessOriginForPaymentApp);
if (query != null && query.matchesPaymentMethods(mMethodData)) {
- query.notifyObserversOfResponse(false);
+ query.notifyObserversOfResponse(mCanMakePayment);
}
}
@@ -1281,9 +1286,10 @@ public class PaymentRequestImpl
private void respondCanMakePaymentQuery(boolean response) {
if (mClient == null) return;
- mClient.onCanMakePayment(response ? CanMakePaymentQueryResult.CAN_MAKE_PAYMENT
- : CanMakePaymentQueryResult.CANNOT_MAKE_PAYMENT);
- mJourneyLogger.setCanMakePaymentValue(response);
+ mClient.onCanMakePayment(response || mIsIncognito
+ ? CanMakePaymentQueryResult.CAN_MAKE_PAYMENT
+ : CanMakePaymentQueryResult.CANNOT_MAKE_PAYMENT);
+ mJourneyLogger.setCanMakePaymentValue(response || mIsIncognito);
if (sObserverForTest != null) {
sObserverForTest.onPaymentRequestServiceCanMakePaymentQueryResponded();
}
@@ -1437,7 +1443,8 @@ public class PaymentRequestImpl
// add credit cards, but the merchant does not support them either. The payment request
// must be rejected.
disconnectFromClientWithDebugMessage("Requested payment methods have no instruments",
- PaymentErrorReason.NOT_SUPPORTED);
+ mIsIncognito ? PaymentErrorReason.USER_CANCEL
+ : PaymentErrorReason.NOT_SUPPORTED);
recordNoShowReasonHistogram(mArePaymentMethodsSupported
? PaymentRequestMetrics.NO_SHOW_NO_MATCHING_PAYMENT_METHOD
: PaymentRequestMetrics.NO_SHOW_NO_SUPPORTED_PAYMENT_METHOD);

Powered by Google App Engine
This is Rietveld 408576698