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..3586d3b20eb9f805cdff7ad2d1e6328efe75bb9d 100644 |
--- a/components/autofill/core/browser/autofill_manager.h |
+++ b/components/autofill/core/browser/autofill_manager.h |
@@ -27,6 +27,7 @@ |
#include "components/autofill/core/browser/autofill_metrics.h" |
#include "components/autofill/core/browser/card_unmask_delegate.h" |
#include "components/autofill/core/browser/form_structure.h" |
+#include "components/autofill/core/browser/payments/full_card_request.h" |
#include "components/autofill/core/browser/payments/payments_client.h" |
#include "components/autofill/core/browser/personal_data_manager.h" |
#include "components/autofill/core/common/form_data.h" |
@@ -67,8 +68,8 @@ struct FormFieldData; |
// 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, |
- public CardUnmaskDelegate, |
- public payments::PaymentsClientDelegate { |
+ public payments::PaymentsClientDelegate, |
+ public payments::FullCardRequest::Delegate { |
public: |
enum AutofillDownloadManagerState { |
ENABLE_AUTOFILL_DOWNLOAD_MANAGER, |
@@ -102,7 +103,8 @@ class AutofillManager : public AutofillDownloadManager::Observer, |
virtual void FillCreditCardForm(int query_id, |
const FormData& form, |
const FormFieldData& field, |
- const CreditCard& credit_card); |
+ const CreditCard& credit_card, |
+ const base::string16& cvc); |
void DidShowSuggestions(bool is_new_popup, |
const FormData& form, |
const FormFieldData& field); |
@@ -141,6 +143,8 @@ class AutofillManager : public AutofillDownloadManager::Observer, |
return download_manager_.get(); |
} |
+ payments::FullCardRequest* GetOrCreateFullCardRequest(); |
+ |
const std::string& app_locale() const { return app_locale_; } |
// Only for testing. |
@@ -267,10 +271,6 @@ class AutofillManager : public AutofillDownloadManager::Observer, |
std::string response, |
const std::vector<std::string>& form_signatures) override; |
- // CardUnmaskDelegate: |
- void OnUnmaskResponse(const UnmaskResponse& response) override; |
- void OnUnmaskPromptClosed() override; |
- |
// payments::PaymentsClientDelegate: |
IdentityProvider* GetIdentityProvider() override; |
void OnDidGetRealPan(AutofillClient::PaymentsRpcResult result, |
@@ -281,6 +281,11 @@ class AutofillManager : public AutofillDownloadManager::Observer, |
std::unique_ptr<base::DictionaryValue> legal_message) override; |
void OnDidUploadCard(AutofillClient::PaymentsRpcResult result) override; |
+ // FullCardRequest::Delegate: |
+ void OnFullCardDetails(const CreditCard& card, |
+ const base::string16& cvc) override; |
+ void OnFullCardError() override; |
+ |
// Saves risk data in |unmasking_risk_data_| and calls UnmaskCard if the user |
// has accepted the prompt. |
void OnDidGetUnmaskRiskData(const std::string& risk_data); |
@@ -337,7 +342,8 @@ class AutofillManager : public AutofillDownloadManager::Observer, |
const FormData& form, |
const FormFieldData& field, |
const AutofillDataModel& data_model, |
- bool is_credit_card); |
+ bool is_credit_card, |
+ const base::string16& cvc); |
// Creates a FormStructure using the FormData received from the renderer. Will |
// return an empty scoped_ptr if the data should not be processed for upload |
@@ -495,14 +501,16 @@ class AutofillManager : public AutofillDownloadManager::Observer, |
// A copy of the currently interacted form data. |
std::unique_ptr<FormData> pending_form_data_; |
- // Collected information about a pending unmask request, and data about the |
- // form. |
- payments::PaymentsClient::UnmaskRequestDetails unmask_request_; |
+ // Responsible for getting the full card details, including the PAN and the |
+ // CVC. |
+ std::unique_ptr<payments::FullCardRequest> full_card_request_; |
+ |
+ // Collected information about the autofill form where unmasked card will be |
+ // filled. |
int unmasking_query_id_; |
FormData unmasking_form_; |
FormFieldData unmasking_field_; |
- // Time when we requested the last real pan. |
- base::Time real_pan_request_timestamp_; |
+ CreditCard masked_card_; |
// Collected information about a pending upload request. |
payments::PaymentsClient::UploadRequestDetails upload_request_; |