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

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

Issue 1671753004: [Autofill] Fill fields that have an autocomplete attributes even if not in a form. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 10 months 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
Index: components/autofill/core/common/form_data.cc
diff --git a/components/autofill/core/common/form_data.cc b/components/autofill/core/common/form_data.cc
index e0930834e340701bafc872d19c82409b60223d55..448485cf23eb1a0375881b6cf5fb9b9332fb92f3 100644
--- a/components/autofill/core/common/form_data.cc
+++ b/components/autofill/core/common/form_data.cc
@@ -18,7 +18,7 @@ namespace autofill {
namespace {
-const int kPickleVersion = 4;
+const int kPickleVersion = 5;
bool ReadGURL(base::PickleIterator* iter, GURL* url) {
std::string spec;
@@ -61,25 +61,23 @@ void LogDeserializationError(int version) {
} // namespace
FormData::FormData()
- : is_form_tag(true) {
-}
+ : is_form_tag(true), is_syntehtic_non_checkout_form(false) {}
FormData::FormData(const FormData& data)
: name(data.name),
origin(data.origin),
action(data.action),
is_form_tag(data.is_form_tag),
- fields(data.fields) {
-}
+ is_syntehtic_non_checkout_form(data.is_syntehtic_non_checkout_form),
+ fields(data.fields) {}
FormData::~FormData() {
}
bool FormData::SameFormAs(const FormData& form) const {
- if (name != form.name ||
- origin != form.origin ||
- action != form.action ||
+ if (name != form.name || origin != form.origin || action != form.action ||
is_form_tag != form.is_form_tag ||
+ is_syntehtic_non_checkout_form != form.is_syntehtic_non_checkout_form ||
fields.size() != form.fields.size())
return false;
for (size_t i = 0; i < fields.size(); ++i) {
@@ -90,16 +88,16 @@ bool FormData::SameFormAs(const FormData& form) const {
}
bool FormData::operator<(const FormData& form) const {
- return std::tie(name, origin, action, is_form_tag, fields) <
+ return std::tie(name, origin, action, is_form_tag,
+ is_syntehtic_non_checkout_form, fields) <
std::tie(form.name, form.origin, form.action, form.is_form_tag,
- form.fields);
+ form.is_syntehtic_non_checkout_form, form.fields);
}
std::ostream& operator<<(std::ostream& os, const FormData& form) {
- os << base::UTF16ToUTF8(form.name) << " "
- << form.origin << " "
- << form.action << " "
- << form.is_form_tag << " "
+ os << base::UTF16ToUTF8(form.name) << " " << form.origin << " " << form.action
+ << " " << form.is_form_tag << " " << form.is_syntehtic_non_checkout_form
+ << " "
<< "Fields:";
for (size_t i = 0; i < form.fields.size(); ++i) {
os << form.fields[i] << ",";
@@ -114,6 +112,7 @@ void SerializeFormData(const FormData& form_data, base::Pickle* pickle) {
pickle->WriteString(form_data.action.spec());
SerializeFormFieldDataVector(form_data.fields, pickle);
pickle->WriteBool(form_data.is_form_tag);
+ pickle->WriteBool(form_data.is_syntehtic_non_checkout_form);
}
void SerializeFormDataToBase64String(const FormData& form_data,
@@ -170,6 +169,13 @@ bool DeserializeFormData(base::PickleIterator* iter, FormData* form_data) {
form_data->is_form_tag = true;
}
+ if (version >= 5) {
+ if (!iter->ReadBool(&temp_form_data.is_syntehtic_non_checkout_form)) {
+ LogDeserializationError(version);
+ return false;
+ }
+ }
+
*form_data = temp_form_data;
return true;
}

Powered by Google App Engine
This is Rietveld 408576698