| 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 e1b9b54a7f7524be99fb37ec8540a67393863ad0..49447aba6d1476c3012f85d6aabe57296804c7cd 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 = 5;
|
| +const int kPickleVersion = 6;
|
|
|
| void AddVectorToPickle(std::vector<base::string16> strings,
|
| base::Pickle* pickle) {
|
| @@ -108,6 +108,11 @@ bool DeserializeSection8(base::PickleIterator* iter,
|
| return iter->ReadString16(&field_data->css_classes);
|
| }
|
|
|
| +bool DeserializeSection9(base::PickleIterator* iter,
|
| + FormFieldData* field_data) {
|
| + return iter->ReadUInt32(&field_data->properties_mask);
|
| +}
|
| +
|
| } // namespace
|
|
|
| FormFieldData::FormFieldData()
|
| @@ -117,7 +122,8 @@ FormFieldData::FormFieldData()
|
| is_focusable(false),
|
| should_autocomplete(true),
|
| role(ROLE_ATTRIBUTE_OTHER),
|
| - text_direction(base::i18n::UNKNOWN_DIRECTION) {}
|
| + text_direction(base::i18n::UNKNOWN_DIRECTION),
|
| + properties_mask(0) {}
|
|
|
| FormFieldData::FormFieldData(const FormFieldData& other) = default;
|
|
|
| @@ -151,7 +157,8 @@ bool FormFieldData::operator==(const FormFieldData& field) const {
|
| return SameFieldAs(field) && is_autofilled == field.is_autofilled &&
|
| check_status == field.check_status &&
|
| option_values == field.option_values &&
|
| - option_contents == field.option_contents;
|
| + option_contents == field.option_contents &&
|
| + properties_mask == field.properties_mask;
|
| }
|
|
|
| bool FormFieldData::operator!=(const FormFieldData& field) const {
|
| @@ -213,6 +220,7 @@ void SerializeFormFieldData(const FormFieldData& field_data,
|
| AddVectorToPickle(field_data.option_contents, pickle);
|
| pickle->WriteString16(field_data.placeholder);
|
| pickle->WriteString16(field_data.css_classes);
|
| + pickle->WriteUInt32(field_data.properties_mask);
|
| }
|
|
|
| bool DeserializeFormFieldData(base::PickleIterator* iter,
|
| @@ -283,6 +291,20 @@ bool DeserializeFormFieldData(base::PickleIterator* iter,
|
| }
|
| break;
|
| }
|
| + case 6: {
|
| + 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) ||
|
| + !DeserializeSection9(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;
|
| @@ -324,7 +346,8 @@ std::ostream& operator<<(std::ostream& os, const FormFieldData& field) {
|
| << (field.is_autofilled ? "true" : "false") << " "
|
| << check_status_str << (field.is_focusable ? "true" : "false")
|
| << " " << (field.should_autocomplete ? "true" : "false") << " "
|
| - << role_str << " " << field.text_direction;
|
| + << role_str << " " << field.text_direction << " "
|
| + << field.properties_mask;
|
| }
|
|
|
| bool IsCheckable(const FormFieldData::CheckStatus& check_status) {
|
|
|