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

Side by Side Diff: chrome/android/java/src/org/chromium/chrome/browser/payments/PaymentRequestFactory.java

Issue 2467393002: Add canMakeActivePayment() method to web payments. (Closed)
Patch Set: contextIsValid and global-interface-listing Created 4 years, 1 month 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 unified diff | Download patch
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 package org.chromium.chrome.browser.payments; 5 package org.chromium.chrome.browser.payments;
6 6
7 import android.app.Activity; 7 import android.app.Activity;
8 8
9 import org.chromium.chrome.browser.ChromeFeatureList; 9 import org.chromium.chrome.browser.ChromeFeatureList;
10 import org.chromium.chrome.browser.payments.PaymentRequestImpl.PaymentRequestDis missObserver; 10 import org.chromium.chrome.browser.payments.PaymentRequestImpl.PaymentRequestDis playObserver;
11 import org.chromium.content.browser.ContentViewCore; 11 import org.chromium.content.browser.ContentViewCore;
12 import org.chromium.content_public.browser.WebContents; 12 import org.chromium.content_public.browser.WebContents;
13 import org.chromium.mojo.system.MojoException; 13 import org.chromium.mojo.system.MojoException;
14 import org.chromium.payments.mojom.ActivePaymentQueryResult;
14 import org.chromium.payments.mojom.PaymentDetails; 15 import org.chromium.payments.mojom.PaymentDetails;
15 import org.chromium.payments.mojom.PaymentErrorReason; 16 import org.chromium.payments.mojom.PaymentErrorReason;
16 import org.chromium.payments.mojom.PaymentMethodData; 17 import org.chromium.payments.mojom.PaymentMethodData;
17 import org.chromium.payments.mojom.PaymentOptions; 18 import org.chromium.payments.mojom.PaymentOptions;
18 import org.chromium.payments.mojom.PaymentRequest; 19 import org.chromium.payments.mojom.PaymentRequest;
19 import org.chromium.payments.mojom.PaymentRequestClient; 20 import org.chromium.payments.mojom.PaymentRequestClient;
20 import org.chromium.services.service_manager.InterfaceFactory; 21 import org.chromium.services.service_manager.InterfaceFactory;
21 import org.chromium.ui.base.WindowAndroid; 22 import org.chromium.ui.base.WindowAndroid;
22 23
23 /** 24 /**
24 * Creates instances of PaymentRequest. 25 * Creates instances of PaymentRequest.
25 */ 26 */
26 public class PaymentRequestFactory 27 public class PaymentRequestFactory
27 implements InterfaceFactory<PaymentRequest>, PaymentRequestDismissObserv er { 28 implements InterfaceFactory<PaymentRequest>, PaymentRequestDisplayObserv er {
28 private final WebContents mWebContents; 29 private final WebContents mWebContents;
29 private boolean mIsPaymentRequestRunning; 30 private boolean mIsPaymentRequestRunning;
30 31
31 /** 32 /**
32 * An implementation of PaymentRequest that immediately rejects all connecti ons. 33 * An implementation of PaymentRequest that immediately rejects all connecti ons.
33 * Necessary because Mojo does not handle null returned from createImpl(). 34 * Necessary because Mojo does not handle null returned from createImpl().
34 */ 35 */
35 private static final class InvalidPaymentRequest implements PaymentRequest { 36 private static final class InvalidPaymentRequest implements PaymentRequest {
36 private PaymentRequestClient mClient; 37 private PaymentRequestClient mClient;
37 38
(...skipping 14 matching lines...) Expand all
52 @Override 53 @Override
53 public void updateWith(PaymentDetails details) {} 54 public void updateWith(PaymentDetails details) {}
54 55
55 @Override 56 @Override
56 public void abort() {} 57 public void abort() {}
57 58
58 @Override 59 @Override
59 public void complete(int result) {} 60 public void complete(int result) {}
60 61
61 @Override 62 @Override
63 public void canMakeActivePayment() {
64 if (mClient != null) {
65 mClient.onCanMakeActivePayment(ActivePaymentQueryResult.CANNOT_M AKE_ACTIVE_PAYMENT);
66 }
67 }
68
69 @Override
62 public void close() {} 70 public void close() {}
63 71
64 @Override 72 @Override
65 public void onConnectionError(MojoException e) {} 73 public void onConnectionError(MojoException e) {}
66 } 74 }
67 75
68 /** 76 /**
69 * Builds a factory for PaymentRequest. 77 * Builds a factory for PaymentRequest.
70 * 78 *
71 * @param webContents The web contents that may invoke the PaymentRequest AP I. 79 * @param webContents The web contents that may invoke the PaymentRequest AP I.
(...skipping 13 matching lines...) Expand all
85 ContentViewCore contentViewCore = ContentViewCore.fromWebContents(mWebCo ntents); 93 ContentViewCore contentViewCore = ContentViewCore.fromWebContents(mWebCo ntents);
86 if (contentViewCore == null) return new InvalidPaymentRequest(); 94 if (contentViewCore == null) return new InvalidPaymentRequest();
87 95
88 WindowAndroid window = contentViewCore.getWindowAndroid(); 96 WindowAndroid window = contentViewCore.getWindowAndroid();
89 if (window == null) return new InvalidPaymentRequest(); 97 if (window == null) return new InvalidPaymentRequest();
90 98
91 Activity context = window.getActivity().get(); 99 Activity context = window.getActivity().get();
92 if (context == null) return new InvalidPaymentRequest(); 100 if (context == null) return new InvalidPaymentRequest();
93 101
94 if (mIsPaymentRequestRunning) return new InvalidPaymentRequest(); 102 if (mIsPaymentRequestRunning) return new InvalidPaymentRequest();
95 mIsPaymentRequestRunning = true;
96 103
97 return new PaymentRequestImpl(context, mWebContents, this); 104 return new PaymentRequestImpl(context, mWebContents, this);
98 } 105 }
99 106
100 @Override 107 @Override
108 public void onPaymentRequestDisplayed() {
109 mIsPaymentRequestRunning = true;
110 }
111
112 @Override
101 public void onPaymentRequestDismissed() { 113 public void onPaymentRequestDismissed() {
102 mIsPaymentRequestRunning = false; 114 mIsPaymentRequestRunning = false;
103 } 115 }
104 } 116 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698