Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(182)

Unified Diff: components/autofill/core/common/form_field_data.cc

Issue 734983006: Autofill - Fix Harry and David checkout: ignore role="presentation" (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: enum Created 6 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « components/autofill/core/common/form_field_data.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 cda33d07521ee416e312360645f68048023214df..3b80be255c4e99ea5f8e181842b5060e5a7f7336 100644
--- a/components/autofill/core/common/form_field_data.cc
+++ b/components/autofill/core/common/form_field_data.cc
@@ -36,13 +36,13 @@ bool ReadStringVector(PickleIterator* iter,
return true;
}
-bool ReadTextDirection(PickleIterator* iter,
- base::i18n::TextDirection* direction) {
+template <typename T>
+bool ReadAsInt(PickleIterator* iter, T* direction) {
int pickle_data;
if (!iter->ReadInt(&pickle_data))
return false;
- *direction = static_cast<base::i18n::TextDirection>(pickle_data);
+ *direction = static_cast<T>(pickle_data);
return true;
}
@@ -57,6 +57,7 @@ FormFieldData::FormFieldData()
is_checkable(false),
is_focusable(false),
should_autocomplete(true),
+ role(ROLE_ATTRIBUTE_OTHER),
text_direction(base::i18n::UNKNOWN_DIRECTION) {
}
@@ -66,8 +67,7 @@ FormFieldData::~FormFieldData() {
bool FormFieldData::SameFieldAs(const FormFieldData& field) const {
// A FormFieldData stores a value, but the value is not part of the identity
// of the field, so we don't want to compare the values.
- return (label == field.label &&
- name == field.name &&
+ return (label == field.label && name == field.name &&
form_control_type == field.form_control_type &&
autocomplete_attribute == field.autocomplete_attribute &&
max_length == field.max_length &&
@@ -76,7 +76,7 @@ bool FormFieldData::SameFieldAs(const FormFieldData& field) const {
is_checkable == field.is_checkable &&
is_focusable == field.is_focusable &&
should_autocomplete == field.should_autocomplete &&
- text_direction == field.text_direction);
+ role == field.role && text_direction == field.text_direction);
// The option values/contents whith are the list of items in the list
// of a drop-down are currently not considered part of the identity of
// a form element. This is debatable, since one might base heuristics
@@ -105,6 +105,10 @@ bool FormFieldData::operator<(const FormFieldData& field) const {
if (is_focusable > field.is_focusable) return false;
if (should_autocomplete < field.should_autocomplete) return true;
if (should_autocomplete > field.should_autocomplete) return false;
+ if (role < field.role)
+ return true;
+ if (role > field.role)
+ return false;
if (text_direction < field.text_direction) return true;
if (text_direction > field.text_direction) return false;
// See operator== above for why we don't check option_values/contents.
@@ -125,6 +129,7 @@ void SerializeFormFieldData(const FormFieldData& field_data,
pickle->WriteBool(field_data.is_checkable);
pickle->WriteBool(field_data.is_focusable);
pickle->WriteBool(field_data.should_autocomplete);
+ pickle->WriteInt(field_data.role);
pickle->WriteInt(field_data.text_direction);
AddVectorToPickle(field_data.option_values, pickle);
AddVectorToPickle(field_data.option_contents, pickle);
@@ -151,7 +156,8 @@ bool DeserializeFormFieldData(PickleIterator* iter,
!iter->ReadBool(&field_data->is_checkable) ||
!iter->ReadBool(&field_data->is_focusable) ||
!iter->ReadBool(&field_data->should_autocomplete) ||
- !ReadTextDirection(iter, &field_data->text_direction) ||
+ !ReadAsInt(iter, &field_data->role) ||
+ !ReadAsInt(iter, &field_data->text_direction) ||
!ReadStringVector(iter, &field_data->option_values) ||
!ReadStringVector(iter, &field_data->option_contents)) {
LOG(ERROR) << "Could not deserialize FormFieldData from pickle";
@@ -168,30 +174,16 @@ bool DeserializeFormFieldData(PickleIterator* iter,
}
std::ostream& operator<<(std::ostream& os, const FormFieldData& field) {
- return os
- << base::UTF16ToUTF8(field.label)
- << " "
- << base::UTF16ToUTF8(field.name)
- << " "
- << base::UTF16ToUTF8(field.value)
- << " "
- << field.form_control_type
- << " "
- << field.autocomplete_attribute
- << " "
- << field.max_length
- << " "
- << (field.is_autofilled ? "true" : "false")
- << " "
- << (field.is_checked ? "true" : "false")
- << " "
- << (field.is_checkable ? "true" : "false")
- << " "
- << (field.is_focusable ? "true" : "false")
- << " "
- << (field.should_autocomplete ? "true" : "false")
- << " "
- << field.text_direction;
+ return os << base::UTF16ToUTF8(field.label) << " "
+ << base::UTF16ToUTF8(field.name) << " "
+ << base::UTF16ToUTF8(field.value) << " " << field.form_control_type
+ << " " << field.autocomplete_attribute << " " << field.max_length
+ << " " << (field.is_autofilled ? "true" : "false") << " "
+ << (field.is_checked ? "true" : "false") << " "
+ << (field.is_checkable ? "true" : "false") << " "
+ << (field.is_focusable ? "true" : "false") << " "
+ << (field.should_autocomplete ? "true" : "false") << " "
+ << field.role << " " << field.text_direction;
}
} // namespace autofill
« no previous file with comments | « components/autofill/core/common/form_field_data.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698