OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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 #include "components/autofill/core/browser/autofill_manager.h" | 5 #include "components/autofill/core/browser/autofill_manager.h" |
6 | 6 |
7 #include <stddef.h> | 7 #include <stddef.h> |
8 | 8 |
9 #include <limits> | 9 #include <limits> |
10 #include <map> | 10 #include <map> |
(...skipping 169 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
180 user_prefs::PrefRegistrySyncable::SYNCABLE_PREF); | 180 user_prefs::PrefRegistrySyncable::SYNCABLE_PREF); |
181 registry->RegisterBooleanPref( | 181 registry->RegisterBooleanPref( |
182 prefs::kAutofillWalletSyncExperimentEnabled, | 182 prefs::kAutofillWalletSyncExperimentEnabled, |
183 false, | 183 false, |
184 user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF); | 184 user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF); |
185 // TODO(estade): Should this be syncable? | 185 // TODO(estade): Should this be syncable? |
186 registry->RegisterBooleanPref( | 186 registry->RegisterBooleanPref( |
187 prefs::kAutofillWalletImportEnabled, | 187 prefs::kAutofillWalletImportEnabled, |
188 true, | 188 true, |
189 user_prefs::PrefRegistrySyncable::SYNCABLE_PREF); | 189 user_prefs::PrefRegistrySyncable::SYNCABLE_PREF); |
| 190 registry->RegisterBooleanPref( |
| 191 prefs::kAutofillWalletImportStorageEnabled, |
| 192 true, |
| 193 user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF); |
| 194 registry->RegisterBooleanPref( |
| 195 prefs::kAutofillWalletImportStorageCheckboxState, |
| 196 true, |
| 197 user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF); |
190 #if defined(OS_MACOSX) | 198 #if defined(OS_MACOSX) |
191 registry->RegisterBooleanPref( | 199 registry->RegisterBooleanPref( |
192 prefs::kAutofillAuxiliaryProfilesEnabled, | 200 prefs::kAutofillAuxiliaryProfilesEnabled, |
193 true, | 201 true, |
194 user_prefs::PrefRegistrySyncable::SYNCABLE_PREF); | 202 user_prefs::PrefRegistrySyncable::SYNCABLE_PREF); |
195 #else // defined(OS_MACOSX) | 203 #else // defined(OS_MACOSX) |
196 registry->RegisterBooleanPref( | 204 registry->RegisterBooleanPref( |
197 prefs::kAutofillAuxiliaryProfilesEnabled, | 205 prefs::kAutofillAuxiliaryProfilesEnabled, |
198 false, | 206 false, |
199 user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF); | 207 user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF); |
(...skipping 503 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
703 | 711 |
704 // Forward form structures to the password generation manager to detect | 712 // Forward form structures to the password generation manager to detect |
705 // account creation forms. | 713 // account creation forms. |
706 driver_->DetectAccountCreationForms(form_structures_.get()); | 714 driver_->DetectAccountCreationForms(form_structures_.get()); |
707 | 715 |
708 // If the corresponding flag is set, annotate forms with the predicted types. | 716 // If the corresponding flag is set, annotate forms with the predicted types. |
709 driver_->SendAutofillTypePredictionsToRenderer(form_structures_.get()); | 717 driver_->SendAutofillTypePredictionsToRenderer(form_structures_.get()); |
710 } | 718 } |
711 | 719 |
712 void AutofillManager::OnUnmaskResponse(const UnmaskResponse& response) { | 720 void AutofillManager::OnUnmaskResponse(const UnmaskResponse& response) { |
713 unmasking_cvc_ = response.cvc; | 721 unmask_response_ = response; |
714 // TODO(estade): use month/year. | 722 // TODO(estade): use month/year. |
715 real_pan_client_.UnmaskCard(unmasking_card_, base::UTF16ToASCII(response.cvc), | 723 real_pan_client_.UnmaskCard(unmasking_card_, base::UTF16ToASCII(response.cvc), |
716 response.risk_data); | 724 response.risk_data); |
717 } | 725 } |
718 | 726 |
719 void AutofillManager::OnUnmaskPromptClosed() { | 727 void AutofillManager::OnUnmaskPromptClosed() { |
720 real_pan_client_.CancelRequest(); | 728 real_pan_client_.CancelRequest(); |
721 driver_->RendererShouldClearPreviewedForm(); | 729 driver_->RendererShouldClearPreviewedForm(); |
722 unmasking_card_ = CreditCard(); | 730 unmasking_card_ = CreditCard(); |
723 unmasking_cvc_.clear(); | 731 unmask_response_ = UnmaskResponse(); |
724 } | 732 } |
725 | 733 |
726 IdentityProvider* AutofillManager::GetIdentityProvider() { | 734 IdentityProvider* AutofillManager::GetIdentityProvider() { |
727 return client()->GetIdentityProvider(); | 735 return client()->GetIdentityProvider(); |
728 } | 736 } |
729 | 737 |
730 void AutofillManager::OnDidGetRealPan(const std::string& real_pan) { | 738 void AutofillManager::OnDidGetRealPan(const std::string& real_pan) { |
731 if (!real_pan.empty()) { | 739 if (!real_pan.empty()) { |
732 unmasking_card_.set_record_type(CreditCard::FULL_SERVER_CARD); | 740 unmasking_card_.set_record_type(CreditCard::FULL_SERVER_CARD); |
733 unmasking_card_.SetNumber(base::UTF8ToUTF16(real_pan)); | 741 unmasking_card_.SetNumber(base::UTF8ToUTF16(real_pan)); |
734 personal_data_->UpdateServerCreditCard(unmasking_card_); | 742 if (unmask_response_.should_store_pan) |
| 743 personal_data_->UpdateServerCreditCard(unmasking_card_); |
| 744 |
735 FillCreditCardForm(unmasking_query_id_, unmasking_form_, unmasking_field_, | 745 FillCreditCardForm(unmasking_query_id_, unmasking_form_, unmasking_field_, |
736 unmasking_card_); | 746 unmasking_card_); |
737 } | 747 } |
738 | 748 |
739 client()->OnUnmaskVerificationResult(!real_pan.empty()); | 749 client()->OnUnmaskVerificationResult(!real_pan.empty()); |
740 } | 750 } |
741 | 751 |
742 void AutofillManager::OnDidEndTextFieldEditing() { | 752 void AutofillManager::OnDidEndTextFieldEditing() { |
743 external_delegate_->DidEndTextFieldEditing(); | 753 external_delegate_->DidEndTextFieldEditing(); |
744 } | 754 } |
(...skipping 307 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1052 size_t use_variant = 0; | 1062 size_t use_variant = 0; |
1053 if (result.fields[i].SameFieldAs(field) || | 1063 if (result.fields[i].SameFieldAs(field) || |
1054 field_group_type == initiating_group_type) { | 1064 field_group_type == initiating_group_type) { |
1055 use_variant = variant; | 1065 use_variant = variant; |
1056 } | 1066 } |
1057 base::string16 value = data_model->GetInfoForVariant( | 1067 base::string16 value = data_model->GetInfoForVariant( |
1058 cached_field->Type(), use_variant, app_locale_); | 1068 cached_field->Type(), use_variant, app_locale_); |
1059 if (is_credit_card && | 1069 if (is_credit_card && |
1060 cached_field->Type().GetStorableType() == | 1070 cached_field->Type().GetStorableType() == |
1061 CREDIT_CARD_VERIFICATION_CODE) { | 1071 CREDIT_CARD_VERIFICATION_CODE) { |
1062 // If this is |unmasking_card_|, |unmasking_cvc_| should be non-empty | 1072 // If this is |unmasking_card_|, |unmask_response_,cvc| should be |
1063 // and vice versa. | 1073 // non-empty and vice versa. |
1064 DCHECK_EQ(&unmasking_card_ == data_model, !unmasking_cvc_.empty()); | 1074 value = unmask_response_.cvc; |
1065 value = unmasking_cvc_; | 1075 DCHECK_EQ(&unmasking_card_ == data_model, value.empty()); |
1066 } | 1076 } |
1067 | 1077 |
1068 // Must match ForEachMatchingFormField() in form_autofill_util.cc. | 1078 // Must match ForEachMatchingFormField() in form_autofill_util.cc. |
1069 // Only notify autofilling of empty fields and the field that initiated | 1079 // Only notify autofilling of empty fields and the field that initiated |
1070 // the filling (note that "select-one" controls may not be empty but will | 1080 // the filling (note that "select-one" controls may not be empty but will |
1071 // still be autofilled). | 1081 // still be autofilled). |
1072 bool should_notify = | 1082 bool should_notify = |
1073 !is_credit_card && | 1083 !is_credit_card && |
1074 !value.empty() && | 1084 !value.empty() && |
1075 (result.fields[i].SameFieldAs(field) || | 1085 (result.fields[i].SameFieldAs(field) || |
(...skipping 312 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1388 return false; | 1398 return false; |
1389 | 1399 |
1390 // Disregard forms that we wouldn't ever autofill in the first place. | 1400 // Disregard forms that we wouldn't ever autofill in the first place. |
1391 if (!form.ShouldBeParsed()) | 1401 if (!form.ShouldBeParsed()) |
1392 return false; | 1402 return false; |
1393 | 1403 |
1394 return true; | 1404 return true; |
1395 } | 1405 } |
1396 | 1406 |
1397 } // namespace autofill | 1407 } // namespace autofill |
OLD | NEW |