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

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

Issue 2652763007: Send site certificate chain to android payment app (Closed)
Patch Set: Actually call getCertificateChain Created 3 years, 11 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
« no previous file with comments | « no previous file | chrome/android/java/src/org/chromium/chrome/browser/payments/AutofillPaymentApp.java » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/android/java/src/org/chromium/chrome/browser/payments/AndroidPaymentApp.java
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/payments/AndroidPaymentApp.java b/chrome/android/java/src/org/chromium/chrome/browser/payments/AndroidPaymentApp.java
index 0cf740802273d9c8679e2093d7060fcb13880f4b..65626274323429661f42144c4873f7c5fe48cbc6 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/payments/AndroidPaymentApp.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/payments/AndroidPaymentApp.java
@@ -13,6 +13,7 @@ import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.os.Handler;
import android.os.IBinder;
+import android.os.Parcelable;
import android.os.RemoteException;
import android.util.JsonWriter;
@@ -46,6 +47,8 @@ public class AndroidPaymentApp extends PaymentInstrument implements PaymentApp,
private static final String EXTRA_ORIGIN = "origin";
private static final String EXTRA_DETAILS = "details";
private static final String EXTRA_INSTRUMENT_DETAILS = "instrumentDetails";
+ private static final String EXTRA_CERTIFICATE_CHAIN = "certificateChain";
+ private static final String EXTRA_CERTIFICATE = "certificate";
private static final String EMPTY_JSON_DATA = "{}";
private final Handler mHandler;
private final WebContents mWebContents;
@@ -104,9 +107,21 @@ public class AndroidPaymentApp extends PaymentInstrument implements PaymentApp,
mIsReadyToPayIntent.setClassName(mIsReadyToPayIntent.getPackage(), className);
}
+ private void addCertificateChain(Bundle extras, byte[][] certificateChain) {
+ if (certificateChain != null && certificateChain.length > 0) {
+ Parcelable[] certificateArray = new Parcelable[certificateChain.length];
+ for (int i = 0; i < certificateChain.length; i++) {
+ Bundle bundle = new Bundle();
+ bundle.putByteArray(EXTRA_CERTIFICATE, certificateChain[i]);
+ certificateArray[i] = bundle;
+ }
+ extras.putParcelableArray(EXTRA_CERTIFICATE_CHAIN, certificateArray);
+ }
+ }
+
@Override
public void getInstruments(Map<String, PaymentMethodData> methodData, String origin,
- InstrumentsCallback callback) {
+ byte[][] certificateChain, InstrumentsCallback callback) {
mInstrumentsCallback = callback;
if (mIsReadyToPayIntent.getPackage() == null) {
mHandler.post(new Runnable() {
@@ -122,6 +137,7 @@ public class AndroidPaymentApp extends PaymentInstrument implements PaymentApp,
extras.putString(EXTRA_ORIGIN, origin);
PaymentMethodData data = methodData.get(mMethodNames.iterator().next());
extras.putString(EXTRA_DATA, data == null ? EMPTY_JSON_DATA : data.stringifiedData);
+ addCertificateChain(extras, certificateChain);
mIsReadyToPayIntent.putExtras(extras);
if (mIsReadyToPayService != null) {
@@ -202,13 +218,14 @@ public class AndroidPaymentApp extends PaymentInstrument implements PaymentApp,
}
@Override
- public void invokePaymentApp(String merchantName, String origin,
+ public void invokePaymentApp(String merchantName, String origin, byte[][] certificateChain,
Map<String, PaymentMethodData> methodDataMap, PaymentItem total,
List<PaymentItem> displayItems, Map<String, PaymentDetailsModifier> modifiers,
InstrumentDetailsCallback callback) {
assert !mMethodNames.isEmpty();
Bundle extras = new Bundle();
extras.putString(EXTRA_ORIGIN, origin);
+ addCertificateChain(extras, certificateChain);
String methodName = mMethodNames.iterator().next();
extras.putString(EXTRA_METHOD_NAME, methodName);
« no previous file with comments | « no previous file | chrome/android/java/src/org/chromium/chrome/browser/payments/AutofillPaymentApp.java » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698