summaryrefslogtreecommitdiffstats
path: root/chrome/browser/autofill/autofill_manager.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chrome/browser/autofill/autofill_manager.cc')
-rw-r--r--chrome/browser/autofill/autofill_manager.cc20
1 files changed, 18 insertions, 2 deletions
diff --git a/chrome/browser/autofill/autofill_manager.cc b/chrome/browser/autofill/autofill_manager.cc
index 6b78a3d..2a9d3f3 100644
--- a/chrome/browser/autofill/autofill_manager.cc
+++ b/chrome/browser/autofill/autofill_manager.cc
@@ -4,8 +4,11 @@
#include "chrome/browser/autofill/autofill_manager.h"
+#include <string>
+
#include "base/command_line.h"
#include "chrome/browser/autofill/autofill_infobar_delegate.h"
+#include "chrome/browser/autofill/form_structure.h"
#include "chrome/browser/tab_contents/tab_contents.h"
#include "chrome/common/chrome_switches.h"
#include "webkit/glue/form_field_values.h"
@@ -26,16 +29,29 @@ void AutoFillManager::FormFieldValuesSubmitted(
return;
// Grab a copy of the form data.
- form_data_.reset(new webkit_glue::FormFieldValues(form));
+ form_structure_.reset(new FormStructure(form));
+
+ if (!form_structure_->IsAutoFillable())
+ return;
// Ask the user for permission to save form information.
infobar_.reset(new AutoFillInfoBarDelegate(tab_contents_, this));
}
void AutoFillManager::SaveFormData() {
+ UploadFormData();
+
// TODO(jhawkins): Save the form data to the web database.
}
+void AutoFillManager::UploadFormData() {
+ std::string xml;
+ bool ok = form_structure_->EncodeUploadRequest(false, &xml);
+ DCHECK(ok);
+
+ // TODO(jhawkins): Initiate the upload request thread.
+}
+
void AutoFillManager::Reset() {
- form_data_.reset();
+ form_structure_.reset();
}