summaryrefslogtreecommitdiffstats
path: root/webkit/glue
diff options
context:
space:
mode:
authorjhawkins@chromium.org <jhawkins@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-02-11 00:09:32 +0000
committerjhawkins@chromium.org <jhawkins@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-02-11 00:09:32 +0000
commitb25e08604bb3a8082f199ccafca4d14aadbcf838 (patch)
tree7381af7d78e69594b0485d4e30efe5e86f2e6ef6 /webkit/glue
parentb45b76e2e22e913450e79a0df076728726a6fc2e (diff)
downloadchromium_src-b25e08604bb3a8082f199ccafca4d14aadbcf838.zip
chromium_src-b25e08604bb3a8082f199ccafca4d14aadbcf838.tar.gz
chromium_src-b25e08604bb3a8082f199ccafca4d14aadbcf838.tar.bz2
Reland r38570. The underlying bug has been fix.
Move conditions of FormField creation to FormFieldHistoryManager; AutoFill does not have the same conditions. This required manipulating the FormField data structure to add necessary field data. TBR=tony BUG=none TEST=none Review URL: http://codereview.chromium.org/603015 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@38711 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'webkit/glue')
-rw-r--r--webkit/glue/form_field.cc28
-rw-r--r--webkit/glue/form_field.h13
-rw-r--r--webkit/glue/form_field_values.cc37
3 files changed, 41 insertions, 37 deletions
diff --git a/webkit/glue/form_field.cc b/webkit/glue/form_field.cc
index a87644f..4d95cb8 100644
--- a/webkit/glue/form_field.cc
+++ b/webkit/glue/form_field.cc
@@ -4,19 +4,39 @@
#include "webkit/glue/form_field.h"
+#include "base/string_util.h"
+
+using WebKit::WebInputElement;
+
namespace webkit_glue {
FormField::FormField() {
}
+FormField::FormField(const WebInputElement& input_element) {
+ name_ = input_element.nameForAutofill();
+
+ // TODO(jhawkins): Extract the field label. For now we just use the field
+ // name.
+ label_ = name_;
+
+ value_ = input_element.value();
+ TrimWhitespace(value_, TRIM_LEADING, &value_);
+
+ form_control_type_ = input_element.formControlType();
+ input_type_ = input_element.inputType();
+}
+
FormField::FormField(const string16& label,
const string16& name,
- const string16& html_input_type,
- const string16& value)
+ const string16& value,
+ const string16& form_control_type,
+ WebInputElement::InputType input_type)
: label_(label),
name_(name),
- html_input_type_(html_input_type),
- value_(value) {
+ value_(value),
+ form_control_type_(form_control_type),
+ input_type_(input_type) {
}
} // namespace webkit_glue
diff --git a/webkit/glue/form_field.h b/webkit/glue/form_field.h
index 9711c38..dfaf9ce 100644
--- a/webkit/glue/form_field.h
+++ b/webkit/glue/form_field.h
@@ -6,6 +6,7 @@
#define WEBKIT_GLUE_FORM_FIELD_H_
#include "base/string16.h"
+#include "third_party/WebKit/WebKit/chromium/public/WebInputElement.h"
namespace webkit_glue {
@@ -13,23 +14,27 @@ namespace webkit_glue {
class FormField {
public:
FormField();
+ explicit FormField(const WebKit::WebInputElement& input_element);
FormField(const string16& label,
const string16& name,
- const string16& html_input_type,
- const string16& value);
+ const string16& value,
+ const string16& form_control_type,
+ WebKit::WebInputElement::InputType input_type);
string16 label() const { return label_; }
string16 name() const { return name_; }
- string16 html_input_type() const { return html_input_type_; }
string16 value() const { return value_; }
+ string16 form_control_type() const { return form_control_type_; }
+ WebKit::WebInputElement::InputType input_type() const { return input_type_; }
void set_value(const string16& value) { value_ = value; }
private:
string16 label_;
string16 name_;
- string16 html_input_type_;
string16 value_;
+ string16 form_control_type_;
+ WebKit::WebInputElement::InputType input_type_;
};
} // namespace webkit_glue
diff --git a/webkit/glue/form_field_values.cc b/webkit/glue/form_field_values.cc
index 6118889..00f3984 100644
--- a/webkit/glue/form_field_values.cc
+++ b/webkit/glue/form_field_values.cc
@@ -5,13 +5,16 @@
#include "base/basictypes.h"
#include "base/logging.h"
#include "base/string16.h"
-#include "base/string_util.h"
#include "third_party/WebKit/WebKit/chromium/public/WebFrame.h"
#include "third_party/WebKit/WebKit/chromium/public/WebFormElement.h"
#include "third_party/WebKit/WebKit/chromium/public/WebInputElement.h"
#include "webkit/glue/form_field_values.h"
-using namespace WebKit;
+using WebKit::WebFormElement;
+using WebKit::WebFrame;
+using WebKit::WebInputElement;
+using WebKit::WebVector;
+
namespace webkit_glue {
FormFieldValues* FormFieldValues::Create(const WebFormElement& form) {
@@ -33,38 +36,14 @@ FormFieldValues* FormFieldValues::Create(const WebFormElement& form) {
return result;
}
-void FormFieldValues::ExtractFormFieldValues(
- const WebKit::WebFormElement& form) {
-
+void FormFieldValues::ExtractFormFieldValues(const WebFormElement& form) {
WebVector<WebInputElement> input_elements;
form.getInputElements(input_elements);
for (size_t i = 0; i < input_elements.size(); i++) {
const WebInputElement& input_element = input_elements[i];
- if (!input_element.isEnabledFormControl())
- continue;
-
- // Ignore all input types except TEXT.
- if (input_element.inputType() != WebInputElement::Text)
- continue;
-
- // For each TEXT input field, store the name and value
- string16 value = input_element.value();
- TrimWhitespace(value, TRIM_LEADING, &value);
- if (value.empty())
- continue;
-
- string16 name = input_element.nameForAutofill();
- if (name.empty())
- continue; // If we have no name, there is nothing to store.
-
- string16 type = input_element.formControlType();
- if (type.empty())
- continue;
-
- // TODO(jhawkins): Extract the field label. For now we just use the field
- // name.
- elements.push_back(FormField(name, name, type, value));
+ if (input_element.isEnabledFormControl())
+ elements.push_back(FormField(input_element));
}
}