| Index: components/autofill/core/common/form_field_data.cc
|
| diff --git a/components/autofill/core/common/form_field_data.cc b/components/autofill/core/common/form_field_data.cc
|
| index 992dd7abbd32da52bc83861f6e8dc424edc461b2..561ec4e9b7706080a8ea938f32744e1ab4f0b791 100644
|
| --- a/components/autofill/core/common/form_field_data.cc
|
| +++ b/components/autofill/core/common/form_field_data.cc
|
| @@ -14,7 +14,7 @@ namespace {
|
|
|
| // Increment this anytime pickle format is modified as well as provide
|
| // deserialization routine from previous kPickleVersion format.
|
| -const int kPickleVersion = 4;
|
| +const int kPickleVersion = 5;
|
|
|
| void AddVectorToPickle(std::vector<base::string16> strings,
|
| base::Pickle* pickle) {
|
| @@ -103,6 +103,11 @@ bool DeserializeSection4(base::PickleIterator* iter,
|
| return iter->ReadString16(&field_data->placeholder);
|
| }
|
|
|
| +bool DeserializeSection8(base::PickleIterator* iter,
|
| + FormFieldData* field_data) {
|
| + return iter->ReadString16(&field_data->css_classes);
|
| +}
|
| +
|
| } // namespace
|
|
|
| FormFieldData::FormFieldData()
|
| @@ -126,6 +131,7 @@ bool FormFieldData::SameFieldAs(const FormFieldData& field) const {
|
| form_control_type == field.form_control_type &&
|
| autocomplete_attribute == field.autocomplete_attribute &&
|
| placeholder == field.placeholder && max_length == field.max_length &&
|
| + css_classes == field.css_classes &&
|
| // is_checked and is_autofilled counts as "value" since these change
|
| // when we fill things in.
|
| IsCheckable(check_status) == IsCheckable(field.check_status) &&
|
| @@ -160,6 +166,8 @@ bool FormFieldData::operator<(const FormFieldData& field) const {
|
| if (placeholder > field.placeholder) return false;
|
| if (max_length < field.max_length) return true;
|
| if (max_length > field.max_length) return false;
|
| + if (css_classes < field.css_classes) return true;
|
| + if (css_classes > field.css_classes) return false;
|
| // Skip |is_checked| and |is_autofilled| as in SameFieldAs.
|
| if (IsCheckable(check_status) < IsCheckable(field.check_status)) return true;
|
| if (IsCheckable(check_status) > IsCheckable(field.check_status)) return false;
|
| @@ -193,6 +201,7 @@ void SerializeFormFieldData(const FormFieldData& field_data,
|
| AddVectorToPickle(field_data.option_values, pickle);
|
| AddVectorToPickle(field_data.option_contents, pickle);
|
| pickle->WriteString16(field_data.placeholder);
|
| + pickle->WriteString16(field_data.css_classes);
|
| }
|
|
|
| bool DeserializeFormFieldData(base::PickleIterator* iter,
|
| @@ -250,6 +259,19 @@ bool DeserializeFormFieldData(base::PickleIterator* iter,
|
| }
|
| break;
|
| }
|
| + case 5: {
|
| + if (!DeserializeSection1(iter, &temp_form_field_data) ||
|
| + !DeserializeSection6(iter, &temp_form_field_data) ||
|
| + !DeserializeSection7(iter, &temp_form_field_data) ||
|
| + !DeserializeSection2(iter, &temp_form_field_data) ||
|
| + !DeserializeSection3(iter, &temp_form_field_data) ||
|
| + !DeserializeSection4(iter, &temp_form_field_data) ||
|
| + !DeserializeSection8(iter, &temp_form_field_data)) {
|
| + LOG(ERROR) << "Could not deserialize FormFieldData from pickle";
|
| + return false;
|
| + }
|
| + break;
|
| + }
|
| default: {
|
| LOG(ERROR) << "Unknown FormFieldData pickle version " << version;
|
| return false;
|
| @@ -287,7 +309,7 @@ std::ostream& operator<<(std::ostream& os, const FormFieldData& field) {
|
| << base::UTF16ToUTF8(field.name) << " "
|
| << base::UTF16ToUTF8(field.value) << " " << field.form_control_type
|
| << " " << field.autocomplete_attribute << " " << field.placeholder
|
| - << " " << field.max_length << " "
|
| + << " " << field.max_length << " " << field.css_classes << " "
|
| << (field.is_autofilled ? "true" : "false") << " "
|
| << check_status_str << (field.is_focusable ? "true" : "false")
|
| << " " << (field.should_autocomplete ? "true" : "false") << " "
|
|
|