OLD | NEW |
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 import android.content.Context; | 8 import android.content.Context; |
9 import android.content.Intent; | 9 import android.content.Intent; |
10 import android.graphics.Bitmap; | 10 import android.graphics.Bitmap; |
(...skipping 29 matching lines...) Expand all Loading... |
40 import org.chromium.chrome.browser.tabmodel.EmptyTabModelObserver; | 40 import org.chromium.chrome.browser.tabmodel.EmptyTabModelObserver; |
41 import org.chromium.chrome.browser.tabmodel.EmptyTabModelSelectorObserver; | 41 import org.chromium.chrome.browser.tabmodel.EmptyTabModelSelectorObserver; |
42 import org.chromium.chrome.browser.tabmodel.TabModel; | 42 import org.chromium.chrome.browser.tabmodel.TabModel; |
43 import org.chromium.chrome.browser.tabmodel.TabModel.TabSelectionType; | 43 import org.chromium.chrome.browser.tabmodel.TabModel.TabSelectionType; |
44 import org.chromium.chrome.browser.tabmodel.TabModelObserver; | 44 import org.chromium.chrome.browser.tabmodel.TabModelObserver; |
45 import org.chromium.chrome.browser.tabmodel.TabModelSelector; | 45 import org.chromium.chrome.browser.tabmodel.TabModelSelector; |
46 import org.chromium.chrome.browser.tabmodel.TabModelSelectorObserver; | 46 import org.chromium.chrome.browser.tabmodel.TabModelSelectorObserver; |
47 import org.chromium.components.payments.CurrencyFormatter; | 47 import org.chromium.components.payments.CurrencyFormatter; |
48 import org.chromium.components.payments.PaymentValidator; | 48 import org.chromium.components.payments.PaymentValidator; |
49 import org.chromium.components.url_formatter.UrlFormatter; | 49 import org.chromium.components.url_formatter.UrlFormatter; |
| 50 import org.chromium.content_public.browser.RenderFrameHost; |
50 import org.chromium.content_public.browser.WebContents; | 51 import org.chromium.content_public.browser.WebContents; |
| 52 import org.chromium.content_public.browser.WebContentsStatics; |
51 import org.chromium.mojo.system.MojoException; | 53 import org.chromium.mojo.system.MojoException; |
52 import org.chromium.payments.mojom.CanMakePaymentQueryResult; | 54 import org.chromium.payments.mojom.CanMakePaymentQueryResult; |
53 import org.chromium.payments.mojom.PaymentComplete; | 55 import org.chromium.payments.mojom.PaymentComplete; |
54 import org.chromium.payments.mojom.PaymentDetails; | 56 import org.chromium.payments.mojom.PaymentDetails; |
55 import org.chromium.payments.mojom.PaymentDetailsModifier; | 57 import org.chromium.payments.mojom.PaymentDetailsModifier; |
56 import org.chromium.payments.mojom.PaymentErrorReason; | 58 import org.chromium.payments.mojom.PaymentErrorReason; |
57 import org.chromium.payments.mojom.PaymentItem; | 59 import org.chromium.payments.mojom.PaymentItem; |
58 import org.chromium.payments.mojom.PaymentMethodData; | 60 import org.chromium.payments.mojom.PaymentMethodData; |
59 import org.chromium.payments.mojom.PaymentOptions; | 61 import org.chromium.payments.mojom.PaymentOptions; |
60 import org.chromium.payments.mojom.PaymentRequest; | 62 import org.chromium.payments.mojom.PaymentRequest; |
(...skipping 178 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
239 | 241 |
240 /** Monitors changes in the current TabModel. */ | 242 /** Monitors changes in the current TabModel. */ |
241 private final TabModelObserver mTabModelObserver = new EmptyTabModelObserver
() { | 243 private final TabModelObserver mTabModelObserver = new EmptyTabModelObserver
() { |
242 @Override | 244 @Override |
243 public void didSelectTab(Tab tab, TabSelectionType type, int lastId) { | 245 public void didSelectTab(Tab tab, TabSelectionType type, int lastId) { |
244 if (tab == null || tab.getId() != lastId) onDismiss(); | 246 if (tab == null || tab.getId() != lastId) onDismiss(); |
245 } | 247 } |
246 }; | 248 }; |
247 | 249 |
248 private final Handler mHandler = new Handler(); | 250 private final Handler mHandler = new Handler(); |
| 251 private final RenderFrameHost mRenderFrameHost; |
249 private final WebContents mWebContents; | 252 private final WebContents mWebContents; |
250 private final String mSchemelessOriginForPaymentApp; | 253 private final String mSchemelessOriginForPaymentApp; |
251 private final String mOriginForDisplay; | 254 private final String mOriginForDisplay; |
252 private final String mMerchantName; | 255 private final String mMerchantName; |
253 private final byte[][] mCertificateChain; | 256 private final byte[][] mCertificateChain; |
254 private final AddressEditor mAddressEditor; | 257 private final AddressEditor mAddressEditor; |
255 private final CardEditor mCardEditor; | 258 private final CardEditor mCardEditor; |
256 private final PaymentRequestJourneyLogger mJourneyLogger = new PaymentReques
tJourneyLogger(); | 259 private final PaymentRequestJourneyLogger mJourneyLogger = new PaymentReques
tJourneyLogger(); |
257 | 260 |
258 private PaymentRequestClient mClient; | 261 private PaymentRequestClient mClient; |
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
340 private boolean mShouldSkipShowingPaymentRequestUi; | 343 private boolean mShouldSkipShowingPaymentRequestUi; |
341 | 344 |
342 /** The helper to create and fill the response to send to the merchant. */ | 345 /** The helper to create and fill the response to send to the merchant. */ |
343 private PaymentResponseHelper mPaymentResponseHelper; | 346 private PaymentResponseHelper mPaymentResponseHelper; |
344 | 347 |
345 /** | 348 /** |
346 * Builds the PaymentRequest service implementation. | 349 * Builds the PaymentRequest service implementation. |
347 * | 350 * |
348 * @param webContents The web contents that have invoked the PaymentRequest
API. | 351 * @param webContents The web contents that have invoked the PaymentRequest
API. |
349 */ | 352 */ |
350 public PaymentRequestImpl(WebContents webContents) { | 353 public PaymentRequestImpl(RenderFrameHost renderFrameHost) { |
351 assert webContents != null; | 354 assert renderFrameHost != null; |
352 | 355 |
353 mWebContents = webContents; | 356 mRenderFrameHost = renderFrameHost; |
| 357 mWebContents = WebContentsStatics.fromRenderFrameHost(renderFrameHost); |
354 | 358 |
355 mSchemelessOriginForPaymentApp = UrlFormatter.formatUrlForSecurityDispla
y( | 359 mSchemelessOriginForPaymentApp = UrlFormatter.formatUrlForSecurityDispla
y( |
356 mWebContents.getLastCommittedUrl(), false /* omit scheme for pay
ment apps. */); | 360 mWebContents.getLastCommittedUrl(), false /* omit scheme for pay
ment apps. */); |
357 | 361 |
358 mOriginForDisplay = UrlFormatter.formatUrlForSecurityDisplay( | 362 mOriginForDisplay = UrlFormatter.formatUrlForSecurityDisplay( |
359 mWebContents.getLastCommittedUrl(), true /* include scheme in di
splay */); | 363 mWebContents.getLastCommittedUrl(), true /* include scheme in di
splay */); |
360 | 364 |
361 mMerchantName = webContents.getTitle(); | 365 mMerchantName = mWebContents.getTitle(); |
| 366 |
362 mCertificateChain = CertificateChainHelper.getCertificateChain(mWebConte
nts); | 367 mCertificateChain = CertificateChainHelper.getCertificateChain(mWebConte
nts); |
363 | 368 |
364 mApps = new ArrayList<>(); | 369 mApps = new ArrayList<>(); |
365 | 370 |
366 mAddressEditor = new AddressEditor(); | 371 mAddressEditor = new AddressEditor(); |
367 mCardEditor = new CardEditor(mWebContents, mAddressEditor, sObserverForT
est); | 372 mCardEditor = new CardEditor(mWebContents, mAddressEditor, sObserverForT
est); |
368 | 373 |
369 if (sCanMakePaymentQueries == null) sCanMakePaymentQueries = new ArrayMa
p<>(); | 374 if (sCanMakePaymentQueries == null) sCanMakePaymentQueries = new ArrayMa
p<>(); |
370 | 375 |
371 recordSuccessFunnelHistograms("Initiated"); | 376 recordSuccessFunnelHistograms("Initiated"); |
(...skipping 1285 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1657 | 1662 |
1658 /** | 1663 /** |
1659 * The frecency score is calculated according to use count and last use date
. The formula is | 1664 * The frecency score is calculated according to use count and last use date
. The formula is |
1660 * the same as the one used in GetFrecencyScore in autofill_data_model.cc. | 1665 * the same as the one used in GetFrecencyScore in autofill_data_model.cc. |
1661 */ | 1666 */ |
1662 private static final double getFrecencyScore(int count, long date) { | 1667 private static final double getFrecencyScore(int count, long date) { |
1663 long currentTime = System.currentTimeMillis(); | 1668 long currentTime = System.currentTimeMillis(); |
1664 return -Math.log((currentTime - date) / (24 * 60 * 60 * 1000) + 2) / Mat
h.log(count + 2); | 1669 return -Math.log((currentTime - date) / (24 * 60 * 60 * 1000) + 2) / Mat
h.log(count + 2); |
1665 } | 1670 } |
1666 } | 1671 } |
OLD | NEW |