OLD | NEW |
1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2009 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 "chrome/browser/autofill/autofill_manager.h" | 5 #include "chrome/browser/autofill/autofill_manager.h" |
6 | 6 |
7 #include <string> | 7 #include <string> |
8 | 8 |
9 #include "base/command_line.h" | 9 #include "base/command_line.h" |
| 10 #include "chrome/browser/autofill/autofill_dialog.h" |
10 #include "chrome/browser/autofill/autofill_infobar_delegate.h" | 11 #include "chrome/browser/autofill/autofill_infobar_delegate.h" |
11 #include "chrome/browser/autofill/form_structure.h" | 12 #include "chrome/browser/autofill/form_structure.h" |
12 #include "chrome/browser/autofill/personal_data_manager.h" | 13 #include "chrome/browser/autofill/personal_data_manager.h" |
13 #include "chrome/browser/profile.h" | 14 #include "chrome/browser/profile.h" |
14 #include "chrome/browser/tab_contents/tab_contents.h" | 15 #include "chrome/browser/tab_contents/tab_contents.h" |
15 #include "chrome/common/chrome_switches.h" | 16 #include "chrome/common/chrome_switches.h" |
16 #include "chrome/common/pref_names.h" | 17 #include "chrome/common/pref_names.h" |
17 #include "chrome/common/pref_service.h" | 18 #include "chrome/common/pref_service.h" |
18 #include "webkit/glue/form_field_values.h" | 19 #include "webkit/glue/form_field_values.h" |
19 | 20 |
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
52 bool autofill_enabled = prefs->GetBoolean(prefs::kAutoFillEnabled); | 53 bool autofill_enabled = prefs->GetBoolean(prefs::kAutoFillEnabled); |
53 bool infobar_shown = prefs->GetBoolean(prefs::kAutoFillInfoBarShown); | 54 bool infobar_shown = prefs->GetBoolean(prefs::kAutoFillInfoBarShown); |
54 if (!infobar_shown) { | 55 if (!infobar_shown) { |
55 // Ask the user for permission to save form information. | 56 // Ask the user for permission to save form information. |
56 infobar_.reset(new AutoFillInfoBarDelegate(tab_contents_, this)); | 57 infobar_.reset(new AutoFillInfoBarDelegate(tab_contents_, this)); |
57 } else if (autofill_enabled) { | 58 } else if (autofill_enabled) { |
58 HandleSubmit(); | 59 HandleSubmit(); |
59 } | 60 } |
60 } | 61 } |
61 | 62 |
| 63 void AutoFillManager::OnAutoFillDialogApply( |
| 64 const std::vector<AutoFillProfile>& profiles, |
| 65 const std::vector<CreditCard>& credit_cards) { |
| 66 // TODO(jhawkins): Pass the profile data onto the PersonalDataManager. |
| 67 } |
| 68 |
62 void AutoFillManager::DeterminePossibleFieldTypes( | 69 void AutoFillManager::DeterminePossibleFieldTypes( |
63 FormStructure* form_structure) { | 70 FormStructure* form_structure) { |
64 // TODO(jhawkins): Update field text. | 71 // TODO(jhawkins): Update field text. |
65 | 72 |
66 form_structure->GetHeuristicAutoFillTypes(); | 73 form_structure->GetHeuristicAutoFillTypes(); |
67 | 74 |
68 for (size_t i = 0; i < form_structure->field_count(); i++) { | 75 for (size_t i = 0; i < form_structure->field_count(); i++) { |
69 const AutoFillField* field = form_structure->field(i); | 76 const AutoFillField* field = form_structure->field(i); |
70 FieldTypeSet field_types; | 77 FieldTypeSet field_types; |
71 personal_data_->GetPossibleFieldTypes(field->value(), &field_types); | 78 personal_data_->GetPossibleFieldTypes(field->value(), &field_types); |
72 form_structure->set_possible_types(i, field_types); | 79 form_structure->set_possible_types(i, field_types); |
73 } | 80 } |
74 } | 81 } |
75 | 82 |
76 void AutoFillManager::HandleSubmit() { | 83 void AutoFillManager::HandleSubmit() { |
77 // If there wasn't enough data to import then we don't want to send an upload | 84 // If there wasn't enough data to import then we don't want to send an upload |
78 // to the server. | 85 // to the server. |
79 if (!personal_data_->ImportFormData(form_structures_, this)) | 86 if (!personal_data_->ImportFormData(form_structures_, this)) |
80 return; | 87 return; |
81 | 88 |
82 UploadFormData(); | 89 UploadFormData(); |
83 } | 90 } |
84 | 91 |
85 void AutoFillManager::OnInfoBarAccepted() { | 92 void AutoFillManager::OnInfoBarAccepted() { |
86 PrefService* prefs = tab_contents_->profile()->GetPrefs(); | 93 PrefService* prefs = tab_contents_->profile()->GetPrefs(); |
87 prefs->SetBoolean(prefs::kAutoFillEnabled, true); | 94 prefs->SetBoolean(prefs::kAutoFillEnabled, true); |
88 | 95 |
89 // TODO(jhawkins): AutoFillDialog | 96 // TODO(jhawkins): Actually send in the real profiles and credit cards from |
| 97 // the personal data manager. |
| 98 std::vector<AutoFillProfile> profiles; |
| 99 std::vector<CreditCard> credit_cards; |
| 100 ShowAutoFillDialog(this, profiles, credit_cards); |
90 | 101 |
91 HandleSubmit(); | 102 HandleSubmit(); |
92 } | 103 } |
93 | 104 |
94 void AutoFillManager::SaveFormData() { | 105 void AutoFillManager::SaveFormData() { |
95 // TODO(jhawkins): Save the form data to the web database. | 106 // TODO(jhawkins): Save the form data to the web database. |
96 } | 107 } |
97 | 108 |
98 void AutoFillManager::UploadFormData() { | 109 void AutoFillManager::UploadFormData() { |
99 std::string xml; | 110 std::string xml; |
100 bool ok = upload_form_structure_->EncodeUploadRequest(false, &xml); | 111 bool ok = upload_form_structure_->EncodeUploadRequest(false, &xml); |
101 DCHECK(ok); | 112 DCHECK(ok); |
102 | 113 |
103 // TODO(jhawkins): Initiate the upload request thread. | 114 // TODO(jhawkins): Initiate the upload request thread. |
104 } | 115 } |
105 | 116 |
106 void AutoFillManager::Reset() { | 117 void AutoFillManager::Reset() { |
107 upload_form_structure_.reset(); | 118 upload_form_structure_.reset(); |
108 } | 119 } |
OLD | NEW |