| 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 1b1bf9a9964975a6b6531268585fde7466ae97bb..78c296f63daa2a20766aeb7348a3e6b837eb633d 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
|
| @@ -56,6 +56,7 @@ public class AndroidPaymentApp
|
| /** The maximum number of milliseconds to wait for a connection to READY_TO_PAY service. */
|
| private static final long SERVICE_CONNECTION_TIMEOUT_MS = 1000;
|
|
|
| + private static final String EXTRA_ID = "id";
|
| private static final String EXTRA_MERCHANT_NAME = "merchantName";
|
| private static final String EXTRA_METHOD_NAME = "methodName";
|
| private static final String EXTRA_METHOD_NAMES = "methodNames";
|
| @@ -146,8 +147,8 @@ public class AndroidPaymentApp
|
| public void onServiceDisconnected(ComponentName name) {}
|
| };
|
|
|
| - mIsReadyToPayIntent.putExtras(buildExtras(
|
| - null, origin, iframeOrigin, certificateChain, methodDataMap, null, null, null));
|
| + mIsReadyToPayIntent.putExtras(buildExtras(null, null, origin, iframeOrigin,
|
| + certificateChain, methodDataMap, null, null, null));
|
| try {
|
| if (!ContextUtils.getApplicationContext().bindService(
|
| mIsReadyToPayIntent, mServiceConnection, Context.BIND_AUTO_CREATE)) {
|
| @@ -243,7 +244,7 @@ public class AndroidPaymentApp
|
| }
|
|
|
| @Override
|
| - public void invokePaymentApp(final String merchantName, final String origin,
|
| + public void invokePaymentApp(final String id, final String merchantName, final String origin,
|
| final String iframeOrigin, final byte[][] certificateChain,
|
| final Map<String, PaymentMethodData> methodDataMap, final PaymentItem total,
|
| final List<PaymentItem> displayItems,
|
| @@ -252,8 +253,8 @@ public class AndroidPaymentApp
|
| mInstrumentDetailsCallback = callback;
|
|
|
| if (!mIsIncognito) {
|
| - launchPaymentApp(merchantName, origin, iframeOrigin, certificateChain, methodDataMap,
|
| - total, displayItems, modifiers);
|
| + launchPaymentApp(id, merchantName, origin, iframeOrigin, certificateChain,
|
| + methodDataMap, total, displayItems, modifiers);
|
| return;
|
| }
|
|
|
| @@ -270,7 +271,7 @@ public class AndroidPaymentApp
|
| new OnClickListener() {
|
| @Override
|
| public void onClick(DialogInterface dialog, int which) {
|
| - launchPaymentApp(merchantName, origin, iframeOrigin,
|
| + launchPaymentApp(id, merchantName, origin, iframeOrigin,
|
| certificateChain, methodDataMap, total, displayItems,
|
| modifiers);
|
| }
|
| @@ -291,10 +292,10 @@ public class AndroidPaymentApp
|
| .show();
|
| }
|
|
|
| - private void launchPaymentApp(String merchantName, String origin, String iframeOrigin,
|
| - byte[][] certificateChain, Map<String, PaymentMethodData> methodDataMap,
|
| - PaymentItem total, List<PaymentItem> displayItems,
|
| - Map<String, PaymentDetailsModifier> modifiers) {
|
| + private void launchPaymentApp(String id, String merchantName, String origin,
|
| + String iframeOrigin, byte[][] certificateChain,
|
| + Map<String, PaymentMethodData> methodDataMap, PaymentItem total,
|
| + List<PaymentItem> displayItems, Map<String, PaymentDetailsModifier> modifiers) {
|
| assert mMethodNames.containsAll(methodDataMap.keySet());
|
| assert mInstrumentDetailsCallback != null;
|
|
|
| @@ -309,20 +310,21 @@ public class AndroidPaymentApp
|
| return;
|
| }
|
|
|
| - mPayIntent.putExtras(buildExtras(merchantName, origin, iframeOrigin, certificateChain,
|
| + mPayIntent.putExtras(buildExtras(id, merchantName, origin, iframeOrigin, certificateChain,
|
| methodDataMap, total, displayItems, modifiers));
|
| if (!window.showIntent(mPayIntent, this, R.string.payments_android_app_error)) {
|
| notifyErrorInvokingPaymentApp();
|
| }
|
| }
|
|
|
| - private static Bundle buildExtras(@Nullable String merchantName, String origin,
|
| - String iframeOrigin, @Nullable byte[][] certificateChain,
|
| + private static Bundle buildExtras(@Nullable String id, @Nullable String merchantName,
|
| + String origin, String iframeOrigin, @Nullable byte[][] certificateChain,
|
| Map<String, PaymentMethodData> methodDataMap, @Nullable PaymentItem total,
|
| @Nullable List<PaymentItem> displayItems,
|
| @Nullable Map<String, PaymentDetailsModifier> modifiers) {
|
| Bundle extras = new Bundle();
|
|
|
| + if (id != null) extras.putString(EXTRA_ID, id);
|
| if (merchantName != null) extras.putString(EXTRA_MERCHANT_NAME, merchantName);
|
| extras.putString(EXTRA_ORIGIN, origin);
|
| extras.putString(EXTRA_IFRAME_ORIGIN, iframeOrigin);
|
|
|