| 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 f301d6054800e4a06becf7031efe7639525bbaf3..b602ad790140dcb411422e99c56e50a6009995c0 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
|
| @@ -257,9 +257,8 @@ public class PaymentRequestImpl implements PaymentRequest, PaymentRequestUI.Clie
|
| private final Handler mHandler = new Handler();
|
| private final RenderFrameHost mRenderFrameHost;
|
| private final WebContents mWebContents;
|
| - private final String mSchemelessOriginForPaymentApp;
|
| - private final String mOriginForDisplay;
|
| - private final String mSchemelessIFrameOriginForPaymentApp;
|
| + private final String mTopLevelOrigin;
|
| + private final String mPaymentRequestOrigin;
|
| private final String mMerchantName;
|
| @Nullable
|
| private final byte[][] mCertificateChain;
|
| @@ -364,15 +363,12 @@ public class PaymentRequestImpl implements PaymentRequest, PaymentRequestUI.Clie
|
| assert renderFrameHost != null;
|
|
|
| mRenderFrameHost = renderFrameHost;
|
| - mSchemelessIFrameOriginForPaymentApp = UrlFormatter.formatUrlForSecurityDisplay(
|
| - mRenderFrameHost.getLastCommittedURL(), false /* omit scheme for payment apps. */);
|
| mWebContents = WebContentsStatics.fromRenderFrameHost(renderFrameHost);
|
|
|
| - mSchemelessOriginForPaymentApp = UrlFormatter.formatUrlForSecurityDisplay(
|
| - mWebContents.getLastCommittedUrl(), false /* omit scheme for payment apps. */);
|
| -
|
| - mOriginForDisplay = UrlFormatter.formatUrlForSecurityDisplay(
|
| - mWebContents.getLastCommittedUrl(), true /* include scheme in display */);
|
| + mPaymentRequestOrigin = UrlFormatter.formatUrlForSecurityDisplay(
|
| + mRenderFrameHost.getLastCommittedURL(), true);
|
| + mTopLevelOrigin =
|
| + UrlFormatter.formatUrlForSecurityDisplay(mWebContents.getLastCommittedUrl(), true);
|
|
|
| mMerchantName = mWebContents.getTitle();
|
|
|
| @@ -523,7 +519,7 @@ public class PaymentRequestImpl implements PaymentRequest, PaymentRequestUI.Clie
|
| mUI = new PaymentRequestUI(activity, this, mRequestShipping,
|
| mRequestPayerName || mRequestPayerPhone || mRequestPayerEmail,
|
| mMerchantSupportsAutofillPaymentInstruments,
|
| - !PaymentPreferencesUtil.isPaymentCompleteOnce(), mMerchantName, mOriginForDisplay,
|
| + !PaymentPreferencesUtil.isPaymentCompleteOnce(), mMerchantName, mTopLevelOrigin,
|
| SecurityStateModel.getSecurityLevelForWebContents(mWebContents),
|
| new ShippingStrings(mShippingType));
|
|
|
| @@ -720,8 +716,7 @@ public class PaymentRequestImpl implements PaymentRequest, PaymentRequestUI.Clie
|
| }
|
|
|
| if (queryApps.isEmpty()) {
|
| - CanMakePaymentQuery query =
|
| - sCanMakePaymentQueries.get(mSchemelessIFrameOriginForPaymentApp);
|
| + CanMakePaymentQuery query = sCanMakePaymentQueries.get(mPaymentRequestOrigin);
|
| if (query != null && query.matchesPaymentMethods(mMethodData)) {
|
| query.notifyObserversOfResponse(mCanMakePayment);
|
| }
|
| @@ -733,8 +728,8 @@ public class PaymentRequestImpl implements PaymentRequest, PaymentRequestUI.Clie
|
| // so a fast response from a non-autofill payment app at the front of the app list does not
|
| // cause NOT_SUPPORTED payment rejection.
|
| for (Map.Entry<PaymentApp, Map<String, PaymentMethodData>> q : queryApps.entrySet()) {
|
| - q.getKey().getInstruments(q.getValue(), mSchemelessOriginForPaymentApp,
|
| - mSchemelessIFrameOriginForPaymentApp, mCertificateChain, mRawTotal, this);
|
| + q.getKey().getInstruments(q.getValue(), mTopLevelOrigin, mPaymentRequestOrigin,
|
| + mCertificateChain, mRawTotal, this);
|
| }
|
| }
|
|
|
| @@ -1305,10 +1300,9 @@ public class PaymentRequestImpl implements PaymentRequest, PaymentRequestUI.Clie
|
| }
|
| }
|
|
|
| - instrument.invokePaymentApp(mId, mMerchantName, mSchemelessOriginForPaymentApp,
|
| - mSchemelessIFrameOriginForPaymentApp, mCertificateChain,
|
| - Collections.unmodifiableMap(methodData), mRawTotal, mRawLineItems,
|
| - Collections.unmodifiableMap(modifiers), this);
|
| + instrument.invokePaymentApp(mId, mMerchantName, mTopLevelOrigin, mPaymentRequestOrigin,
|
| + mCertificateChain, Collections.unmodifiableMap(methodData), mRawTotal,
|
| + mRawLineItems, Collections.unmodifiableMap(modifiers), this);
|
|
|
| recordSuccessFunnelHistograms("PayClicked");
|
| mJourneyLogger.setEventOccurred(JourneyLogger.EVENT_PAY_CLICKED);
|
| @@ -1395,19 +1389,18 @@ public class PaymentRequestImpl implements PaymentRequest, PaymentRequestUI.Clie
|
| public void canMakePayment() {
|
| if (mClient == null) return;
|
|
|
| - CanMakePaymentQuery query =
|
| - sCanMakePaymentQueries.get(mSchemelessIFrameOriginForPaymentApp);
|
| + CanMakePaymentQuery query = sCanMakePaymentQueries.get(mPaymentRequestOrigin);
|
| if (query == null) {
|
| // If there has not been a canMakePayment() query in the last 30 minutes, take a note
|
| // that one has happened just now. Remember the payment method names and the
|
| // corresponding data for the next 30 minutes. Forget about it after the 30 minute
|
| // period expires.
|
| query = new CanMakePaymentQuery(Collections.unmodifiableMap(mMethodData));
|
| - sCanMakePaymentQueries.put(mSchemelessIFrameOriginForPaymentApp, query);
|
| + sCanMakePaymentQueries.put(mPaymentRequestOrigin, query);
|
| mHandler.postDelayed(new Runnable() {
|
| @Override
|
| public void run() {
|
| - sCanMakePaymentQueries.remove(mSchemelessIFrameOriginForPaymentApp);
|
| + sCanMakePaymentQueries.remove(mPaymentRequestOrigin);
|
| }
|
| }, CAN_MAKE_PAYMENT_QUERY_PERIOD_MS);
|
| } else if (shouldEnforceCanMakePaymentQueryQuota()
|
| @@ -1431,8 +1424,7 @@ public class PaymentRequestImpl implements PaymentRequest, PaymentRequestUI.Clie
|
|
|
| boolean isIgnoringQueryQuota = false;
|
| if (!shouldEnforceCanMakePaymentQueryQuota()) {
|
| - CanMakePaymentQuery query =
|
| - sCanMakePaymentQueries.get(mSchemelessIFrameOriginForPaymentApp);
|
| + CanMakePaymentQuery query = sCanMakePaymentQueries.get(mPaymentRequestOrigin);
|
| // The cached query may have expired between instantiation of PaymentRequest and
|
| // finishing the query of the payment apps.
|
| if (query != null) {
|
| @@ -1576,8 +1568,7 @@ public class PaymentRequestImpl implements PaymentRequest, PaymentRequestUI.Clie
|
| }
|
| }
|
|
|
| - CanMakePaymentQuery query =
|
| - sCanMakePaymentQueries.get(mSchemelessIFrameOriginForPaymentApp);
|
| + CanMakePaymentQuery query = sCanMakePaymentQueries.get(mPaymentRequestOrigin);
|
| if (query != null && query.matchesPaymentMethods(mMethodData)) {
|
| query.notifyObserversOfResponse(mCanMakePayment);
|
| }
|
|
|