Index: components/autofill/core/browser/autofill_manager.h |
diff --git a/components/autofill/core/browser/autofill_manager.h b/components/autofill/core/browser/autofill_manager.h |
index a364c5a481733b2d082e7b73e003e07974bdaf92..8646413dd5b17b85e8cfebdc9ca68698c8e98be2 100644 |
--- a/components/autofill/core/browser/autofill_manager.h |
+++ b/components/autofill/core/browser/autofill_manager.h |
@@ -64,6 +64,13 @@ class FormStructureBrowserTest; |
struct FormData; |
struct FormFieldData; |
+// The signature for the callback to be invoked when a card is unmasked. |
+using UnmaskCallback = base::Callback<void( |
+ bool, // success |
+ const CreditCard&, // original card |
+ const CreditCard&, // unmasked card |
+ const base::string16&)>; // the cvc for the card |
+ |
// Manages saving and restoring the user's personal information entered into web |
// forms. One per frame; owned by the AutofillDriver. |
class AutofillManager : public AutofillDownloadManager::Observer, |
@@ -89,6 +96,14 @@ class AutofillManager : public AutofillDownloadManager::Observer, |
void ShowAutofillSettings(); |
+ // Prompts the user for the CVC, uses the CVC to unmask the |
+ // |maybe_masked_card| (if it's masked), and invokes |callback| with the |
+ // unmasked card and the CVC. Only one unmask request should be active at a |
+ // time. If there's already a pending unmask request, this |callback| is |
+ // invoked immediately to indicate failure to the caller. |
+ void UnmaskCardForPayment(const CreditCard& maybe_masked_card, |
+ const UnmaskCallback& callback); |
+ |
// Whether the |field| should show an entry to scan a credit card. |
virtual bool ShouldShowScanCreditCard(const FormData& form, |
const FormFieldData& field); |
@@ -281,6 +296,12 @@ class AutofillManager : public AutofillDownloadManager::Observer, |
std::unique_ptr<base::DictionaryValue> legal_message) override; |
void OnDidUploadCard(AutofillClient::PaymentsRpcResult result) override; |
+ // UnmaskCallback: |
Mathieu
2016/04/19 13:24:25
Mention here or elsewhere why you are not using th
|
+ void OnCardUnmasked(bool success, |
+ const CreditCard& original_card, |
+ const CreditCard& unmasked_card, |
+ const base::string16& unused_cvc); |
+ |
// Saves risk data in |unmasking_risk_data_| and calls UnmaskCard if the user |
// has accepted the prompt. |
void OnDidGetUnmaskRiskData(const std::string& risk_data); |
@@ -497,6 +518,7 @@ class AutofillManager : public AutofillDownloadManager::Observer, |
// Collected information about a pending unmask request, and data about the |
// form. |
+ std::unique_ptr<UnmaskCallback> unmask_callback_; |
payments::PaymentsClient::UnmaskRequestDetails unmask_request_; |
int unmasking_query_id_; |
FormData unmasking_form_; |